《第06章 Oracle9i存储管理》由会员分享,可在线阅读,更多相关《第06章 Oracle9i存储管理(45页珍藏版)》请在金锄头文库上搜索。
1、第6章 Oracle9i的存储管理,本章内容: 表空间的管理 数据文件管理 回退段管理 日志管理,Database,Logical,Physical,Tablespace,Data file,OS block,Oracle block,Segment,Extent,数据库存储层次,表空间内涵及分类 表空间是Oracle用于物理存储的结构。表空间存储段的集合表和索引。表空间是Oracle数据库中数据的逻辑组织。一个表 空间在操作系统级映射到一个或多个数据文件上。 表空间分类: 系统表空间 临时表空间 工具表空间 用户表空间 数据及索引表空间 回滚表空间 在企业管理器EM中创建表空间 使用SQL语
2、句创建表空间,用企业管理器创建表空间 “存储”图标,右键单击表空间,选“创建”,如图,创建表空间对话框,创建表空间的存储属性,显示表空间创建成功,查看表空间 双击树状目录的表空间图标,可以看到新创建的表空间,创建表空间相应的SQL语句,CREATE TABLESPACE app_data DATAFILE /DISK4/app_data_01.dbf SIZE 100M, /DISK5/app data_ 02.dbf SIZE 100M MINIMUM EXTENT 500K DEFAULT STORAGE ( INITIAL 500K NEXT 500K MAXEXTENTS 500 PC
3、TINCREASE 0 );,手工创建表空间 使用SQL命令创建表空间的工具及语法,设置表空间的默认存储参数,STORAGE子句用来设置表空间的默认存储参数,即在表空间中创建新对象而没有指定存储参数时,将使用此STORAGE子句的设置值。 STORAGE子句的5个子参数如下。 INITIAL:设置分配给新对象的初始区间的大小。 NEXT:设置用户使用的第一个扩展区间的大小,通常NEXT和INITIAL的值相同。 PCTINCREASE:设置扩展区间的增量百分比,通常设置为0,表示每次增长的扩展区间的大小都是NEXT。 MINEXTENTS:设置分配给一个新对象的最小区间数。通常设置为1。 MA
4、XEXTENTS:设置分配给一个Oracle对象的最大区间数,可以指定一个数目,也可以使用关键字UNLIMITED,表明可以无限扩展。,例如,创建一个名为NEW_TABLESPACE的表空间,初始空间分配500 MB,第一个扩展区间的大小为100 MB,可以无限扩展区间数,增量百分比为0 SQL语句如下: CREATE TABLESPACE “NEW_TABLESPACE“ DATAFILE C:ORACLEORADATANBTCNEW_TABLESPACE.ORA SIZE 500M DEFAULT STORAGE(INITIAL 100MNEXT 100M MINEXTENTS 1 MAX
5、EXTENTS UNLIMITED PCTINCREASE 0);,表空间的管理 利用企业管理器查看、修改表空间特性。,表空间操作菜单,选取查看/编辑表空间命令,弹出对话框,编辑表空间对话框,利用所示对话框,可以查看和编辑数据库的各项特性。 编辑数据文件对话框一般信息选项卡如图。,编辑数据文件对话框存储选项卡,手工利用SQL命令实现对表空间的查看和修改 (1)查看表空间: (2)修改表空间 撤消表空间,如图,手工撤消表空间使用DROP TABLESPASE命令,脱机状态,脱机表空间无法用于数据访问 某些表空间必须联机: SYSTEM 包含活动回滚段的表空间 把表空间设置为脱机: 把表空间设置为
6、联机:,ALTER TABLESPACE app_data OFFLINE;,ALTER TABLESPACE app_data ONLINE;,只读表空间,ALTER TABLESPACE app_data READ ONLY;,表空间只能进行读操作 可以从表空间中删除对象,删除表空间,DROP TABLESPACE app_data INCLUDING CONTENTS;,从数据字典中删除表空间 内容从数据字典中移走 不会删除OS文件,改变表空间的大小,修改数据文件的大小 自动 手动 添加数据文件,Tablespace APP_DATA,app_data_02.dbf 100M,app_d
7、ata_01.dbf 100M,app_data_03.dbf 200M,允许数据文件自动扩展,ALTER TABLESPACE app_data ADD DATAFILE /DISK6/app_data_04.dbf SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;,手动修改数据文件的大小,ALTER DATABASE DATAFILE /DISK5/app_data_02.dbf RESIZE 200M;,Tablespace APP_DATA,100M,app_data_02.dbf 100M,app_data_01.dbf 100M,app_
8、data_04.dbf 200M,app_data_03.dbf 200M,添加数据文件到表空间,ALTER TABLESPACE app_data ADD DATAFILE /DISK5/app_data_03.dbf SIZE 200M;,Tablespace APP_DATA,app_data_02.dbf 100M,app_data_03.dbf 200M,移动数据文件-1:ALTER TABLESPACE,表空间必须脱机 目标数据文件必须存在,ALTER TABLESPACE app_data RENAME DATAFILE /DISK4/app_data_01.dbf TO /DI
9、SK5/app_data_01.dbf;,移动数据文件-2: ALTER DATABASE,数据库必须mount. 目标数据文件必须存在,ALTER DATABASE RENAME FILE /DISK1/system_01.dbf TO /DISK2/system_01.dbf;,获取表空间信息(数据字典),表空间信息: DBA_TABLESPACES V$TABLESPACE 数据文件信息: DBA_DATA_FILES V$DATAFILE 临时文件信息: DBA_TEMP_FILES V$TEMPFILE,表空间和数据文件的小结,使用多个表空间 指定默认的存储参数 为用户指定表空间限额
10、 使用MINIMUM EXTENTS 每个表空间可以包含1023 数据文件,回退段管理,回退段用来存放事务处理的恢复信息,可以利用回退段中的回退记录对数据库进行恢复。回退段又称回滚段,是数据段的一种。 Oracle系统安装时会自动创建名为SYSTEM的回退段,数据库管理员也可以自行创建并使用自定义的回退段。 创建回退段,在EM中的“存储”节点。也可以使用SQL语句来实现。,回退段管理,【存储】回退段【创建】【创建回退段】 【创建回退段】【一般信息】,用于设置回退段的一般信息。 输入回退段名称XXGCXROLLBACKSEGMENT,选择所在表空间UNDOTBS,在【状态】栏中选择【联机】,使回
11、退段处于联机状态。,日志管理,日志文件分为联机重做日志文件和归档日志文件。 每个数据库至少包含两个重做日志组,在每个重做日志组里一般包含了两个以上的重做日志文件。这两个日志组是循环使用的。 重做日志组主要用于数据库出现故障时进行恢复。,重做日志组和成员,Group 2,Group 3,Group 1,Member,Disk 1,Disk 2,Member,Member,Member,Member,Member,日志文件在Oracle 体系结构的作用,Instance,SGA,Control files,Data files,Redo log files,Database,Archived lo
12、g files,Parameter file,Password file,CKPT,DBWR,Redo log buffer,Data buffer cache,LGWR,ARCH,添加联机重做日志组,Group 1,Group 2,Group 3,ALTER DATABASE ADD LOGFILE (/DISK3/log3a.rdo, /DISK4/log3b.rdo) size 1M;,log3b.rdo,log1b.rdo,log2b.rdo,添加联机重做日志成员,log1b.rdo,ALTER DATABASE ADD LOGFILE MEMBER /DISK4/log1b.rdo
13、TO GROUP 1, /DISK4/log2b.rdo TO GROUP 2;,Group 1,Group 2,log1a.rdo,log2b.rdo,log2a.rdo,删除联机重做日志组,Group 1,Group 2,Group 3,ALTER DATABASE DROP LOGFILE GROUP 3;,log1b.rdo,log1b.rdo,log3a.rdo,log3b.rdo,log1b.rdo,log2b.rdo,删除联机重做日志成员,Group 2,ALTER DATABASE DROP LOGFILE MEMBER /DISK4/log2b.dbf;,Group 1,lo
14、g1b.rdo,log2b.rdo,log1b.rdo,log1b.rdo,清除联机重做日志文件,ALTER DATABASE CLEAR LOGFILE /DISK3/log2a.rdo;,例如:,归档模式,Oracle系统的日志文件以循环方式覆盖写入日志项,如果不在日志文件内容写满时将其保存下来,当下一次循环到该文件时,其内容将被覆盖,这样就会丢失一些日志信息,无法保证数据库恢复时的完全一致性。因此,Oracle数据库提供了ARCn归档进程来执行对数据库日志文件的自动归档。 当一个联机的日志文件内容写满时,LGWR进程发生日志切换,开始对下一个日志文件写入日志信息。而ARCn进程将写满内容的日志文件的内容复制下来,LGWR进程必须等待ARCn进程完成操作后才能覆盖日志文件的内容。 数据库运行在归档模式下,即所有的重做日志都将保存下来,这样数据库就可以从所有类型的失败中恢复,包括用户错误及磁盘崩溃等。这是一种最安全的数据库运行模式。数据库运行的默认模式是非归档模式。,设置数据库为归档模式,This is the end.,