《Oracle-12c数据库基础教程》教学课件—05数据库存储管理

上传人:sat****105 文档编号:290318106 上传时间:2022-05-09 格式:PPT 页数:169 大小:2.35MB
返回 下载 相关 举报
《Oracle-12c数据库基础教程》教学课件—05数据库存储管理_第1页
第1页 / 共169页
《Oracle-12c数据库基础教程》教学课件—05数据库存储管理_第2页
第2页 / 共169页
《Oracle-12c数据库基础教程》教学课件—05数据库存储管理_第3页
第3页 / 共169页
《Oracle-12c数据库基础教程》教学课件—05数据库存储管理_第4页
第4页 / 共169页
《Oracle-12c数据库基础教程》教学课件—05数据库存储管理_第5页
第5页 / 共169页
点击查看更多>>
资源描述

《《Oracle-12c数据库基础教程》教学课件—05数据库存储管理》由会员分享,可在线阅读,更多相关《《Oracle-12c数据库基础教程》教学课件—05数据库存储管理(169页珍藏版)》请在金锄头文库上搜索。

1、Oracle 12cOracle 12c数据库基础教程(第数据库基础教程(第数据库基础教程(第数据库基础教程(第33版)版)版)版)第第5章章 数据库存储管理数据库存储管理学前提示学前提示学前提示学前提示本章主要介绍本章主要介绍OracleOracle数据库的管理方法,数据库的管理方法,包括创建和删除数据包括创建和删除数据库管理、数据库配置、库管理、数据库配置、维护数据库实例和用维护数据库实例和用户管理等。户管理等。知识要点知识要点p表空间管理表空间管理p回滚段管理维护数据库实例回滚段管理维护数据库实例p数据库文件管理数据库文件管理5.1 表空间管理表空间管理5.1.1 5.1.1 查看表空间

2、信息查看表空间信息5.1.2 5.1.2 统计表空间的使用情况统计表空间的使用情况5.1.3 5.1.3 创建表空间创建表空间5.1.4 5.1.4 设置和修改表空间属性设置和修改表空间属性5.1.5 5.1.5 删除表空间删除表空间5.1.1 查看表空间信息查看表空间信息段 类 型说 明V$TABLESPACE控制文件中保存的所有表空间的名称和属性DBA_TABLESPACES所有表空间的属性和在线状态信息USER_TABLESPACES所有用户可访问表空间的描述信息DBA_TABLESPACE_GROUPS所有表空间组及其所属的表空间信息DBA_SEGMENTS所有表空间中的区间信息USE

3、R_SEGMENTS所有用户表空间中的区间信息DBA_FREE_SPACE所有表空间中的空闲区间信息USER_FREE_SPACE所有用户表空间中的空闲区间信息V$DATAFILE所有数据文件信息V$TEMPFILE所有临时文件信息DBA_DATA_FILES显示所有属于表空间的数据文件信息DBA_TEMP_FILES显示所有属于临时表空间的临时文件信息视图视图V$TABLESPACE的字段属性的字段属性字 段 名数据类型说 明TS#NUMBER表空间编号NAMEVARCHAR2(30)表空间名称INCLUDED_IN_DATABASE_BACKUPVARCHAR2(3)表明该表空间是否包含在

4、完整数据库备份中BIGFILEVARCHAR2(3)是否为大文件表空间FLASHBACK_ONVARCHAR2(3)表明该表空间是否参与FLASHBACK DATABASE操作。关于FLASHBACK DATABASE命令的具体功能将在第8章中介绍ENCRYPT_IN_BACKUPVARCHAR2(3)指定备份数据库时是否加密。ON表示在表空间级别启动数据加密功能;OFF表示在表空间级别关闭数据加密功能;NULL表示在表空间级别未明确指定是否启动或关闭数据加密功能 CON_IDNUMBER数据库容器ID【例【例5.1】SELECT * FROM V$TABLESPACE;SELECT * FR

5、OM V$TABLESPACE;p ALLOCATION_TYPEVARCHAR2(9)表空间中区间的分配方式,包括SYSTEM、UNIFORM和USERPLUGGED_INVARCHAR2(3)表明表空间是否接入SEGMENT_SPACE_MANAGEMENTVARCHAR2(2)表明表空间中空闲和已使用的区间空间是使用空闲列表(MANUAL)来管理,还是使用位图(AUTO)来管理DEF_TAB_COMPRESSIONVARCHAR2(8)表明是否启用默认的表压缩选项RETENTIONVARCHAR2(11)指定撤销表空间中数据保留的时间。GUARANTEE表示当前表空间为撤销表空间,并且其

6、RETENTION属性的值为GUARANTEE。这表明在撤销区间中的所有未过期撤销数据都将被保留,即使后面的操作可能会产生新的撤销数据,并占用撤销区间中的空间,系统也不会覆盖未过期的撤销数据。NOGUARANTEE表示当前表空间为撤销表空间,并且其RETENTION属性的值为NOGUARANTEE。NO APPLY表示当前表空间不是撤销表空间DEF_INMEMORY_COMPRESSIONVARCHAR2(17)IM列存储的默认压缩等级DEF_INMEMORY_DUPLICATEVARCHAR2(13)设置列存储在RAC中的复制方式BIGFILEVARCHAR2(3)表明当前表空间是否为大文件

7、表空间PREDICATE_EVALUATIONVARCHAR2(7)通过HOST还是STORAGE评估ENCRYPTEDVARCHAR2(3)表空间是否加密COMPRESS_FORVARCHAR2(30)压缩的方式DEF_INMEMORYVARCHAR2(8)是否启用内存列存储。从12.1.0.2开始,内存列存储是可选项。在SGA中分配一块空间用于以列格式存储表、分区,实现快速扫描DEF_INMEMORY_PRIORITYVARCHAR2(8)列存储的优先方式DEF_INMEMORY_DISTRIBUTEVARCHAR2(15)在RAC环境中,如何分布内存列存储【例【例5.2】SELECT T

8、ABLESPACE_NAME,CONTENTS, SELECT TABLESPACE_NAME,CONTENTS, STATUS FROM DBA_TABLESPACES;STATUS FROM DBA_TABLESPACES;(3)查看表空间组及其所属的表空间信)查看表空间组及其所属的表空间信息息字 段 名数据类型说 明GROUP_NAMEvarchar2(30)表空间组的名称TABLESPACE_NAMEvarchar2 (30)表空间的名称提示提示表空间组(表空间组(Tablespace GroupTablespace Group)可以)可以包含一个或多个表空间。用户可以通包含一个或多个

9、表空间。用户可以通过表空间组使用多个表空间的临时空过表空间组使用多个表空间的临时空间。一个表空间组至少包含一个表空间。一个表空间组至少包含一个表空间,而且不限制其包含的最大表空间间,而且不限制其包含的最大表空间数量。数量。(4)查看表空间中所包含的段信息)查看表空间中所包含的段信息字 段 名数据类型说 明OWNERVARCHAR2(30)段所有者的用户名SEGMENT_NAMEVARCHAR2(30)段的名称PARTITION_NAMEVARCHAR2(30)对象分区名SEGMENT_TYPEVARCHAR2(18)段的类型,包括PARTITION、TABLE PARTITION、TABLE、

10、CLUSTER、INDEX、ROLLBACK、DEFERRED ROLLBACK、TEMPORARY、CACHE、LOBSEGMENT和LOBINDEXTABLESPACE_NAMEVARCHAR2(30)包含段的表空间的名称BYTESNUMBER段的大小,单位为字节BLOCKSNUMBER段的大小,单位为数据块EXTENTSNUMBER分配给段的区间的数量NEXT_EXTENTNUMBER下一个要分配给段的区间的大小,单位为字节MIN_EXTENTSNUMBER段中允许包含的最小区间数量MAX_EXTENTSNUMBER段中允许包含的最大区间数量(5)查看表空间中空闲区间的信息)查看表空间中

11、空闲区间的信息字 段 名数据类型说 明TABLESPACE_NAME VARCHAR2(30)表空间的名称FILE_IDNUMBER包含区间的文件的标识符BLOCK_IDNUMBER区间中起始数据块的编号BYTESNUMBER区间的大小,单位为字节BLOCKSNUMBER区间的大小,单位为数据块RELATIVE_FNONUMBER包含区间的文件的相对文件号【例【例5.3】SELECT TABLESPACE_NAME, FILE_ID, BYTES, SELECT TABLESPACE_NAME, FILE_ID, BYTES, BLOCKS FROM DBA_FREE_SPACE;BLOCKS

12、 FROM DBA_FREE_SPACE;5.1.2 统计表空间的使用情况统计表空间的使用情况 DBA_DATA_FILES DBA_DATA_FILES:用于查询所有数据文:用于查询所有数据文件的信息。件的信息。 DBA_FREE_SPACE DBA_FREE_SPACE:用于查询表空间的空:用于查询表空间的空闲区间信息。闲区间信息。 DBA_TABLESPACES DBA_TABLESPACES:用于查询所有表空间:用于查询所有表空间的信息。的信息。1统计所有表空间的总空间大小统计所有表空间的总空间大小SELECT tablespace_name AS SELECT tablespace_

13、name AS 表空间表空间名名,SUM(bytes),SUM(bytes)FROM DBA_DATA_FILESFROM DBA_DATA_FILESGROUP BY tablespace_name;GROUP BY tablespace_name;查询表空间大小查询表空间大小2统计所有表空间的空闲空间大小统计所有表空间的空闲空间大小SELECT a.tablespace_name, NVL(SUM(b.bytes),0) bytes SELECT a.tablespace_name, NVL(SUM(b.bytes),0) bytes FROM DBA_DATA_FILES a, DBA_

14、FREE_SPACE b FROM DBA_DATA_FILES a, DBA_FREE_SPACE b WHERE a.tablespace_name = b.tablespace_name (+) AND WHERE a.tablespace_name = b.tablespace_name (+) AND a.file_id = b.file_id (+) a.file_id = b.file_id (+) GROUP BY a.tablespace_name;GROUP BY a.tablespace_name;查询表空间的空闲空间大小查询表空间的空闲空间大小3统计表空间使用情况的统计

