Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者 袁鹏飞 第5章

上传人:E**** 文档编号:89369819 上传时间:2019-05-24 格式:PPT 页数:29 大小:325KB
返回 下载 相关 举报
Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者  袁鹏飞 第5章_第1页
第1页 / 共29页
Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者  袁鹏飞 第5章_第2页
第2页 / 共29页
Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者  袁鹏飞 第5章_第3页
第3页 / 共29页
Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者  袁鹏飞 第5章_第4页
第4页 / 共29页
Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者  袁鹏飞 第5章_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者 袁鹏飞 第5章》由会员分享,可在线阅读,更多相关《Oracle 11g数据库管理与开发基础教程 教学课件 ppt 作者 袁鹏飞 第5章(29页珍藏版)》请在金锄头文库上搜索。

1、第5章 重做日志管理,课程描述 不一致状态下的数据库需要做实例恢复或介质恢复,使数据库达到一致状态后才能打开。无论是做实例恢复,还是介质恢复,均需要用到Oracle数据库的重做日志。本章介绍Oracle数据库中重做日志的作用及管理。,本章知识点,操作日志的作用; 重做日志的写入过程; 联机重做日志文件管理; 归档重做日志文件管理。,5.1 重做日志的基本概念,重做日志记录对数据库所做的所有修改,同时还保护还原数据。所以,如果重做日志得到完整保存,无论在数据库出现实例故障还是介质失败时,只要重新读取重做日志,把它们再次应用到相关的数据块中,即可重构对数据库所做的所有修改(包括还原段),将数据库恢

2、复到故障前的状态。,5.1.1 重做日志的内容,重做日志由重做记录(也被称作重做项)组成,重做记录又由一组修改矢量组成,每个修改矢量描述数据库中单个数据块上所发生的改变,它记录的信息包括: 修改对应的SCN和时间戳; 产生这些修改的事务标识号; 事务提交时的SCN和时间戳(如果事务已提交); 产生这些修改的操作类型; 被修改数据段的名称和类型。,5.1.2 重做日志的相关概念,1. 重做日志缓冲区 用户执行数据库操作时,服务器进程把重做记录写入SGA的重做日志缓冲区内进行缓存,之后再由Oracle数据库的后台进程日志写入进程(LGWR)把它们写入联机重做日志文件。这样做可以减少重做日志文件写入

3、的物理I/O次数,提高系统的性能。 当LGWR把重做记录从日志缓冲区写入联机重做日志文件后,服务器进程即可重复使用这部分日志缓冲区缓存重做记录。Oracle把重做日志缓冲区看作一个圆形可循环写入的区域。,5.1.2 重做日志的相关概念,2. 日志写入进程与联机重做日志文件 LGWR在下面情况下把重做日志缓冲区内缓存的重做记录写入联机重做日志文件: 用户提交事务时; 联机重做日志切换时; LGWR上次写入3秒之后; 重做日志缓冲区达到三分之一满,或者缓存的重做日志达到1 MB时; DBWn把脏数据块写入数据文件之前。,5.1.2 重做日志的相关概念,2. 日志写入进程与联机重做日志文件 每个数据

4、库实例至少要有两组联机重做日志文件,以保证在一组文件处于归档操作时,有另一组文件可用于LGWR写入。 鉴于联机重做日志文件的重要性,Oracle数据库也支持联机重做日志文件的多路存储。写入时,LGWR将同步写入联机重做日志文件组内的各个成员。只要一组重做日志内有一个成员可以正常写入,就不会影响Oracle数据库的运行。但当一组内所有成员文件全部损坏时,则会导致数据库实例关闭。,5.1.2 重做日志的相关概念,3. 日志切换与日志序列号 日志切换指LGWR停止写入一组联机重做日志文件,而开始写入下一组重做日志文件这一操作。Oracle数据库以循环方式依次使用各组重做日志文件。通常情况下,LGWR

