《第五章 Oracle数据库管理21305.pptx》由会员分享,可在线阅读,更多相关《第五章 Oracle数据库管理21305.pptx(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Oracle数据库管理数据库管理第第5章章Oracle9Oracle9i i关系数据库关系数据库本章内容5.1 Oracle5.1 Oracle5.1 Oracle5.1 Oracle数据库管理简介数据库管理简介数据库管理简介数据库管理简介5.2 5.2 5.2 5.2 创建、启动和关闭创建、启动和关闭创建、启动和关闭创建、启动和关闭OracleOracleOracleOracle数据库数据库数据库数据库5.3 5.3 5.3 5.3 管理表空间管理表空间管理表空间管理表空间5.4 5.4 5.4 5.4 管理管理管理管理OracleOracleOracleOracle数据文件数据文件数据文
2、件数据文件5.5 5.5 5.5 5.5 管理重做日志文件管理重做日志文件管理重做日志文件管理重做日志文件5.6 5.6 5.6 5.6 管理管理管理管理OracleOracleOracleOracle数据库对象数据库对象数据库对象数据库对象5.7 Oracle5.7 Oracle5.7 Oracle5.7 Oracle的数据字典的数据字典的数据字典的数据字典5.8 5.8 5.8 5.8 使用使用使用使用OEMOEMOEMOEM管理数据库管理数据库管理数据库管理数据库 一、一、Oracle数据库管理内容数据库管理内容1.数据库设计成功的数据库设计意味着数据库能够存储所有必需的数据,而且其存储
3、方式保证了快速地保存、提取、编辑、删除数据。有许多因素影响数据库设计是否成功:数据库规范化,索引,运用存储过程和触发器等。5.1 5.1 Oracle数据库管理简介数据库管理简介2数据库配置每一种数据库管理系统都有各种影响其性能的配置参数,其中部分参数比较重要。Oracle系统的配置参数可以在init.ora中找到,正确地设置这些参数将对数据库性能产生积极影响。3.硬件环境(1)硬盘空间磁盘空间不足导致一个很直接的结果:操作系统将拒绝继续运行程序。程序、数据库、操作系统可能会在操作遇到磁盘空间不足问题时发出警报。临时工作区、虚拟内存的磁盘空间不足却属于隐藏的危险。这些问题的主要症状就是数据库处
4、理所需要的时间越来越长,有时甚至根本不能完成。(2)内存如果没有足够的内存,操作系统、应用程序、数据库将把部分操作转移到磁盘上进行,从而拖累了整个系统的性能。解决方法是在合理的范围内安装尽可能多的内存,可以用操作系统自带的工具检查系统的内存使用情况,页故障、缓存命中率、分页数等其他相关的项目。(3)网络传输能力网络传输能力属于第三个硬件问题。如果系统在每天的固定时间基本上停止响应(不管数据库访问情况如何),它可能是一个网络问题。其他需要检查的硬件因素包括处理器速度,包括客户机以及服务器、处理器数量(Oracle支持多处理器并行处理),以及数据库分布。4Oracle数据库管理工具数据库管理员通常
5、运用多种工具简化管理任务。Oracle提供了简单集成的DBA工具。如Enterprise Manager。对于初学者而言,使用工具更加直观,简单,并且可以完成数据库管理的大多数日常工作,同样,还可以在SQL*Plus之类的工具中,通过输入命令获取信息、优化系统。对很多Oracle的数据库管理员来说,仍喜欢这种“手工”工作方式,提供的功能更加全面灵活,当然对数据库管理员的要求相对也较高。另外操作系统提供的管理工具“系统监视器”(在Windows 2000中是“性能监视器”)也是非常实用的。系统监视器显示了系统负载以及其他几个性能指标,例如错误页数等,可以通过它来了解系统性能优化的效果。二、二、数
6、据库管理员的基本职责数据库管理员的基本职责安装和升级数据库服务器,以及应用程序工具。数据库设计系统存储方案,并制定未来的存储需求计划。创建基于应用系统数据库存储结构。创建基于应用系统数据库对象。根据应用需求,修改数据库的结构。登记数据库的用户,维护数据库的安全性。控制和监控用户对数据库的存取访问。监控和优化数据库的性能。制定数据库备份计划,备份和恢复数据库。联系数据库系统的生产厂商,跟踪技术信息。保证数据库的使用符合知识产权相关法规。一、创建一、创建Oracle数据库前的准备数据库前的准备1.1.运行环境运行环境(1)计算机上必须要有足够的磁盘存储空间来执行Oracle。(2)有足够可用的内存
7、来启动Oracle实例。(3)Oracle软件已被安装并正确设置了各种必要的环境参数,获得足够的操作系统权限来创建或打开数据库前启动和关闭一个实例。并为软件和数据库文件建立目录结构。5.2 5.2 创建、启动和关闭创建、启动和关闭Oracle数据库数据库 2 2新建数据库的功能和结构规划新建数据库的功能和结构规划 新建数据库的规划包含以下几个方面的内容:(1)估算数据库所需的空间大小。可以依据数据库中将要包含的表、索引等对象的结构大小和记录数量做出大致的估算。(2)确定数据库文件的存放方式。结合数据库运行时的特点来考虑它们在硬盘中的存放位置。采用单磁盘还是硬盘阵列存储,通过合理规划数据文件的存
8、放位置,可以有效地均衡硬盘IO操作,使数据库的物理性能得到较大改善。(3)熟悉与创建数据库过程相关的初始化参数。保证新建数据库的优良性能。(4)决定新数据库的全局数据库名。全局数据库名是一个Oracle数据库在网络中的惟一标识,是数据库最为重要的属性。在确定全局数据库的同时,也确定了数据库名和系统标识SIDSID。二、创建二、创建Oracle数据库数据库1 1、使用、使用DBCA创建数据库创建数据库DBCA中提供了四种类型的数据库模板以适用于不同的应用环境。Data Warehousing应用于数据仓库环境,即决策支持系统(DSS);该环境中的数据库必须处理大量的复杂查询,这些复杂查询将涉及到
9、数据库中大量的表和记录,并且大部分查询都是只读的,因此,数据库性能主要取决于响应时间、准确性以及可用性。Transaction Processing应用于联机事务处理(OLTP)环境;该环境中的数据库每天必须处理来自许多并发用户的成千乃至上百万的事务,用户必须能够快速访问到最新数据,因此,数据库的性能取决于数据吞吐性能(速度)、并发性以及可恢复性。General Purpose应用于同时具有DSS和OLTP特性的数据库。New Database应用该模板能够以自定义方式创建新数据库,用户可以对各项参数进行灵活的设置。2 2、使用、使用SQL*Plus脚本创建数据库脚本创建数据库对于熟悉DBA命
10、令的用户,使用SQL*Plus语句创建数据库会更加灵活方便,下面介绍创建数据库的CREATE DATABASE语句,语句格式如下:CREATE DATABASEdatabasenameCONTROLFILE RESUSELOGFILEGROUP nfilename,GROUP nfileameMAXLOGFILES nMAXLOGMEMBERS nMAXLOGHISTORY n MAXDATAFILES nINSTANCES nARCHIVELOG NOARCHIVELOGCHARACTER SET charsetnameDATAFILE filename autoextend,1三、启动三、
11、启动Oracle数据库数据库(1)startup nomount(2)startup mount dbname(3)startup open dbname(4)startup(5)startup restrict(6)startup force(7)startup pfile=参数文件名四、关闭四、关闭Oracle数据库数据库(1)shutdown normal(2)shutdown immediate(3)shutdown abort一、创建表空间一、创建表空间如下三类SQL语句能够创建表空间:(1)CREATE TABLESPACE:创建一般的表空间。(2)CREATE TEMPORARY
12、 TABLESPACE:创建临时表空间。(3)CREATE UNDO TABLESPACE:创建撤销表空间。5.3 5.3 管理表空间管理表空间CREATE TABLESPACE命令的语法如下:CREATE TABLESPACE tablespacenameDATAFILE filename autoexetend clause,MININUM EXTENT integer KM|BLOCKSIZE integer K|LOGGING|NOLOGGING|DEFAULT storage clause|ONLINE|OFFLINE|PERMANENT|TEMPORARY|extent_manag
13、ement_clause|segment_management_clause;二、更改表空间二、更改表空间更改表空间的SQL语句为ALTER TABLESPACE语句。操作者必须具有ALTER TABLESPACE系统特权,该语句语法如下:ALTER TABLESPACE tablespacename三、删除表空间三、删除表空间DROP TABLESPACE的基本语法如下的基本语法如下:DROP TABLESPACE tablespacenameINCLUDING CONTENTSAND DATAFILESCASCADE CONSTRAINTS四、查看表空间信息四、查看表空间信息(1)V$TA
14、BLESPACE:从控制文件得到的所有的表空间的名称和数量。(2)DBA_TABLESPACES,USER_TABLESPACES:描述了所有表空间。(3)DBA_SEGMENTS,USER_SEGMENTS:在所有表空间内的段信息。(4)DBA_EXTENTS,USER_EXTENTS:在所有表空间内的数据范围的信息。(5)DBA_FREE_SPACE,USER_FREE_SPACE:在所有表空间内的空闲范围的信息。(6)V$DATAFILE:所有的数据文件的信息,包括拥有表空间的数量。(7)V$TEMPFILE:所有的临时文件信息,包括拥有表空间的数量。(8)DBA_DATA_FILES:
15、显示文件(数据文件)属于哪个表空间。(9)DBA_TEMP_FILESDBA_TEMP_FILES:显示文件(临时文件)属于哪个临时表空间。(10)V$TEMP_EXTENT_MAP:本地管理的临时表空间中所有的范围信息。(11)V$TEMP_EXTENT_POOL:对本地管理的临时表空间而言,该视图显示临时空间缓冲的状态以及由实例使用的临时空间缓存。(12)V$TEMP_SPACE_HEADER:显示每个临时文件的已用/空闲空间。(13)DBA_USERS:所有的用户的缺省和临时表空间。(14)DBA_TS_QUOTAS:所有的用户的表空间限额。(15)V$SORT_SEGMENT:给定实例
16、中每排序段信息。此视图只有当表空间为临时类型时才更新。(16)V$SORT_USER:由用户和临时/永久表空间使用的排序空间。一、管理策略一、管理策略在管理数据文件前,应先注意以下事项:(1)数据文件的数量和大小受条件限制。(2)合理放置数据文件的位置。5.4 5.4 管理管理OracleOracle数据文件数据文件二、建立和增加二、建立和增加OracleOracle数据文件数据文件通过在表空间中建立和增加数据文件,可以增加数据库的磁盘空间总数。执行该语句的用户必须具有ALTER TABLESPACE系统权限。SQL语句为:ALTER TABLESPACE tablename ADD DATA
17、FILE filename SIZE newsize;三、改变三、改变OracleOracle数据文件大小数据文件大小1数据文件大小的自动扩展 想使得数据库文件大小可以自动扩展,可以在CREATE DATABASE,CREATE TABLESPACE,ALTER DATABASE语句建立数据文件时指定数据文件自动扩展。取消数据文件大小的自动扩展功能可用以下语句:ALTER DATABASE DATAFILE E:oracleoradatatext02.dbfAUTOEXTEND OFF;2 2用手动方法来改变数据文件的大小用手动方法来改变数据文件的大小可以通过带有RESIZE子句的ALTER
18、DATABASE语句来手工地增加或减少使用的数据文件的大小。例如,利用下面的语句可以将数据文件text02.dbf增大为600MB:ALTER DATABASE DATAFILE E:oracleoradatatext02.dbf RESIZE 600M;四、设置四、设置Oracle数据文件的使用状态数据文件的使用状态(1)使指定的数据文件联机的语句:ALTER DATABASE DATAFILE filename ONLINE;(2)使指定的数据文件脱机的语句:ALTER DATABASE DATAFILE filename OFFLINE;五、查看五、查看Oracle数据文件信息数据文件信
19、息下列数据字典视图可以查看Oracle数据库的数据文件信息:(1)DBA_ DATA_ FILES:数据文件提供的描述信息,包括它属于的表空间和文件标识。文件标识可以被用来与其他视图连接以查看更详细的信息。(2)DBA _EXTENTS与USER_ EXTENTS:DBA _EXTENTS:描述在数据库组成所有的段(Segments)的范围(Extents)。包含那些包含了范围的数据文件的文件标识。(3)USER_ EXTENTS:描述属于当前的用户的对象的段的范围。(4)DBA _FREE_ SPACE和和USER_ FREE_ SPACE:DBA_ FREE_ SPACE视图列出了在所有表
20、空间的空闲范围。它包括包含了范围的数据文件的文件,标识。USER_ FREE_ SPACE视图包含当前用户的空闲范围。(5)V$DATAFILE:控制文件中包含的数据文件的信息。(6)V$DATAFILE HEADER:数据文件头中包含信息。一、管理策略一、管理策略1.使用复合重做日志文件使用复合重做日志文件 建立复合重做日志文件后,LGWR进程将同步地写入位于同一个重做日志组中的相互镜像的多个成员日志文件。因此即使由于某个单独的日志文件破坏或丢失,数据库的运行和恢复都不会受到任何影响。5.5 5.5 管理重做日志文件管理重做日志文件 2 2合理设置重做日志文件的大小和数量合理设置重做日志文件
21、的大小和数量在设置重做日志文件的大小时,除了需要考虑到数据库运行特性的要求外,还需要考虑存储归档日志的物理设备的特性,使存储空间不致不足或由于略大小日志文件造成浪费。尽量使用最少的重做日志文件,但是能够保证LGWR进程永不出现等待状态。二、创建重做日志组和成员的日志文件二、创建重做日志组和成员的日志文件1.1.创建重做日志组创建重做日志组 为数据库创建新的重做日志组,需要使用带有ADD LOGFILE子句的ALTER DATABASE语句。例如,利用下面的语句可以为数据库添加一个新的重做日志组:ALTER DATABASE ADD LOGFILE(I:OracleORADATAORADB01r
22、edo1201.rdo,I:OracleORADATAORADBO1redo1202.rdo)SIZE 100M;2 2创建成员日志文件创建成员日志文件为重做日志组添加新的成员,需要使用带有ADD LOGFILE MEMBER子句的ALTER DATABASE语句。例如,利用下面的语句可以为3号重做日志组添加一个新的成员日志文件:ALTER DATABASE ADD LOGFILE MEMBERI:OracleORADATAORADB01redo1220.log TO GROUP 3;三、删除重做日志组和成员的日志文件三、删除重做日志组和成员的日志文件1.1.删除重做日志组删除重做日志组 删除
23、一个重做日志组时,其中的成员日志文件将都被删除。例如,利用下面的语句可以删除3号重做日志组:ALTER DATABASE DROP LOGFILE GROUP 3;在执行上述语句后,只是在数据字典和控制文件中将重做日志组的记录信息删除,并不会删除操作系统中的相应文件。因此,在确认删除操作成功后,DBA需要手工将相应的操作系统文件删除。2 2删除成员日志文件删除成员日志文件如果存放某个成员日志文件的硬盘发生物理损坏,为了防止Oracle继续尝试写入己经损坏的重做日志文件,则需要将它从重做日志组中删除。例如,利用下面的语句可以删除3号重做日志组的第2个成员:ALTER DATABASE DROP
24、LOGFILE MEMBERI:oracleoradataoradbOlredo1220.log;同样在执行上述语句后,只是在数据字典和控制文件中重做日志成员的记录信息删除,并不会删除操作系统中的相应文件。四、清空重做日志组四、清空重做日志组 清空重做日志文件相当于删除该重做日志文件,然后再重新建立它。它可以在不关闭数据库的情况下,手工清空损坏的重做日志文件中的内容,以避免出现数据库停止运行的情况。清空一个重做日志组时,将同时清空该组中的所有成员日志文件。例如,利用下面的语句可以清空3号重做日志组:ALTER DATABASE CLEAR LOGFILE GROUP 3;五、查询重做日志文件信
25、息五、查询重做日志文件信息包含有重做日志文件信息的数据字典视图和动态性能视图主要有:(1)V$LOG:包含从控制文件中获取的所有重做日志文件的基本信息。(2)V$LOGFILE:包含各个成员日志文件的信息,例如成员的状态和所属的重做日志组。(3)V$LOG_HISTORY:包含关于重做日志文件的历史信息。例如:要获取数据库中所有重做日志组的基本信息,可以查询V$LOG视图,使用如下的命令语句:SELECT*FROM V$LOG;一、管理表一、管理表1.表的建立表的建立 例如:创建test表空间上的region表。CREATE TABLE test.region(OFFICE_NUM NUMBE
26、R(3,0)NOT NULL,REGION_CODE NUMBER(8,0)NOT NULL,REGION_NAME VARCHAR2(20)NOT NULL);5.6 5.6 管理管理Oracle数据库对象数据库对象2.2.表的修改表的修改 例如:修改region表结构,增加名称为DESC的字段。ALTER TABLE test.region(ADD DESC VARCHAR2(30);3 3表的删除表的删除例如:删除引用该表的其它表的完整性约束。DROP TABLE test.region CASCADE CONSTRAINTS;二、管理视图二、管理视图1.视图的建立视图的建立 例如:建立
27、一个视图用来查询teacher和lib表中的相关信息。CREATE VIEW reader_view ASSELECT teacher.id,teacher.name,lib.booksFROM teacher t,lib l where t.id=l.id;2.2.视图的替换视图的替换 REPLACE VIEW reader_view ASSELECT teacher.id,teacher.name,lib.booksFROM teacher t,lib l where t.id=l.id;3 3视图的删除视图的删除DROP VIEW test.pole_well_view;三、管理索引三、
28、管理索引1.1.索引的建立索引的建立 例如:在test.Region表中的region_name列上创建一个名为test.idx_region的索引。CREATE INDEX test.idx_regionON region(region_name)TABLESPACE test;2.2.索引的修改索引的修改 ALTER INDEX test.idx_regionON region(office_num,region_name)3 3索引的删除索引的删除DROP INDEX test.idx_region;四、管理触发器四、管理触发器Oracle允许定义过程,当对相关的表作INSERT、UPD
29、ATE或DELETE语句时,这些过程被隐式地执行,称为数据库触发器。过程与触发器差别在于调用方法:过程由用户或应用显式执行;而触发器是为一激发语句(INSERT、UPDATE、DELETE)发出,由Oracle隐式地触发。一般触发器用于:自动地生成导出列值。防止无效事务。实施复杂的安全审核。在分布式数据库中实施跨结点的引用完整性。实施复杂的事务规则。提供透明的事件记录。提供高级的审计。维护同步的表副本。收集表存取的统计信息。五、数据的完整性五、数据的完整性数据库数据的完整性指数据的正确性和相容性。数据完整性检查防止数据库中存在不符合语义的数据。完整性约束是对表的列定义一组规则说明方法。Orac
30、le提供如下的完整性约束:(1)NOT NULL:非空;(2)UNIQUE:唯一关键字;(3)PRIMARY KEY:主键,一个表只能有一个,非空;(4)FOREIGN KEY:外键;(5)CHECK:表的每一行对指定条件必须是true或未知(对于空值)。5.7 Oracle5.7 Oracle的数据字典的数据字典Oracle的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生,随着数据库的变化而变化,体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。数据字典里的信息不能手工
31、修改。可以通过查询语句知道数据字典的详细名称和解释。相关的表有:(1)dictionary:全部数据字典表的名称和解释,它有一个同义词dict。(2)dict_column:全部数据字典表里字段名称和解释。例如:如果想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:select column_name,comments from dict_columns where table_name=USER_INDEXES;1.1.用户信息用户信息 (1)查看当前用户的缺省表空间select username,default_tablespace from user_use
32、rs;(2)查看当前用户的角色select*from user_role_privs;(3)查看当前用户的系统权限和表级权限select*from user_sys_privs;select*from user_tab_privs;2.表信息 (1)查看用户下所有的表select*from user_tables;(2)查看名称包含log字符的表select object_name,object_id from user_objectswhere instr(object_name,LOG)0;(3)查看某表的创建时间select object_name,created from user_o
33、bjects whereobject_name=upper(&table_name);(4)查看某表的大小select sum(bytes)/(1024*1024)as“size(M)”from user_segments where segment_name=upper(&table_name);(5 5)查看放在)查看放在OracleOracle的内存区里的表的内存区里的表select table_name,cache from user_tables where instr(cache,Y)=0;3.3.索引信息索引信息 (1)查看索引个数和类别select index_name,ind
34、ex_type,table_name from user_indexesorder by table_name;(2)查看索引被索引的字段select*from user_ind_columns whereindex_name=upper(&index_name);(3)查看索引的大小select sum(bytes)/(1024*1024)as size(M)from user_segments where segment_name=upper(&index_name);4.4.序列号信息序列号信息 查看序列号,last_number是当前值。select*from user_sequenc
35、es;5.5.视图信息视图信息 (1)查看视图的名称select view_name from user_views;(2)查看创建视图的select语句set view_name,text_length from user_views;set long 2000;说明:可以根据视图的text_length值设定set long 的大小。select text from user_views whereview_name=upper(&view_name);6.6.同义词同义词 查看同义词的名称:select*from user_synonyms;7.7.约束条件约束条件 查看某表的约束条件:
36、select constraint_name,constraint_type,search_condition,r_constraint_name from user_constraints where table_name=upper(&table_name);select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns ccwhere c.owner=upper(&table_owner)and c.table_name=upper(&table_name
37、)and c.owner=cc.owner and c.constraint_name=cc.constraint_nameorder by cc.position;8.8.存储函数和过程存储函数和过程 (1)查看函数和过程的状态select object_name,status from user_objects whereobject_type=FUNCTION;select object_name,status from user_objects whereobject_type=PROCEDURE;(2)查看函数和过程的源代码select text from all_source wh
38、ere owner=user andname=upper(&plsql_name);Oracle企业管理器(企业管理器(OEM)是主要的数据库管理工具,)是主要的数据库管理工具,使用使用OEMOEM可以方便地管理可以方便地管理Oracle数据库的各种资源。通过数据库的各种资源。通过OEM,可以执行数据库的各项操作。例如,数据对象的建,可以执行数据库的各项操作。例如,数据对象的建立和调整、数据库的备份和恢复,以及数据库的参数调整立和调整、数据库的备份和恢复,以及数据库的参数调整等。等。5.8 5.8 使用使用OEMOEM管理数据库管理数据库1作为Oracle的数据库管理员,其主要工作职责有哪些?2Oracle数据库在安装后自动建立的两个具有DBA角色的用户和口令是什么?3Oracle9i在数据库管理方面有哪些新特性?4Oracle数据库的几种启动方式有什么不同,相关命令是什么?5管理Oracle数据文件的策略是什么?6怎样才能合理设置重做日志文件的大小和数量?7如何用数据字典来管理数据库?8在OEM中对Oracle常用的一些数据库对象分别完成创建、修改、删除操作。本章练习本章练习演讲完毕,谢谢观看!