15、表空间使用情况的SELECT语句语句 COL 表空间表空间 FOR A10COL 剩余百分比剩余百分比 FOR A10SELECT c.tablespace_name 表空间表空间, ROUND(a.bytes/1024/1024,2) 表空间大小表空间大小,ROUND(a.bytes-b.bytes)/1048576,2) 已使用空间已使用空间,ROUND(b.bytes/1048576,2) 剩余空间剩余空间, ROUND(b.bytes/a.bytes * 100,2)|% 剩余百分比剩余百分比 FROM (SELECT tablespace_name,SUM(bytes) bytes

16、FROM DBA_DATA_FILES GROUP BY tablespace_name) a, (SELECT a.tablespace_name, NVL(SUM(b.bytes),0) bytes FROM DBA_DATA_FILES a, DBA_FREE_SPACE b WHERE a.tablespace_name = b.tablespace_name (+) AND a.file_id = b.file_id (+) GROUP BY a.tablespace_name) b, DBA_TABLESPACES c WHERE a.tablespace_name = b.tab

17、lespace_name(+) AND a.tablespace_name = c.tablespace_name ORDER BY ROUND(b.bytes/1024/1024,2);统计表空间的使用情况统计表空间的使用情况 5.1.3 创建表空间创建表空间CREATE UNDO TABLESPACE CREATE UNDO TABLESPACE 表空间名表空间名DATAFILE DATAFILE 子句子句 MININUM EXTENT MININUM EXTENT 整数整数 k|m k|m| BLOCKSIZE | BLOCKSIZE 整数整数 k k|logging |logging

18、子句子句|FORCE LOGGING|FORCE LOGGING|DEFAULT |DEFAULT 是否压缩数据段是否压缩数据段 存储子句存储子句|online|offline|online|offline|PERMANENT|TEMPORARY|PERMANENT|TEMPORARY| |区间管理子句区间管理子句| |段管理子句段管理子句参数说明如下参数说明如下p DATAFILE DATAFILE子句:用于定义表空间中包含的数据文件。子句:用于定义表空间中包含的数据文件。p MININUM EXTENT MININUM EXTENT子句:用于指定表空间中包含的区间的最小值。子句:用于指定表

19、空间中包含的区间的最小值。p BLOCKSIZE BLOCKSIZE子句:用于指定一个不标准的数据块的大小。子句:用于指定一个不标准的数据块的大小。p logging logging子句:指定表空间上所有用户的日志属性。子句:指定表空间上所有用户的日志属性。p FORCE LOGGING FORCE LOGGING:指定表空间进入强制日志模式,此时系统将记录表空间上对象:指定表空间进入强制日志模式,此时系统将记录表空间上对象的所有变化(不包含临时段的变化)。的所有变化(不包含临时段的变化)。p DEFAULT DEFAULT 存储子句:用于指定缺省的存储信息。存储子句:用于指定缺省的存储信息。

20、p online|offline online|offline参数:指定表空间的在线状态。参数:指定表空间的在线状态。onlineonline指定表空间在创建后立即指定表空间在创建后立即生效;生效;offlineoffline指定表空间在创建后无效。指定表空间在创建后无效。p PERMANENT|TEMPORARY PERMANENT|TEMPORARY参数指定表空间的类型,是永久表空间还是临时表空间。参数指定表空间的类型,是永久表空间还是临时表空间。永久表空间中保存永久对象,临时表空间中保存会话生命周期中存在的临时对象。永久表空间中保存永久对象,临时表空间中保存会话生命周期中存在的临时对象。

21、p 区间管理子句:指定表空间如何管理区间。使用区间管理子句:指定表空间如何管理区间。使用locallocal选项指定本地管理表空间,选项指定本地管理表空间,使用使用autoallocateautoallocate选项表示由表空间自动分配区间,用户不能指定区间的大小。选项表示由表空间自动分配区间,用户不能指定区间的大小。p 段管理子句指定表空间如何管理段,通常使用段管理子句指定表空间如何管理段,通常使用SEGMENT SPACE MANAGEMENT AUTOSEGMENT SPACE MANAGEMENT AUTO子句指定自动管理段。子句指定自动管理段。(1)本地管理表空间。)本地管理表空间。

22、本地管理表空间将表空间中所有的区间信本地管理表空间将表空间中所有的区间信息以位图的方式记录。所有的表空间都可息以位图的方式记录。所有的表空间都可以被本地管理。在以被本地管理。在CREATE TABLESPACECREATE TABLESPACE语句语句中使用中使用EXTENT MANAGEMENT LOCALEXTENT MANAGEMENT LOCAL子句,可子句,可以创建一个本地管理表空间。以创建一个本地管理表空间。提示提示执行执行CREATE TABLESPACECREATE TABLESPACE语句时,输出语句时,输出“ORA-“ORA-27040: 27040: 文件创建错误文件创建

23、错误, , 无法创建文件无法创建文件”。则需要。则需要检查检查DATAFILEDATAFILE子句中文件的路径是否正确,是否子句中文件的路径是否正确,是否包含空格或换行符。如果没有发现异常还是报错,包含空格或换行符。如果没有发现异常还是报错,则可以尝试创建一个自定义文件夹用于保存数据则可以尝试创建一个自定义文件夹用于保存数据文件,例如文件,例如d:oradatad:oradata。【例【例5.5】CREATE TABLESPACE OrclTBS02CREATE TABLESPACE OrclTBS02 DATAFILE DATAFILE D:appAdministratororadataor

24、clOrclTBS02.dbf D:appAdministratororadataorclOrclTBS02.dbf SIZE 30MSIZE 30M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;(2)大文件表空间。)大文件表空间。p大文件表空间由唯一的、非常巨大的数据文件组成。大文件表空间由唯一的、非常巨大的数据文件组成。普通的小文件表空间可以包含多个数据文件,但大文普通的小文件表空间可以包含多个数据文件,但大文件表空间则只能包含一个数据文件。件表空间则只能包含一个数

25、据文件。p在在CREATE TABLESPACECREATE TABLESPACE语句中使用语句中使用BIGFILEBIGFILE关键词可以关键词可以创建大文件表空间。创建大文件表空间。【例【例5.6】 CREATE BIGFILE TABLESPACE bigtbs CREATE BIGFILE TABLESPACE bigtbs DATAFILE D:oradatabigtbs.dbf DATAFILE D:oradatabigtbs.dbf SIZE 10G;SIZE 10G;(3)临时表空间。)临时表空间。在在CREATE TABLESPACECREATE TABLESPACE语句中使

26、用语句中使用TEMPORARYTEMPORARY关键词可以创建临时表空间。关键词可以创建临时表空间。【例【例5.7】CREATE TEMPORARY TABLESPACE tmptbsCREATE TEMPORARY TABLESPACE tmptbs TEMPFILE D:oradatatmptbs.dbf TEMPFILE D:oradatatmptbs.dbf SIZE 20M REUSE SIZE 20M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M; EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;(4

27、)定义表空间中的段管理方式。)定义表空间中的段管理方式。p表空间由段组成,在创建表空间时,可以表空间由段组成,在创建表空间时,可以指定段空间的管理方式。段空间的管理包指定段空间的管理方式。段空间的管理包括两种方式,即自动和手动。在括两种方式,即自动和手动。在CREATE CREATE TABLESPACETABLESPACE语句中使用语句中使用SEGMENT SPACE SEGMENT SPACE MANAGEMENTMANAGEMENT子句可以定义段空间管理方式。子句可以定义段空间管理方式。【例【例5.8】 CREATE TABLESPACE MyTBS01 CREATE TABLESPAC

28、E MyTBS01 DATAFILE D:oradataMyTBS01.dbf DATAFILE D:oradataMyTBS01.dbf SIZE 30MSIZE 30M EXTENT MANAGEMENT LOCAL AUTOALLOCATE EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO; SEGMENT SPACE MANAGEMENT AUTO;【例【例5.9】 CREATE TABLESPACE MyTBS02 CREATE TABLESPACE MyTBS02 DATAFILE D:oradat

29、aMyTBS02.dbf SIZE 30M DATAFILE D:oradataMyTBS02.dbf SIZE 30M EXTENT MANAGEMENT LOCAL AUTOALLOCATE EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT MANUAL; SEGMENT SPACE MANAGEMENT MANUAL;(5)创建撤销表空间。)创建撤销表空间。 当执行当执行ROLLBACKROLLBACK命令时,完成回滚操作。命令时,完成回滚操作。 恢复数据库。恢复数据库。 使用闪回查询分析以前时间点的数据。使用闪回

30、查询分析以前时间点的数据。 使用闪回技术从逻辑破坏中恢复数据。使用闪回技术从逻辑破坏中恢复数据。【例【例5.10】CREATE UNDO TABLESPACE undotbs01CREATE UNDO TABLESPACE undotbs01 DATAFILE DATAFILE E:oradataundotbs02.dbf SIZE 2M E:oradataundotbs02.dbf SIZE 2M REUSE;REUSE;5.1.4 设置和修改表空间属性设置和修改表空间属性p(1 1)重命名表空间。)重命名表空间。p(2 2)向本地管理表空间中增加数据文件。)向本地管理表空间中增加数据文件。

31、(1)重命名表空间。)重命名表空间。p在在ALTER TABLESPACEALTER TABLESPACE语句中使用语句中使用RENAME RENAME TOTO子句重命名表空间,语法如下:子句重命名表空间,语法如下:ALTER TABLESPACE ALTER TABLESPACE 原表空间名原表空间名 RENAME TO RENAME TO 新表空间名新表空间名【例【例5.11】ALTER TABLESPACE OrclTBS02 RENAME TO OrclTBS03;ALTER TABLESPACE OrclTBS02 RENAME TO OrclTBS03;(2)向本地管理表空间中增

32、加数据文件。)向本地管理表空间中增加数据文件。p在在ALTER TABLESPACEALTER TABLESPACE语句中使用语句中使用ADD ADD DATAFILEDATAFILE子句,可以在本地管理表空间中子句,可以在本地管理表空间中增加数据文件,语法如下:增加数据文件,语法如下:ALTER TABLESPACE ALTER TABLESPACE 表空间名表空间名 ADD ADD DATAFILE DATAFILE 增加的数据文件增加的数据文件 SIZE SIZE 数据文件数据文件大小大小; ;【例【例5.12】 向表空间向表空间OrclTBS01OrclTBS01中增加一个数据文件中增

33、加一个数据文件D:appAdministratororadataorcl OrclTBS11.dbfD:appAdministratororadataorcl OrclTBS11.dbf,初始大小为,初始大小为10MB10MB,代码如下:,代码如下: ALTER TABLESPACE OrclTBS01 ALTER TABLESPACE OrclTBS01 ADD DATAFILE ADD DATAFILE D:appAdministratororadataorclOrclTBS11.dbf SIZE 10M;D:appAdministratororadataorclOrclTBS11.dbf