5、写满一组日志文件后发生日志切换。但管理员也可在需要时执行下面命令强制进行日志切换,或者设置ARCHIVE_LAG_TARGET参数要求实例定期进行日志切换: ALTER SYSTEM SWITCH LOGFILE; 当日志切换到一组重做日志时,如果Oracle实例还没有完成对这组重做日志的归档操作,这将导致Oracle数据库挂起,等待该组重做日志归档完成后才能继续运行。,5.1.2 重做日志的相关概念,3. 日志切换与日志序列号 发生日志切换时,Oracle实例赋给准备写入的重做日志组一新的日志序列号。归档进程在归档重做日志时会保留日志序列号。日志序列号惟一地标识联机和归档重做日志文件。Ora

6、cle在执行实例或介质恢复时,将按照日志序列号而不是日志文件名称判断需要使用哪个联机重做日志文件或归档重做日志文件恢复数据库。 下面命令和SQL语句均可查看各组联机重做日志文件的日志序列号: archive log list SELECT group#, sequence# FROM v$log;,5.1.2 重做日志的相关概念,4. 重做日志文件组的状态 重做日志文件组的状态分为以下几种: ACTIVE:有效状态,指实例恢复时要用这组重做日志文件; CURRENT:当前状态,指LGWR当前正在写入这组日志文件; INACTIVRE:无效状态,实例恢复不再需要这组日志文件; CLEARING:

7、说明执行ALTER DATABASE CLEAR LOGFILE语句后,系统正在清除重做日志文件中的内容; UNUSED:未使用过。新添加的重做日志文件组,或者被清空之后的重做日志文件组处于该状态。,5.1.2 重做日志的相关概念,5. 归档进程与归档重做日志文件 Oracle数据库可以运行在ARCHIVELOG(归档)或NOARCHIVELOG(非归档)模式。二者的差别是日志切换后,原来填充的重做日志是否归档保存。非归档模式下没有完整保存Oracle数据库的所有重做日志,所以当出现介质故障时,数据库无法恢复到故障发生时的状态。 要查看Oracle数据库的运行模式,可以使用SQL*Plus命令

8、ARCHIVE LOG LIST,也可以查询动态性能视图v$database的log_mode列。,5.1.2 重做日志的相关概念,5. 归档进程与归档重做日志文件 Oracle数据库运行在归档模式时,发生日志切换后,归档进程将把填充过的联机重做日志文件复制到指定的一个或多个位置存储,为它们创建脱机副本,这一过程被称作归档,重做日志文件的这些脱机副本被称作归档重做日志文件。 归档分为自动归档和手工归档两种。启用自动归档后,后台进程ARCn在日志切换后自动完成归档操作。采用手工归档时,需调用下面SQL语句完成归档: ALTER SYSTEM ARCHIVE LOG ALL; ALTER SYST

9、EM ARCHIVE LOG NEXT;,5.1.2 重做日志的相关概念,6. 重做日志的从产生到归档的过程,5.2 管理联机重做日志文件组及成员,查询Oracle数据库的动态性能视图可以了解重做日志文件的相关信息,与此相关的动态性能视图包括: v$log:记录与重做日志文件组相关的信息,如日志组的编号、成员数量、状态等; v$logfile:记录有关重做日志文件成员的信息,如日志成员的路径和名称、状态,以及所属日志组编号。,1. 规划重做日志需要考虑的因素,在规划Oracle数据库重做日志时,需要考虑以下几个因素: 联机日志文件多路存储; 重做日志文件组数量; 重做日志文件的大小; 重做日志

10、文件的块大小.,2. 添加重做日志文件组,在创建数据库时LOGFILE GROUP子句至少已经创建了两组重做日志,在日后数据库运行过程中,如果需要可以使用ALTER DATABASE语句添加或删除重做日志文件组。 ALTER DATABASE ADD LOGFILE GROUP 4 (D:oracleoradataorclredo04-1.log, E:oracleorclredo04-2.log) SIZE 50M BLOCKSIZE 512 REUSE;,3. 添加重做日志文件成员,添加重做日志文件成员时,也需调用ALTER DATABASE语句。例如,下面语句向第一组重做日志添加两个日志