34、 SIZE 10M;(3)修改大文件表空间的属性。)修改大文件表空间的属性。在在ALTER TABLESPACEALTER TABLESPACE语句中使用语句中使用RESIZERESIZE子子句,可以修改大文件表空间的数据文件大句,可以修改大文件表空间的数据文件大小,语法如下:小,语法如下:ALTER TABLESPACE ALTER TABLESPACE 表空间名表空间名 RISIZE RISIZE 表空表空间大小间大小; ;【例【例5.13】 修改大文件表空间修改大文件表空间bigtbsbigtbs的数据文件大小为的数据文件大小为4GB4GB,代码,代码如下:如下:ALTER TABLES

35、PACE bigtbs RESIZE 4G;ALTER TABLESPACE bigtbs RESIZE 4G;(4)向临时表空间中添加临时文件。)向临时表空间中添加临时文件。 在在ALTER TABLESPACEALTER TABLESPACE语句中使用语句中使用ADD ADD TEMPFILETEMPFILE子句,可以在临时表空间中添加子句,可以在临时表空间中添加临时文件,语法如下:临时文件,语法如下:ALTER TABLESPACE ALTER TABLESPACE 临时表空间名临时表空间名 ADD TEMPFILE ADD TEMPFILE 临时文临时文件名件名 SIZE SIZE 临

36、时文件初始大小临时文件初始大小; ;【例【例5.14】 在临时表空间在临时表空间tmptbstmptbs中添加临时文件中添加临时文件D:appAdministratororadataorcltmptbs01.dbfD:appAdministratororadataorcltmptbs01.dbf,文件大小为,文件大小为20MB20MB,代码如下:,代码如下:ALTER TABLESPACE tmptbsALTER TABLESPACE tmptbs ADD TEMPFILE ADD TEMPFILE D:appAdministratororadataorcltmptbs01.dbf SIZE

37、D:appAdministratororadataorcltmptbs01.dbf SIZE 20M;20M;(5)设置表空间的状态。)设置表空间的状态。表空间的状态可以分为脱机和联机两种。表空间的状态可以分为脱机和联机两种。在如下情况下,可以将表空间设置为脱在如下情况下,可以将表空间设置为脱机状态。机状态。p 将数据库的一部分设置为不可访问,将数据库的一部分设置为不可访问,而其他部分可以访问。而其他部分可以访问。p 执行脱机表空间备份。执行脱机表空间备份。p 在升级或维护应用程序时,将应用在升级或维护应用程序时,将应用程序使用的表临时设置为不可访问。程序使用的表临时设置为不可访问。p 重命名

38、或重新分配表空间。重命名或重新分配表空间。可以使用可以使用ALTER TABLESPACEOFFLINE语句设置表空间为脱机状态语句设置表空间为脱机状态ALTER TABLESPACE ALTER TABLESPACE 表空间名表空间名 OFFLINE OFFLINE【例【例5.15】p将表空间将表空间OrclTBS01OrclTBS01设置为脱机状态,代码如下:设置为脱机状态,代码如下:pALTER TABLESPACE OrclTBS01 OFFLINE;ALTER TABLESPACE OrclTBS01 OFFLINE;通过通过DBA_TABLESPACES视图查看表空间的状态视图查看

39、表空间的状态SELECT SELECT TABLESPACE_NAME,CONTENTS,STATUS FROM TABLESPACE_NAME,CONTENTS,STATUS FROM DBA_TABLESPACES;DBA_TABLESPACES;可以使用可以使用ALTER TABLESPACEONLINE语句设置语句设置表空间为联机状态表空间为联机状态 ALTER TABLESPACE ALTER TABLESPACE 表空间名表空间名 ONLINE ONLINE【例【例5.16】 将表空间将表空间OrclTBS01OrclTBS01设置为联机状态的代码如下:设置为联机状态的代码如下:A

40、LTER TABLESPACE OrclTBS01 ONLINE;ALTER TABLESPACE OrclTBS01 ONLINE;(6)设置只读表空间)设置只读表空间 可以使用可以使用ALTER TABLESPACEREAD ONLYALTER TABLESPACEREAD ONLY语句设置只读表语句设置只读表空间,语法如下:空间,语法如下:ALTER TABLESPACE ALTER TABLESPACE 表空间名表空间名 READ ONLY READ ONLY【例【例5.17】p将表空间将表空间OrclTBS01OrclTBS01设置为只读表空间,设置为只读表空间,代码如下:代码如下:

41、ALTER TABLESPACE OrclTBS01 READ ONLY;ALTER TABLESPACE OrclTBS01 READ ONLY;使用使用ALTER TABLESPACEREAD WRITE语句可语句可以将只读表空间设置为可读写状态以将只读表空间设置为可读写状态ALTER TABLESPACE ALTER TABLESPACE 表空间名表空间名 READ READ WRITEWRITE【例【例5.18】 将表空间将表空间OrclTBS01OrclTBS01设置为可读写状态,代码如设置为可读写状态,代码如下:下:ALTER TABLESPACE OrclTBS01 READ W

42、RITE;ALTER TABLESPACE OrclTBS01 READ WRITE;5.1.5 删除表空间删除表空间p可以使用可以使用DROP TABLESPACEDROP TABLESPACE语句删除语句删除表空间,语法如下:表空间,语法如下:DROP TABLESPACE DROP TABLESPACE 表空间名表空间名【例【例5.19】p删除表空间删除表空间OrclTBS03OrclTBS03的语句如下:的语句如下:DROP TABLESPACE OrclTBS03;DROP TABLESPACE OrclTBS03;【例【例5.20】p 删除表空间删除表空间OrclTBS03Orcl

43、TBS03的语句如下:的语句如下:DROP TABLESPACE OrclTBS03;DROP TABLESPACE OrclTBS03;【例【例5.20】p删除表空间删除表空间OrclTBS01OrclTBS01的同时删除其的同时删除其中的段,语句如下:中的段,语句如下:DROP TABLESPACE OrclTBS01 DROP TABLESPACE OrclTBS01 INCLUDING CONTENTS;INCLUDING CONTENTS;【例【例5.21】p 删除表空间删除表空间OrclTBS01OrclTBS01的同时删除其中的的同时删除其中的段和数据文件,语句如下:段和数据文件

44、,语句如下:DROP TABLESPACE OrclTBS01 INCLUDING DROP TABLESPACE OrclTBS01 INCLUDING CONTENTS AND DATAFILES;CONTENTS AND DATAFILES;5.2 回滚段管理回滚段管理p回滚段是回滚段是OracleOracle中非常重要的逻辑存储结构,用于临时中非常重要的逻辑存储结构,用于临时存储数据库还原信息。回滚段中的信息将在恢复数据库存储数据库还原信息。回滚段中的信息将在恢复数据库过程中使用到。过程中使用到。DBADBA应该根据应用程序的设计合理地规应该根据应用程序的设计合理地规划和创建回滚段。有

45、些应用程序的主要功能是查询数据,划和创建回滚段。有些应用程序的主要功能是查询数据,例如,图书馆的在线阅读系统或者档案管理系统,这类例如,图书馆的在线阅读系统或者档案管理系统,这类系统对记录的增加、修改和删除操作较少,大多数用户系统对记录的增加、修改和删除操作较少,大多数用户都只是查询数据库中的数据,因此,不需要设置太多的都只是查询数据库中的数据,因此,不需要设置太多的回滚段;而有些应用系统的并发性很高,多数操作都涉回滚段;而有些应用系统的并发性很高,多数操作都涉及对数据库的添加、修改和删除等操作,例如银行、证及对数据库的添加、修改和删除等操作,例如银行、证券、电信等使用的业务系统,这类系统的后

46、台数据库应券、电信等使用的业务系统,这类系统的后台数据库应该设置比较大的回滚段。该设置比较大的回滚段。5.2.1 查看回滚段信息查看回滚段信息p使用视图使用视图DBA_SEGMENTSDBA_SEGMENTS可以查看当前数据库中可以查看当前数据库中所有段的信息。回滚段的类型所有段的信息。回滚段的类型(SEGMENT_TYPESEGMENT_TYPE)值为)值为ROLLBACKROLLBACK。【例【例5.22】 使用下面的语句查看所有回滚段的信息。使用下面的语句查看所有回滚段的信息。 COL COL 回滚段名回滚段名 FOR A20 FOR A20SELECT SEGMENT_NAME SEL

47、ECT SEGMENT_NAME 回滚段名回滚段名, TABLESPACE_NAME , TABLESPACE_NAME 所在所在表空间表空间, BYTES , BYTES 大小大小FROM DBA_SEGMENTS WHERE SEGMENT_TYPE=ROLLBACK;FROM DBA_SEGMENTS WHERE SEGMENT_TYPE=ROLLBACK;视图视图V$ROLLNAME的主要字段属性的主要字段属性字 段 名数据类型说 明USNNUMBER回滚段编号NAMEVARCHAR2(30)回滚段名称视图视图V$ROLLSTAT包含回滚段的统计信包含回滚段的统计信息息字 段 名数据类

48、型说 明USNNUMBER回滚段编号EXTENTSNUMBER回滚段中包含的区间的数量RSSIZENUMBER回滚段的大小,单位是字节WRITESNUMBER向回滚段中写入的字节数XACTSNUMBER活动事务的数量STATUSNUMBER回滚段的状态,包括ONLINE、PENDING、OFFLINE和FULLCUREXTNUMBER当前区间数量CURBLKNUMBER当前数据块数量【例【例5.23】COL NAME FOR A12COL NAME FOR A12SELECT s.USN, n.NAME, s.EXTENTS, s.RSSIZE, SELECT s.USN, n.NAME, s

49、.EXTENTS, s.RSSIZE, s.STATUS s.STATUS FROM V$ROLLSTAT s, V$ROLLNAME nFROM V$ROLLSTAT s, V$ROLLNAME nWHERE s.USN=n.USN;WHERE s.USN=n.USN;5.2.2 查看和设置回滚段的管理模式查看和设置回滚段的管理模式p【例【例5.245.24】 执行下面的语句查看执行下面的语句查看UNDO_MANAGEMENTUNDO_MANAGEMENT参数的值。参数的值。SHOW PARAMETER UNDO_MANAGEMENTSHOW PARAMETER UNDO_MANAGEMEN

50、T【例【例5.25】 将回滚段管理方式设置为手动管将回滚段管理方式设置为手动管理的语句如下理的语句如下ALTER SYSTEM SET UNDO_MANAGEMENT=MANUALALTER SYSTEM SET UNDO_MANAGEMENT=MANUALSCOPE=SPFILE;SCOPE=SPFILE;SCOPE=SPFILESCOPE=SPFILE表示对初始化参数的修改应用于表示对初始化参数的修改应用于SPFILESPFILE,需,需要重新启动数据库实例才能生效。要重新启动数据库实例才能生效。5.2.3 创建回滚段创建回滚段CREATE PUBLIC ROLLBACK SEGMENT

51、CREATE PUBLIC ROLLBACK SEGMENT 回滚段名称回滚段名称 TABLESPACETABLESPACE所属表空间名称所属表空间名称STORAGE STORAGE 存储选项存储选项【例【例5.26】CREATE ROLLBACK SEGMENT OrclRs01CREATE ROLLBACK SEGMENT OrclRs01TABLESPACE UndoTBS1TABLESPACE UndoTBS1STORAGE (INITIAL 5MSTORAGE (INITIAL 5M NEXT 2M NEXT 2M MAXEXTENTS UNLIMITED); MAXEXTENTS

52、UNLIMITED);提示提示尽管可以手动创建和管理回滚段,但在通常情况下,建议尽管可以手动创建和管理回滚段,但在通常情况下,建议由由OracleOracle自动对回滚段进行管理。自动对回滚段进行管理。5.2.4 修改回滚段的属性修改回滚段的属性p当回滚段创建完成后,在使用过程中有时当回滚段创建完成后,在使用过程中有时会根据需要修改回滚段的属性。将初始化会根据需要修改回滚段的属性。将初始化参数参数UNDO_MANAGEMENTUNDO_MANAGEMENT设置为设置为MANUALMANUAL后,后,才能由用户修改回滚段的属性。才能由用户修改回滚段的属性。1修改回滚段的在线状态修改回滚段的在线状

53、态p使用使用ALTER ROLLBACK SEGMENTALTER ROLLBACK SEGMENT语句可以修语句可以修改回滚段的状态,语法如下:改回滚段的状态,语法如下:ALTER ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT 回滚段名称回滚段名称 回回滚段状态滚段状态p回滚段状态可以是回滚段状态可以是ONLINEONLINE(联机)和(联机)和OFFLINEOFFLINE(脱机)两种,新建回滚段的状(脱机)两种,新建回滚段的状态为态为ONLINEONLINE。【例【例5.27】将回滚段将回滚段OrclRs01OrclRs01设置为联机状态,语句如下。设置为

54、联机状态,语句如下。ALTER ROLLBACK SEGMENT OrclRs01 ONLINE;ALTER ROLLBACK SEGMENT OrclRs01 ONLINE;执行完成后,使用下面的语句查看当前回滚段的执行完成后,使用下面的语句查看当前回滚段的状态。状态。SELECT NAME, STATUS FROM V$ROLLNAME, SELECT NAME, STATUS FROM V$ROLLNAME, V$ROLLSTATV$ROLLSTATWHERE V$ROLLSTAT.USN=V$ROLLNAME.USN;WHERE V$ROLLSTAT.USN=V$ROLLNAME.US

55、N;2手动收缩回滚段手动收缩回滚段p如果在创建回滚段时指定的初始大小(如果在创建回滚段时指定的初始大小(INITIALINITIAL参数)参数)过大,可以手动收缩回滚段的大小。语法如下:过大,可以手动收缩回滚段的大小。语法如下:ALTER ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT 回滚段名称回滚段名称 SHRINK TO SHRINK TO 回滚段回滚段的初始大小的初始大小p【例【例5.285.28】 将回滚段将回滚段OrclRs01OrclRs01的大小收缩为的大小收缩为1MB1MB,语,语句如下。句如下。ALTER ROLLBACK SEGMENT O

56、rclRs01 SHRINK TO 1M;ALTER ROLLBACK SEGMENT OrclRs01 SHRINK TO 1M;5.2.5 删除回滚段删除回滚段p如果不再需要某些回滚段,可以使用如果不再需要某些回滚段,可以使用DROP ROLLBACK DROP ROLLBACK SEGMENTSEGMENT语句删除它。在删除回滚段之前,首先需要执语句删除它。在删除回滚段之前,首先需要执行下面的语句将回滚段设置为脱机状态。行下面的语句将回滚段设置为脱机状态。ALTER ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT 回滚段名回滚段名 OFFLINE; OFF

57、LINE;p【例【例5.295.29】 执行下面的语句可以删除回滚段执行下面的语句可以删除回滚段OrclRs01OrclRs01。ALTER ROLLBACK SEGMENT OrclRs01 OFFLINE;ALTER ROLLBACK SEGMENT OrclRs01 OFFLINE;DROP ROLLBACK SEGMENT OrclRs01;DROP ROLLBACK SEGMENT OrclRs01;5.3 数据库文件管理数据库文件管理p 5.3.1 SCN5.3.1 SCNp 5.3.2 5.3.2 控制文件管理控制文件管理p 5.3.3 5.3.3 数据文件管理数据文件管理p 5

58、.3.4 5.3.4 重做日志管理重做日志管理p 5.3.5 5.3.5 归档日志管理归档日志管理5.3.1 SCN SCN SCN是是System Change NumberSystem Change Number的缩写,它的缩写,它是是OracleOracle数据库的重要机制,可以用来记数据库的重要机制,可以用来记录和标识执行数据库操作的先后顺序。录和标识执行数据库操作的先后顺序。SCNSCN保存在保存在OracleOracle数据库文件中,在创建控制数据库文件中,在创建控制文件时可以指定记录文件时可以指定记录SCNSCN的规则的规则修改数据的简单过程如下修改数据的简单过程如下 (1 1)

59、开始事务。)开始事务。(2 2)在缓冲区中查看要修改的数据,如果没有找到,则从数据文件中找到该)在缓冲区中查看要修改的数据,如果没有找到,则从数据文件中找到该数据,并将其加载到缓冲区中。数据,并将其加载到缓冲区中。(3 3)修改缓冲区中的数据块,并将修改的结果保存到日志缓冲区中。因为此)修改缓冲区中的数据块,并将修改的结果保存到日志缓冲区中。因为此时缓冲区中的数据与数据文件中的数据不一致,因此将这种数据叫作时缓冲区中的数据与数据文件中的数据不一致,因此将这种数据叫作“脏数脏数据据”。(4 4)当用户提交数据时,)当用户提交数据时,LGWRLGWR进程会将缓冲区中的数据和新生成的进程会将缓冲区中

60、的数据和新生成的SCNSCN写入写入到重做日志文件中。但为了减少到重做日志文件中。但为了减少I/OI/O操作,操作,OracleOracle不会立即将脏数据写入到数不会立即将脏数据写入到数据文件中。据文件中。(5 5)如果发生检查点()如果发生检查点(CheckpointCheckpoint,检查点是一个事件,当此事件发生时,检查点是一个事件,当此事件发生时,DBWnDBWn进程将把进程将把SGASGA中所有改变的数据库缓冲区写入到数据文件中),则中所有改变的数据库缓冲区写入到数据文件中),则CKPTCKPT进进程唤醒程唤醒DBWnDBWn进程,更新数据库所有的数据文件和控制文件,并标记最新的

61、检进程,更新数据库所有的数据文件和控制文件,并标记最新的检查点,以便下一次更新从最新的检查点开始。查点,以便下一次更新从最新的检查点开始。通常在执行通常在执行SHUTDOWN NORMALSHUTDOWN NORMAL和和SHUTDOWN IMMEDIATESHUTDOWN IMMEDIATE语句时,会触发语句时,会触发CheckpointCheckpoint事件。当发生事件。当发生CheckpointCheckpoint事件时,事件时,OracleOracle数据库会将数据库会将SCNSCN写入到下写入到下面面4 4个地方。个地方。1系统检查点系统检查点SCN(System Checkpio

62、nt SCN)当一个当一个CheckpointCheckpoint动作完成后,动作完成后,OracleOracle会将系统检查点的会将系统检查点的SCNSCN保存到控制文件中。可以从系统视图保存到控制文件中。可以从系统视图V$DATABASEV$DATABASE中查中查看到系统检查点看到系统检查点SCNSCN的值,语句如下:的值,语句如下:SELECT CHECKPOINT_CHANGE# FROM V$DATABASE; SELECT CHECKPOINT_CHANGE# FROM V$DATABASE; 2数据文件检查点数据文件检查点SCN(Datafile Checkpoint SCN)

63、p当一个当一个CheckpointCheckpoint动作完成后,动作完成后,OracleOracle会会将每个数据文件的将每个数据文件的SCNSCN保存到控制文件中。保存到控制文件中。可以从系统视图可以从系统视图V$DATAFILEV$DATAFILE中查看到数据中查看到数据文件检查点文件检查点SCNSCN的值,语句如下:的值,语句如下:SELECT NAME, CHECKPOINT_CHANGE# FROM SELECT NAME, CHECKPOINT_CHANGE# FROM V$DATAFILE;V$DATAFILE;3启动启动SCN(Start SCN)OracleOracle把每

64、个数据文件的检查点把每个数据文件的检查点SCNSCN存储在每个数据文件存储在每个数据文件的文件头中,称为启动的文件头中,称为启动SCNSCN。因为在数据库实例启动时,。因为在数据库实例启动时,OracleOracle会检查每个数据文件的启动会检查每个数据文件的启动SCNSCN与控制文件中记录与控制文件中记录的数据文件检查点的数据文件检查点SCNSCN是否一致,如果不一致,则从重做是否一致,如果不一致,则从重做日志文件中找到丢失的日志文件中找到丢失的SCNSCN,重新写入数据文件中进行恢,重新写入数据文件中进行恢复。复。可以从系统视图可以从系统视图V$DATAFILE_HEADERV$DATAF

65、ILE_HEADER中查看到启动中查看到启动SCNSCN的值,的值,语句如下:语句如下:SELECT NAME, CHECKPOINT_CHANGE# FROM SELECT NAME, CHECKPOINT_CHANGE# FROM V$DATAFILE_HEADER;V$DATAFILE_HEADER;4结束结束SCN(Stop SCN) 可以从系统视图可以从系统视图V$DATAFILEV$DATAFILE中查看到结束中查看到结束SCNSCN的值,代码如下:的值,代码如下:SELECT NAME, LAST_CHANGE# FROM V$DATAFILE;SELECT NAME, LAST