11、成员文件: ALTER DATABASE ADD LOGFILE MEMBER E:oracleorclredo01-2.log, E:oracleorclredo01-3.log TO GROUP 1; 因为每组重做日志内的所有成员文件的大小必须保持一致,所以添加的重做日志成员要与组内现有的重做日志文件大小相同,因此不需要指定日志文件的大小。,4. 移动、重命名重做日志文件成员,移动和重命名重做日志文件的操作步骤基本相同,它们是: 关闭现有数据库; 用操作系统命令移动或重命名日志文件; 把数据库启动到mount状态,但不打开它; 调用ALTER DATABASE语句,完成重命名操作; ALT

12、ER DATABASE RENAME FILE 原文件 TO 目标文件; 打开数据库,以便执行正常操作.,5. 删除重做日志文件成员,删除重做日志文件成员时,要保证它所在日志组的状态既不是CURRENT,也不是ACTIVE,并且所删除的这个日志文件不是其所在组中的最后一个日志文件。 下面语句删除第1组中的一个重做日志成员,但它只是从数据库中删除,对应的操作系统文件仍然存在: ALTER DATABASE DROP LOGFILE MEMBER E:Oracleorclredo01-3.log;,6. 删除重做日志文件组,删除重做日志文件组时,要考虑以下限制: 一个实例至少需要两组重做日志文件;

13、 只有当重做日志文件组处于INACTIVE状态时才能删除; 数据库启用归档模式后,在删除之前,要保证该组日志已归档。日志组是否归档完成,可以从v$log中查询其归档情况。 下面语句删除前面创建的第4组重做日志: ALTER DATABASE DROP LOGFILE GROUP 4;,7. 清空重做日志文件内容,数据库打开期间,重做日志文件可能出现损坏,这样就无法归档而最终会导致数据库操作停止。在这种情况下,不用关闭数据库,执行下面语句即可重新初始化该文件,恢复数据库的操作: ALTER DATABASE CLEAR LOGFILE GROUP 3; 如果损坏的重做日志文件还没有归档,则可以在

14、该语句中使用UNARCHIVED关键字,指出不需要归档,否则会导致语句执行失败: ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 4;,5.3 管理归档重做日志,归档重做日志管理所涉及到的操作包括: 设置Oracle数据库的归档日志位置; 归档日志文件的命名方法; 设置归档进程数量等。,5.3.1 设置归档位置,Oracle可以将重做日志归档到一个或多个位置,归档位置既可是本地文件系统,数据库的快速恢复区,也可以是ASM磁盘组,或者甚至是远程Oracle数据库(备用数据库)。归档位置由以下两组初始化参数指定,但每次只能使用一组,而不能混合使用: LO

15、G_ARCHIVE_DEST、LOG_ARCHIVE_DUPLEX_DEST:指定的归档位置只能是本地文件系统中的两个存储位置。例如; ALTER SYSTEM SET LOG_ARCHIVE_DEST = d:oracleoradataarchive; ALTER SYSTEM SET LOG_ARCHIVE_DUPLEX_DEST = F:oraclearchive;,5.3.1 设置归档位置,LOG_ARCHIVE_DEST_n:n的取值是1到31之间的整数。其中n取110之间的整数时,用于指定本地或远程归档位置,n取1131之间的整数时,只能用于指定远程归档位置。使用LOG_ARCHI

16、VE_DEST_n参数时,需要使用LOCATION或SERVICE关键字指定归档位置。例如: ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = LOCATION=F:oraclearchive;,5.3.2 设置归档日志文件命名格式,设置归档日志文件命名格式的目的是为了保证ARCn在归档时能给每个文件一个唯一的名称,这是通过设置初始化参数log_archive_format来实现的。该参数的默认值是:ARC%S_%R.%T,这样可以保证各个归档日志文件名称的唯一性: %S:日志序列号; %R:重置日志编号(RESETLOGS); %T:线程编号。 其中大写的S、R、T表示这三部分的数据长度是固定的,如果各部分对应的数据长度达不到指定长度,则在其前面填充0。如果使用小写,则不会把这三部分数据填充到固定长度。,5.3.3 调整归档进程数量,初始化参数LOG_ARCHIVE_MAX_PROCESSES决定Oracle实例中启动的

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

最新文档


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

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