66、_CHANGE# FROM V$DATAFILE;在需要时,系统会根据时间戳(在需要时,系统会根据时间戳(TIMESTAMPTIMESTAMP)自动生成最新的)自动生成最新的SCNSCN。可以从。可以从dualdual表中查表中查看到当前系统生成的最新看到当前系统生成的最新SCNSCN,代码如下:,代码如下:SELECT dbms_flashback.get_system_change_number FROM dual;SELECT dbms_flashback.get_system_change_number FROM dual;修改修改echoController的的Index()方法方法

67、 / GET: echo / GET: echo public ActionResult Index() public ActionResult Index() if (Request.RequestType.ToUpper() = POST)/ if (Request.RequestType.ToUpper() = POST)/如如果是果是POSTPOST的数据,则记录内容的数据,则记录内容 string message= PostInput(); string message= PostInput(); wxModelMessage mm = new wxModelMessage(); w

68、xModelMessage mm = new wxModelMessage(); LogService.Write( LogService.Write(收到信息:收到信息: + message); + message); mm.ParseXML(message); mm.ParseXML(message); 5.3.2 控制文件管理控制文件管理每个每个OracleOracle数据库都有控制文件,控制文件是一个小的二数据库都有控制文件,控制文件是一个小的二进制文件,用来记录数据库的物理结构。控制文件可以包进制文件,用来记录数据库的物理结构。控制文件可以包含如下信息。含如下信息。p 数据库名称。数

69、据库名称。p 相关数据文件和重做日志文件的名称和位置。相关数据文件和重做日志文件的名称和位置。p 数据库创建的时间戳。数据库创建的时间戳。p 当前的日志序列号。当前的日志序列号。p 检查点信息。检查点信息。1查看控制文件的信息查看控制文件的信息与控制文件相关的视图与控制文件相关的视图视 图 名说 明V$CONTROLFILE显示控制文件的名称列表V$CONTROLFILE_RECORD_SECTION显示控制文件的记录信息V$PARAMETER显示初始化参数CONTROL_FILES中定义的控制文件名称【例【例5.30】 从视图从视图V$CONTROLFILE中查询控制文件的名称中查询控制文件

70、的名称列表列表SELECT NAME FROM V$CONTROLFILE;SELECT NAME FROM V$CONTROLFILE;【例【例5.31】 COL TYPE FORMAT a25COL TYPE FORMAT a25SELECT TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED SELECT TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED FROM V$CONTROLFILE_RECORD_SECTION;FROM V$CONTROLFILE_RECORD_SECTION;2创建控制文件创建控制文件

71、p (1 1)创建初始控制文件。)创建初始控制文件。(2)创建控制文件副本。)创建控制文件副本。 创建控制文件副本的步骤如下。创建控制文件副本的步骤如下。p 关闭数据库。关闭数据库。 p 将当前的控制文件复制到其他目录下。将当前的控制文件复制到其他目录下。p 修改初始化参数修改初始化参数CONTROL_FILESCONTROL_FILES,增加新的控制文件,增加新的控制文件副本或者修改原有的控制文件。副本或者修改原有的控制文件。p 重新启动数据库。重新启动数据库。(3)创建新的控制文件。)创建新的控制文件。除了在创建数据库时被默认创建控制文件除了在创建数据库时被默认创建控制文件外,用户还可以手

72、动创建控制文件。通常外,用户还可以手动创建控制文件。通常在以下情况下需要创建新的控制文件。在以下情况下需要创建新的控制文件。p 数据库的控制文件被永久破坏,而且没数据库的控制文件被永久破坏,而且没有对控制文件进行备份。有对控制文件进行备份。p 需要修改数据库名。需要修改数据库名。使用使用CREATE CONTROLFILE语句创建语句创建控制文件控制文件CREATE CONTROLFILE REUSECREATE CONTROLFILE REUSE SET DATABASE SET DATABASE 数据库名数据库名 LOGFILE GROUP LOGFILE GROUP 整数整数 ( (日志

73、文件定义日志文件定义) , ) , RESETLOGS | NORESETLOGS RESETLOGS | NORESETLOGS DATAFILE DATAFILE 数据文件定义数据文件定义 , , MAXLOGFILES MAXLOGFILES 整数整数 MAXLOGMEMBERS MAXLOGMEMBERS 整数整数 MAXDATAFILES MAXDATAFILES 整数整数 MAXINSTANCES MAXINSTANCES 整数整数 ARCHIVELOG | NOARCHIVELOG ARCHIVELOG | NOARCHIVELOG参数说明参数说明pREUSEREUSE:指定由初

74、始化参数:指定由初始化参数CONTROL_FILESCONTROL_FILES定义的、已经存在的控定义的、已经存在的控制文件可以重用。如果使用此参数,制文件可以重用。如果使用此参数,OracleOracle将忽略并自动覆盖已将忽略并自动覆盖已经存在的控制文件;如果不使用此参数,则遇到已经存在的控制经存在的控制文件;如果不使用此参数,则遇到已经存在的控制文件时,文件时,OracleOracle将返回错误。将返回错误。p SET DATABASE SET DATABASE:指定数据库名称,该数据库名称必须已经存在。:指定数据库名称,该数据库名称必须已经存在。p LOGFILE LOGFILE:指定

75、数据库的重做日志文件(:指定数据库的重做日志文件(redo log filesredo log files)。必)。必须列出所有重做日志文件组的所有成员,而且文件必须存在。须列出所有重做日志文件组的所有成员,而且文件必须存在。p RESETLOGS RESETLOGS和和NORESETLOGSNORESETLOGS是两种重建控制文件的方式,通常在是两种重建控制文件的方式,通常在恢复数据库时起作用。恢复数据库时起作用。NORESETLOGSNORESETLOGS模式指定在恢复数据库时不更模式指定在恢复数据库时不更新重做日志信息,新数据库的新重做日志信息,新数据库的SCNSCN号与原来的号与原来的

76、SCNSCN号是连续的,通号是连续的,通常用于完全恢复;常用于完全恢复;RESETLOGSRESETLOGS将重置重做日志信息,相当于重新建将重置重做日志信息,相当于重新建立一个新的数据库,通常用于不完全恢复。如果需要重命名数据立一个新的数据库,通常用于不完全恢复。如果需要重命名数据库,则使用库,则使用RESETLOGSRESETLOGS子句,否则使用子句,否则使用NORESETLOGSNORESETLOGS子句。子句。p DATAFILE DATAFILE:指定数据库中的数据文件列表。:指定数据库中的数据文件列表。p MAXLOGFILES MAXLOGFILES:指定数据库可以创建的重做日

77、志文件组的最大数:指定数据库可以创建的重做日志文件组的最大数量。数据库将根据该值来判断需要分配给控制文件多少空间来保量。数据库将根据该值来判断需要分配给控制文件多少空间来保存重做日志文件的名称信息。当前数据库实例可以访问的重做日存重做日志文件的名称信息。当前数据库实例可以访问的重做日志文件组的数量还取决于初始化参数志文件组的数量还取决于初始化参数LOG_FILESLOG_FILES。p MAXLOGMEMBERS MAXLOGMEMBERS:指定一个重做日志文件组的成员或副本的最大:指定一个重做日志文件组的成员或副本的最大数量。数量。p MAXDATAFILES MAXDATAFILES:指定

78、数据库中最多可以创建的数据文件数量。:指定数据库中最多可以创建的数据文件数量。当前数据库实例可以访问的数据文件的数量还取决于初始化参数当前数据库实例可以访问的数据文件的数量还取决于初始化参数DB_FILESDB_FILES。p MAXINSTANCES MAXINSTANCES:指定数据库可以连续加载的最大数据库实例数。:指定数据库可以连续加载的最大数据库实例数。p ARCHIVELOG ARCHIVELOG:指定在重用重做日志文件时,对其内容进行归档。:指定在重用重做日志文件时,对其内容进行归档。p NOARCHIVELOG NOARCHIVELOG:指定在重做日志文件时,不对其内容进行归档

79、。:指定在重做日志文件时,不对其内容进行归档。这是系统的默认值。这是系统的默认值。介绍创建介绍创建Oracle数据库控制文件的过程数据库控制文件的过程 了解当前数据库日志文件和数据文件的情况。了解当前数据库日志文件和数据文件的情况。 根据日志文件和数据文件列表设计根据日志文件和数据文件列表设计CREATE CREATE CONTROLFILECONTROLFILE语句。语句。 关闭数据库实例。关闭数据库实例。 备份原来的文件。备份原来的文件。 启动数据库实例,但不加载数据库。启动数据库实例,但不加载数据库。 创建控制文件。创建控制文件。 备份控制文件。备份控制文件。 修改初始化参数。修改初始化

80、参数。 恢复数据库。恢复数据库。 了解当前数据库日志文件和数据文件了解当前数据库日志文件和数据文件的情况。的情况。p执行下面的语句可以查看当前数据库中日执行下面的语句可以查看当前数据库中日志文件的列表。志文件的列表。SELECT MEMBER FROM V$LOGFILE;SELECT MEMBER FROM V$LOGFILE;查看当前数据库中数据文件的列表查看当前数据库中数据文件的列表SELECT NAME FROM V$DATAFILE;SELECT NAME FROM V$DATAFILE; 根据日志文件和数据文件列表设计根据日志文件和数据文件列表设计CREATE CONTROLFIL

81、E语句。语句。CREATE CONTROLFILE CREATE CONTROLFILE DATABASE ORCLDATABASE ORCLLOGFILE GROUP 1 ( F:APPORCLORADATAORCLREDO01.LOG),LOGFILE GROUP 1 ( F:APPORCLORADATAORCLREDO01.LOG), GROUP 2 ( F:APPORCLORADATAORCLREDO02.LOG), GROUP 2 ( F:APPORCLORADATAORCLREDO02.LOG), GROUP 3 ( F:APPORCLORADATAORCLREDO03.LOG)

82、GROUP 3 ( F:APPORCLORADATAORCLREDO03.LOG)NORESETLOGSNORESETLOGSDATAFILE F:APPORCLORADATAORCLSYSTEM01.DBF,DATAFILE F:APPORCLORADATAORCLSYSTEM01.DBF, F:APPORCLORADATAORCLSYSAUX01.DBF, F:APPORCLORADATAORCLSYSAUX01.DBF, F:APPORCLORADATAORCLUNDOTBS01.DBF, F:APPORCLORADATAORCLUNDOTBS01.DBF, F:APPORCLORADA

83、TAORCLUSERS01.DBF F:APPORCLORADATAORCLUSERS01.DBFMAXLOGFILES 50MAXLOGFILES 50MAXLOGMEMBERS 3MAXLOGMEMBERS 3MAXLOGHISTORY 400MAXLOGHISTORY 400MAXDATAFILES 200MAXDATAFILES 200MAXINSTANCES 6MAXINSTANCES 6ARCHIVELOG;ARCHIVELOG; 关闭数据库实例。关闭数据库实例。 如果当前数据库实例处于启动状态,则控制文件正在被如果当前数据库实例处于启动状态,则控制文件正在被使用,因此无法创建新的

84、控制文件。建议使用使用,因此无法创建新的控制文件。建议使用SHUTDOWN SHUTDOWN NORMALNORMAL语句关闭数据库。如果无法正常关闭,可以使用语句关闭数据库。如果无法正常关闭,可以使用SHUTDOWN ABORTSHUTDOWN ABORT或者或者SHUTDOWN IMMEDIATESHUTDOWN IMMEDIATE语句来关闭数据语句来关闭数据库。库。 备份原来的文件。备份原来的文件。 为了防止在创建控制文件时破坏原有的数据库文为了防止在创建控制文件时破坏原有的数据库文件,建议将所有的数据文件和重做日志文件备份件,建议将所有的数据文件和重做日志文件备份到其他存储介质上。到其

85、他存储介质上。将原有的控制文件备份到其他位置,然后将其删将原有的控制文件备份到其他位置,然后将其删除。除。 启动数据库实例,但不加载数据库。启动数据库实例,但不加载数据库。使用使用STARTUP NOMOUNTSTARTUP NOMOUNT语句启动数据库实例,语句启动数据库实例,因为要创建控制文件,所以不能加载数据因为要创建控制文件,所以不能加载数据库(否则刚才就不需要关闭数据库了)。库(否则刚才就不需要关闭数据库了)。 创建控制文件。创建控制文件。执行前面设计的执行前面设计的CREATE CONTROLFILECREATE CONTROLFILE语句,语句,创建控制文件。创建控制文件。 备份

86、控制文件。备份控制文件。p为了保证新的数据库文件不被破坏,建议为了保证新的数据库文件不被破坏,建议将新的控制文件备份到其他不在线的存储将新的控制文件备份到其他不在线的存储介质中,如介质中,如U U盘、移动硬盘或磁带等。盘、移动硬盘或磁带等。 修改初始化参数。修改初始化参数。 如果新建的控制文件与如果新建的控制文件与CONTROL_FILECONTROL_FILE参数中定义参数中定义的控制文件不同,则根据实际情况修改的控制文件不同,则根据实际情况修改CONTROL_FILECONTROL_FILE参数;如果修改了数据库名称,则参数;如果修改了数据库名称,则还需要修改还需要修改DB_NAMEDB_

87、NAME参数。参数。 恢复数据库。恢复数据库。 如果需要的话,则恢复数据库,具体操作方法如果需要的话,则恢复数据库,具体操作方法将在第将在第8 8章中介绍。章中介绍。3恢复控制文件恢复控制文件 在恢复控制文件时,可以按照以下两种情况处理。在恢复控制文件时,可以按照以下两种情况处理。(1 1)控制文件被破坏,但存储控制文件的目录仍然是可)控制文件被破坏,但存储控制文件的目录仍然是可访问的。访问的。首先使用首先使用SHUTDOWNSHUTDOWN命令关闭数据库实例,然后使用操作系命令关闭数据库实例,然后使用操作系统命令将控制文件副本复制到控制文件目录下。最后,使统命令将控制文件副本复制到控制文件目

88、录下。最后,使用用STARTUPSTARTUP命令打开数据库实例。命令打开数据库实例。(2 2)存储介质被破坏,导致存储控制文件的目录无法访)存储介质被破坏,导致存储控制文件的目录无法访问。问。4删除控制文件删除控制文件(1 1)关闭数据库。)关闭数据库。(2 2)编辑)编辑CONTROL_FILESCONTROL_FILES参数的值,删除参数的值,删除指定的控制文件信息。指定的控制文件信息。(3 3)将要删除的控制文件备份到其他介质,)将要删除的控制文件备份到其他介质,然后使用操作系统命令将该文件删除。然后使用操作系统命令将该文件删除。(4 4)重新启动数据库。)重新启动数据库。5.3.3

89、数据文件管理数据文件管理1 1查看数据文件信息查看数据文件信息2 2创建数据文件创建数据文件3 3修改数据文件的大小修改数据文件的大小4 4修改数据文件的在线状态修改数据文件的在线状态1查看数据文件信息查看数据文件信息 视图视图V$DATAFILE的常用字段属性的常用字段属性字 段 名数 据 类 型说 明FILE#NUMBER 文件标识符CREATE_TIMEDATE创建数据文件的时间戳TS#NUMBER所属表空间的编号STATUSVARCHAR2(7)文件的状态,包括OFFLINE、ONLINE、SYSTEM、RECOVER和SYSOFF(表示SYSTEM表空间中的脱机文件)ENABLEDV

90、ARCHAR2(10)表示从SQL语句中如何访问文件。DISABLED表示不允许SQL访问,READ ONLY表示不允许更新访问,READ WRITE表示允许完全访问,UNKNOWN表示文件被破坏BYTESNUMBER当前数据文件的大小,单位为字节。如果为0,表示文件不可访问BLOCKSNUMBER当前数据文件的大小,单位为数据块。如果为0,表示文件不可访问BLOCK_SIZENUMBER数据文件中数据块的大小NAMEVARCHAR2(513)数据文件的名称【例【例5.32】SELECT NAME, STATUS, BYTES FROM V$DATAFILE;SELECT NAME, STAT

91、US, BYTES FROM V$DATAFILE;2创建数据文件创建数据文件 CREATE TABLESPACE CREATE TABLESPACE 表空间名表空间名DATAFILE DATAFILE 数据文件名数据文件名 SIZE SIZE 数据文件大小数据文件大小; ;【例【例5.33】 创建表空间创建表空间MyTbs,同时创建一,同时创建一个个50MB的数据文件的数据文件 CREATE TABLESPACE MyTbsCREATE TABLESPACE MyTbsDATAFILE DATAFILE D:APPORCLORADATAORCLMyDataFile0D:APPORCLORAD

92、ATAORCLMyDataFile01.DBF SIZE 10M;1.DBF SIZE 10M;【例【例5.34】 创建表空间创建表空间TempTbs,同时创建,同时创建一个一个10MB的临时文件的临时文件CREATE TEMPORARY TABLESPACE TempTbsCREATE TEMPORARY TABLESPACE TempTbsTEMPFILE TEMPFILE D:APPORCLLORADATAORCLMyTempFile01.DBF SIZE D:APPORCLLORADATAORCLMyTempFile01.DBF SIZE 10M10MEXTENT MANAGEMENT

93、 LOCAL;EXTENT MANAGEMENT LOCAL;【例【例5.35】ALTER TABLESPACE MyTbsALTER TABLESPACE MyTbsADD DATAFILE ADD DATAFILE F:APPORCLORADATAORCLMyDataFile02.DBF F:APPORCLORADATAORCLMyDataFile02.DBF SIZE 50M;SIZE 50M;3修改数据文件的大小修改数据文件的大小ALTER DATABASE DATAFILE ALTER DATABASE DATAFILE 数据文件名数据文件名 RESIZE RESIZE 数据文件大小

94、数据文件大小; ;【例【例5.36】将数据文件将数据文件D:APPADMINISTRATORORADATAORCLUSERS01.DD:APPADMINISTRATORORADATAORCLUSERS01.DBFBF的大小修改为的大小修改为100MB100MB,代码如下:,代码如下:ALTER DATABASE DATAFILE ALTER DATABASE DATAFILE D:APPORCLORADATAORCLUSERS01.DBF D:APPORCLORADATAORCLUSERS01.DBF RESIZE 100M;RESIZE 100M;执行下面的语句查看当前数据库中数据文件的大小

95、执行下面的语句查看当前数据库中数据文件的大小COL NAME FORMAT A40COL NAME FORMAT A40SELECT NAME, BYTES FROM V$DATAFILE;SELECT NAME, BYTES FROM V$DATAFILE;4修改数据文件的在线状态修改数据文件的在线状态 数据文件有两种在线状态,即联机数据文件有两种在线状态,即联机(ONLINEONLINE)和脱机()和脱机(OFFLINEOFFLINE)。使用)。使用ALTER DATABASEALTER DATABASE语句可以修改数据文件的语句可以修改数据文件的在线状态,语法如下:在线状态,语法如下:A

96、LTER DATABASE DATAFILE ALTER DATABASE DATAFILE 数据文件名数据文件名 ONLINE | OFFLINE;ONLINE | OFFLINE;【例【例5.37】将数据文件将数据文件D:APPORCLORADATAORCLUSERS01.DBFD:APPORCLORADATAORCLUSERS01.DBF的在线状态修改为脱机,代码如下:的在线状态修改为脱机,代码如下:ALTER DATABASE DATAFILE ALTER DATABASE DATAFILE D:APPORCLORADATAORCLUSERS01.DBFD:APPORCLORADATA

97、ORCLUSERS01.DBF OFFLINE; OFFLINE;【例【例5.38】将表空间将表空间MYTBSMYTBS中所有数据文件设置为联机状态,中所有数据文件设置为联机状态,代码如下:代码如下:ALTER TABLESPACE MYTBS DATAFILE ONLINE;ALTER TABLESPACE MYTBS DATAFILE ONLINE;5删除数据文件删除数据文件 在删除表空间时,可以指定删除表空间中的数据在删除表空间时,可以指定删除表空间中的数据文件。文件。【例【例5.395.39】 删除表空间删除表空间MyTbsMyTbs,同时删除其中数,同时删除其中数据文件的代码如下:据

98、文件的代码如下:DROP TABLESPACE MyTbs INCLUDING CONTENTS DROP TABLESPACE MyTbs INCLUDING CONTENTS CASCADE CONSTRAINTS;CASCADE CONSTRAINTS;在第在第5章的主页中添加一个章的主页中添加一个“按按openid群群发消息发消息”超链接超链接删除数据文件删除数据文件D:APPADMINISTRATORORADATAORCLMyDataFilD:APPADMINISTRATORORADATAORCLMyDataFile01.DBFe01.DBF的语句如下:的语句如下:ALTER DAT

99、ABASE DATAFILE ALTER DATABASE DATAFILE D:APPORCLORADATAORCLMyDataFile01.DBF D:APPORCLORADATAORCLMyDataFile01.DBF OFFLINE DROP;OFFLINE DROP;5.3.4 重做日志管理重做日志管理 重做日志(重做日志(redo logredo log)用于保存数据)用于保存数据库的所有变化信息。库的所有变化信息。OracleOracle数据库的数据库的每个实例都有一个相关的重做日志,每个实例都有一个相关的重做日志,从而保护数据库的安全。从而保护数据库的安全。1重做日志的基本概念

100、重做日志的基本概念重做日志文件由重做记录组成,而每个重做记录重做日志文件由重做记录组成,而每个重做记录由一组变化元素组成,变化元素中记录了数据库由一组变化元素组成,变化元素中记录了数据库中每个单独的数据块的变化情况。例如,如果用中每个单独的数据块的变化情况。例如,如果用户修改了表中的一条记录,则系统会自动生成一户修改了表中的一条记录,则系统会自动生成一条重做记录。条重做记录。LGWR写入重做日志的过程写入重做日志的过程重做日志的多元性重做日志的多元性LGWR对重做日志文件无效的响应对重做日志文件无效的响应情 况LGWR的动作LGWR可以写入组中的至少一个成员文件正常完成写操作。LGWR写入组中

101、可访问的成员文件,忽略不可访问的成员文件在日志切换时,LGWR无法访问下一个组,因为该组需要被归档临时停止数据库操作,等待该组可以被访问或该组已经被归档在日志切换时,由于介质被破坏,下一组的所有成员都无法被访问Oracle数据库返回错误,数据库实例被关闭。此时,需要从有效的重做日志文件中执行介质恢复操作。数据库恢复操作请参照第8章理解。如果数据库的检查点已经超出了丢失的重做日志,则不需要进行介质恢复,因为重做日志中记录的数据写入到数据文件中。现在只需要删除无效的重做日志组。如果数据库还没有对失效的日志进行归档操作,则执行ALTER DATABASE CLEAR UNARCHIVED LOG禁止

102、归档操作,这样就可以删除日志文件了当LGWR写入时,所有组中的成员文件都突然无法访问Oracle数据库返回错误,数据库实例被关闭。此时,需要从有效的重做日志文件中执行介质恢复操作。如果介质没有被破坏,只是不小心掉线了,则不需要执行介质恢复,只要将介质恢复在线,然后让数据库执行自动实例恢复即可可以通过如下参数来设置重做日志的数量可以通过如下参数来设置重做日志的数量p MAXLOGFILES MAXLOGFILES:在:在CREATE DATABASECREATE DATABASE语句语句中使用中使用MAXLOGFILESMAXLOGFILES参数可以指定每个数参数可以指定每个数据库中重做日志文件

103、组的最大数量。据库中重做日志文件组的最大数量。p MAXLOGMEMBERS MAXLOGMEMBERS:在:在CREATE DATABASECREATE DATABASE语语句中使用句中使用MAXLOGMEMBERSMAXLOGMEMBERS参数可以指定每参数可以指定每个日志文件组中包含的日志文件的最大数个日志文件组中包含的日志文件的最大数量。量。2查看重做日志信息查看重做日志信息【例【例5.41】查询视图查询视图V$LOGV$LOG,显示控制文件中重做日志组的信息,语,显示控制文件中重做日志组的信息,语句如下:句如下:SELECT GROUP#, ARCHIVED, STATUS FROM

104、 V$LOG;SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;【例【例5.42】 查询视图查询视图V$LOGFILEV$LOGFILE,显示重做日志的成员文件,显示重做日志的成员文件SELECT GROUP#,MEMBER FROM V$LOGFILE;SELECT GROUP#,MEMBER FROM V$LOGFILE;通过查询视图通过查询视图V$LOG显示重做日志组信息显示重做日志组信息通过查询视图通过查询视图V$LOG显示重做日志文件信息显示重做日志文件信息3创建重做日志组和成员创建重做日志组和成员p模板消息的例子模板消息的例子【例【例5.43】p

105、 添加重做日志文件添加重做日志文件log1c.rdolog1c.rdo和和log2c.rdolog2c.rdo,初始大小为,初始大小为5MB5MB,代码如下:,代码如下:ALTER DATABASE ADD LOGFILE ALTER DATABASE ADD LOGFILE (log1c.rdo, log2c.rdo) SIZE (log1c.rdo, log2c.rdo) SIZE 5000k;5000k;【例【例5.44】p创建重做日志组创建重做日志组1010,其中包含重做日志文,其中包含重做日志文件件log1c.rdolog1c.rdo和和log2c.rdolog2c.rdo,语句如下

106、:,语句如下:ALTER DATABASEALTER DATABASE ADD LOGFILE GROUP 10 (log1a.rdo, ADD LOGFILE GROUP 10 (log1a.rdo, log2a.rdo) SIZE 5000k;log2a.rdo) SIZE 5000k;(2)创建重做日志成员)创建重做日志成员【例【例5.45】p将重做日志文件将重做日志文件log3a.rdolog3a.rdo添加到编号为添加到编号为1010的重做日志组中,语句如下:的重做日志组中,语句如下:ALTER DATABASE ADD LOGFILE MEMBER ALTER DATABASE A

107、DD LOGFILE MEMBER log3a.rdo TO GROUP 10;log3a.rdo TO GROUP 10;4重命名重做日志成员重命名重做日志成员如果要重命名重做日志成员,用户必须拥如果要重命名重做日志成员,用户必须拥有如下权限。有如下权限。p ALTER DATABASE ALTER DATABASE系统权限。系统权限。p 复制文件到指定位置的操作系统权限。复制文件到指定位置的操作系统权限。p 打开和备份数据库的权限。打开和备份数据库的权限。按照下面的步骤重命名重做日志成员按照下面的步骤重命名重做日志成员p(1 1)使用)使用SHUTDOWNSHUTDOWN命令关闭数据库,因

108、为只有命令关闭数据库,因为只有关闭了数据库后才能修改数据库实例正在使用关闭了数据库后才能修改数据库实例正在使用的文件名。的文件名。p(2 2)如果需要,可以将重做日志文件复制到新)如果需要,可以将重做日志文件复制到新的位置,然后使用操作系统命令对其进行重命的位置,然后使用操作系统命令对其进行重命名。例如,将名。例如,将log1a.rdolog1a.rdo重命名为重命名为log1b.rdolog1b.rdo,将将log2a.rdolog2a.rdo重命名为重命名为log2b.rdolog2b.rdo。p(3 3)使用)使用STARTUP MOUNTSTARTUP MOUNT命令装载数据库。命令装

109、载数据库。(4)使用带)使用带RENAME FILE子句的子句的ALTER DATABASE语句重命名数据库的重做日志文件语句重命名数据库的重做日志文件pALTER DATABASE ALTER DATABASE pRENAME FILE log1a.rdo, RENAME FILE log1a.rdo, log2a.rdolog2a.rdopTO log1b.rdo, log2b.rdo;TO log1b.rdo, log2b.rdo;p(5 5)使用)使用ALTER DATABASE OPENALTER DATABASE OPEN命令打开命令打开数据库。数据库。5删除重做日志组和成员删除重

110、做日志组和成员(1 1)删除重做日志组。)删除重做日志组。删除重做日志组的用户必须拥有删除重做日志组的用户必须拥有ALTER DATABASEALTER DATABASE系统权限。在删除重做日志组之前,需要考虑如系统权限。在删除重做日志组之前,需要考虑如下因素。下因素。 一个数据库实例最少需要两组重做日志文件,一个数据库实例最少需要两组重做日志文件,组中的重做日志成员数量不限。组中的重做日志成员数量不限。 只有当重做日志组未激活时才能删除它。只有当重做日志组未激活时才能删除它。 在删除之前,确认重做日志组已经被归档。可在删除之前,确认重做日志组已经被归档。可以从视图以从视图V$LOGV$LOG

111、中查看重做日志组的归档情况。中查看重做日志组的归档情况。【例【例5.46】p删除编号为删除编号为1010的重做日志组,语句如下:的重做日志组,语句如下:ALTER DATABASE DROP LOGFILE GROUP 10;ALTER DATABASE DROP LOGFILE GROUP 10;(2)删除重做日志成员。)删除重做日志成员。删除重做日志成员的用户必须拥有删除重做日志成员的用户必须拥有ALTER ALTER DATABASEDATABASE系统权限。系统权限。在在ALTER DATABASEALTER DATABASE语句中使用语句中使用DROP LOGFILE DROP LO

112、GFILE MEMBERMEMBER子句也可以删除指定的重做日志成员文件。子句也可以删除指定的重做日志成员文件。【例【例5.475.47】 删除重做日志文件删除重做日志文件log1a.rdolog1a.rdo,语句,语句如下:如下:ALTER DATABASE DROP LOGFILE MEMBER ALTER DATABASE DROP LOGFILE MEMBER log1a.rdo;log1a.rdo;提示提示当从数据库中删除重做日志成员时,操作当从数据库中删除重做日志成员时,操作系统文件不会被删除。数据库的控制文件系统文件不会被删除。数据库的控制文件会被更新,从数据库结构中删除重做日志

113、会被更新,从数据库结构中删除重做日志成员。删除重做日志成员后,确认删除操成员。删除重做日志成员后,确认删除操作成功,然后可以手动删除相关重做日志作成功,然后可以手动删除相关重做日志文件。文件。6清空重做日志文件清空重做日志文件如果重做日志文件被破坏,可以使用如果重做日志文件被破坏,可以使用ALTER ALTER DATABASE CLEAR LOGFILEDATABASE CLEAR LOGFILE命令初始化此日命令初始化此日志文件。执行此命令时,不需要关闭数据志文件。执行此命令时,不需要关闭数据库。库。【例【例5.48】p清空编号为清空编号为1010的重做日志组,语句如下:的重做日志组,语句

114、如下:ALTER DATABASE CLEAR LOGFILE GROUP 10;ALTER DATABASE CLEAR LOGFILE GROUP 10;p如果重做日志文件没有归档,则可以在语句中如果重做日志文件没有归档,则可以在语句中使用使用UNARCHIVEDUNARCHIVED关键字,例如:关键字,例如:ALTER DATABASE CLEAR UNARCHIVED LOGFILE ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 10;GROUP 10;确认清除重做日志文件对话框确认清除重做日志文件对话框 5.3.5 归档日志管理归档日志管

115、理pOracleOracle数据库允许将被填充满的重做日志数据库允许将被填充满的重做日志文件组保存到一个或多个离线的位置,这文件组保存到一个或多个离线的位置,这叫作归档(叫作归档(ARCHIVEARCHIVE)重做日志,简称归)重做日志,简称归档日志。将重做日志文件转换为归档重做档日志。将重做日志文件转换为归档重做日志文件的过程叫作归档,此过程只能在日志文件的过程叫作归档,此过程只能在ARCHIVELOGARCHIVELOG模式下数据库中进行。模式下数据库中进行。1归档日志文件和归档模式归档日志文件和归档模式归档日志文件是重做日志文件组成员的备归档日志文件是重做日志文件组成员的备份,它由重做项

116、目和唯一的日志序列号组份,它由重做项目和唯一的日志序列号组成。当数据库处于归档模式时,写日志进成。当数据库处于归档模式时,写日志进程(程(LGWRLGWR)不能够对未归档的重做日志组)不能够对未归档的重做日志组进行重用和改写操作。如果设置了自动归进行重用和改写操作。如果设置了自动归档模式,则后台进程档模式,则后台进程ARCnARCn将自动地执行归将自动地执行归档操作。数据库会启动多个归档进程,确档操作。数据库会启动多个归档进程,确保一旦日志文件被填满马上就会被归档。保一旦日志文件被填满马上就会被归档。可以使用归档日志文件达到如下目的可以使用归档日志文件达到如下目的p 恢复数据库。恢复数据库。p

117、 更新备用数据库。更新备用数据库。p 使用使用LogMinerLogMiner获取数据库的历史信息。获取数据库的历史信息。自动归档日志的过程自动归档日志的过程(1)查看当前数据库实例的归档模式)查看当前数据库实例的归档模式从系统视图从系统视图V$DATABASEV$DATABASE的的LOG_MODELOG_MODE列可以查看到当前数据库实例的归列可以查看到当前数据库实例的归档模式。档模式。【例【例5.495.49】 在在SQL PlusSQL Plus中执行下面的脚本可以查看当前连接的数据中执行下面的脚本可以查看当前连接的数据库实例的归档模式。库实例的归档模式。SELECT NAME, LO

118、G_MODE FROM V$DATABASE;SELECT NAME, LOG_MODE FROM V$DATABASE;(2)查看归档日志信息。)查看归档日志信息。使用使用ARCHIVE LOG LIST命令显示归档日志信息命令显示归档日志信息 (3)使用)使用V$ARCHIVED_LOG视图查看归档日志信息视图查看归档日志信息字 段 名数据类型说 明RECIDNUMBER归档日志记录IDSTAMPNUMBER归档日志记录的时间戳NAMEVARCHAR2(513)归档日志文件名THREAD#NUMBER重做线程编号SEQUENCE#NUMBER重做日志序列号FIRST_CHANGE#NUMB

119、ER在归档日志中第1次修改的编号STATUSVARCHAR2(1)归档日志的状态。A表示有效(Available),D表示已删除(Deleted),U表示无效(Unavailable),X表示过期(Expired)【例例5.50】p使用使用SYSSYS用户以用户以SYSDBASYSDBA的身份登录到的身份登录到SQL SQL PlusPlus,执行下面的与查看归档日志的名称、,执行下面的与查看归档日志的名称、序列号和状态。序列号和状态。SELECT NAME, SEQUENCE#, STATUS FROM SELECT NAME, SEQUENCE#, STATUS FROM V$ARCHIV

120、ED_LOG;V$ARCHIVED_LOG;(4)使用)使用V$ARCHIVE_PROCESSES视图查看归档进程信息视图查看归档进程信息字 段 名数 据 类 型说 明PROCESSNUMBER当前数据库实例的ARCH进程标识符(有效值为09)STATUSVARCHAR2(10)ARCH进程的状态,包括STOPPED、SCHEDULED、STARTING、ACTIVE、STOPPING和TERMINATED.LOG_SEQUENCENUMBER正在被归档的联机重做日志的序列号STATEVARCHAR2(4)当前ARCH进程的状态,包括IDLE和BUSY2管理归档模式管理归档模式归档日志的操作模

121、式分为两种,即归档日志的操作模式分为两种,即ARCHIVELOGARCHIVELOG(归档模式)和(归档模式)和NOARCHIVELOGNOARCHIVELOG(非归档模式)(非归档模式)切换数据库归档模式的步骤如下切换数据库归档模式的步骤如下(1 1)在切换数据库归档模式之前,必须使用)在切换数据库归档模式之前,必须使用SHUTDOWNSHUTDOWN语句关闭相关语句关闭相关的数据库实例。的数据库实例。(2 2)备份数据库。在对数据库进行比较重要的配置改变时,通常要)备份数据库。在对数据库进行比较重要的配置改变时,通常要进行数据库备份操作,以防止数据丢失。特别是数据库处于非归档模进行数据库备

122、份操作,以防止数据丢失。特别是数据库处于非归档模式时,一旦数据库被破坏,只能依靠数据库备份来恢复数据。关于数式时,一旦数据库被破坏,只能依靠数据库备份来恢复数据。关于数据库备份操作,可以参考第据库备份操作,可以参考第8 8章的内容。章的内容。(3 3)编辑初始化参数文件,设置归档日志文件的位置。此步骤涉及)编辑初始化参数文件,设置归档日志文件的位置。此步骤涉及的内容将在的内容将在5.5.35.5.3小节介绍。小节介绍。(4 4)使用)使用STARTUP MOUNTSTARTUP MOUNT语句装载数据库,但不打开数据库。语句装载数据库,但不打开数据库。(5 5)使用)使用ALTER DATAB

123、ASE ARCHIVELOGALTER DATABASE ARCHIVELOG语句或语句或ALTER DATABASE ALTER DATABASE NOARCHIVELOGNOARCHIVELOG切换归档模式。切换归档模式。(6 6)使用)使用ALTER DATABASE OPENALTER DATABASE OPEN语句重新打开数据库。语句重新打开数据库。使用下面的命令设置数据库为手动归档使用下面的命令设置数据库为手动归档模式模式ALTER DATABASE ARCHIVELOG MANUAL;ALTER DATABASE ARCHIVELOG MANUAL;手动归档所有日志文件的语句如下

124、手动归档所有日志文件的语句如下ALTER SYSTEM ARCHIVE LOG ALL;ALTER SYSTEM ARCHIVE LOG ALL;【例【例5.51】 可以使用可以使用ALTER SYSTEMALTER SYSTEM语句设置语句设置LOG_ARCHIVE_MAX_PROCESSESLOG_ARCHIVE_MAX_PROCESSES的值,代码如下:的值,代码如下:ALTER SYSTEM SET ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=4;LOG_ARCHIVE_MAX_PROCESSES=4;3指定归档目的地指定归档目的地 字 段 名

125、数据类型说 明DEST_IDNUMBER 日志归档目的地参数标识符(有效值为110)DEST_NAMEVARCHAR2(256)日志归档目的地名称STATUSVARCHAR2(9)归档目的地的状态。VALID表示表示已被初始化,并且有效;INACTIVE表示没有目的地信息,DEFERRED表示被用户手动禁用;ERROR表示在打开或复制过程中出现错误DESTINATIONVARCHAR2(256)指定重做日志被归档的位置ERRORVARCHAR2(256)显示错误信息【例例5.52】SELECT DEST_NAME, STATUS, DESTINATION SELECT DEST_NAME, S

126、TATUS, DESTINATION FROM V$ARCHIVE_DEST;FROM V$ARCHIVE_DEST;指定多个归档目的地的步骤如下指定多个归档目的地的步骤如下(1 1)使用)使用SHUTDOWNSHUTDOWN命令关闭数据库。命令关闭数据库。(2 2)设置初始化参数)设置初始化参数LOG_ARCHIVE_DEST_nLOG_ARCHIVE_DEST_n,使用,使用LOCATIONLOCATION关键词设关键词设置位置信息,如果要将归档目的地指定到备用数据库,则可以使用置位置信息,如果要将归档目的地指定到备用数据库,则可以使用SERVICESERVICE设置有效的网络服务名。例如

127、:设置有效的网络服务名。例如:LOG_ARCHIVE_DEST_1 = LOCATION = /disk1/archive LOG_ARCHIVE_DEST_1 = LOCATION = /disk1/archive LOG_ARCHIVE_DEST_2 = LOCATION = /disk2/archiveLOG_ARCHIVE_DEST_2 = LOCATION = /disk2/archiveLOG_ARCHIVE_DEST_3 = LOCATION = /disk3/archiveLOG_ARCHIVE_DEST_3 = LOCATION = /disk3/archiveLOG_ARC

128、HIVE_DEST_4 = SERVICE = standby1LOG_ARCHIVE_DEST_4 = SERVICE = standby1(3 3)可以编辑初始化参数)可以编辑初始化参数LOG_ARCHIVE_FORMATLOG_ARCHIVE_FORMAT,设置归档文件的初,设置归档文件的初始化模式,例如:始化模式,例如:LOG_ARCHIVE_FORMAT = arch_%t_%s_%r.arcLOG_ARCHIVE_FORMAT = arch_%t_%s_%r.arc也可以只设置主归档目的地和次归档目的地也可以只设置主归档目的地和次归档目的地初始化参数初始化参数LOG_ARCHIVE_DESTLOG_ARCHIVE_DEST用于指定主用于指定主归档目的地,归档目的地,LOG_ARCHIVE_DUPLEX_DESTLOG_ARCHIVE_DUPLEX_DEST用用于指定次归档目的地,例如:于指定次归档目的地,例如:LOG_ARCHIVE_DEST = /disk1/archiveLOG_ARCHIVE_DEST = /disk1/archiveLOG_ARCHIVE_DUPLEX_DEST = LOG_ARCHIVE_DUPLEX_DEST = /disk2/archive/disk2/archive

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号