oracle 重做日志文件与归档日志.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle 重做日志文件与归档日志

第7周 重做日志和归档日志;【学习目标】;【本章要点】;【本章大纲】;【本章大纲】;一、 重做日志文件; 利用重做日志文件,在数据库发生故障时,可以重新处理事务。每个事务在处理的同时也会写入重做日志缓冲区,然后由LGWR 进程写入到重做日志文件,这样,如果发生介质故障,重做日志文件将提供恢复机制。(但也存在例外情况,例如,在启用NOLOGGING 子句的情况下对象中的直接加载插入)。 重做日志文件用来在例程失败等情况下恢复尚未写入数据文件的但是已提交的数据。重做日志文件只用于恢复。; 在Oracle 当中,事务对数据库所做的修改将以重做记录的形式保存重做日志缓存中。 在提交事务时,由LGWR 进程将缓存中该事务相关的重做记录全部写入重做日志文件,这时,事务认为已经成功提交。这种机制称为“快速提交”。;【本章大纲】;1.1 重做日志结构 重做日志文件具有以下特征: ? 记录对数据所做的所有更改 ? 提供恢复机制 ? 可以划分成组 ? 至少需要两个组 那么什么是日志组呢(Redo Log Group)? 重做日志组是一组相同的重做日志文件副本,LGWR 后台进程向组内所有联机重做日志文件并发写入相同信息,为保证数据库的正常操作,Oracle 服务器最少需要两个联机重做日志文件组。;属于同一日志组的每个日志文件被称为日志成员,并且同一个日志组的不同日志成员互为镜像,即组内的每个成员都有相同的日志序列号和同样的大小。Oracle 服务器每次写入日志组时,都分配一个日志序列号以唯一地标识每个重做日志文件。当前日志序列号存储在控制文件和所有数据文件的头部。在Oracle 数据库中,多个重做日志组是循环使用的,如图7—1 所示。;; 假定数据库包含三个日志组,在图7-1 中,初始阶段后台进程LGWR 将事务变化写入到日志组一的两个成员中;在日志组一写满之后,LGWR 进程切换到日志组二,并将事务变化写入到日志组二的两个成员中;在日志组二写满之后, LGWR 进程切换到日志组三,并将事务变化写入到日志组三; 在日志组三写满之后,LGWR 又切换回日志组一,并将事务变化写入到日志组一,覆盖原有记录。经过以上说明,大家可以知道,所有事务变化都可以通过日志组予以保留(归档方式下)。 这样,即使将来出现实例失败(Instance Failure)或介质失败(Media Failure)时,DBA 将会使用这些已经保留下来的事务变化进行实例恢复或介质恢复,最终可以确保Oracle 不会出现数据丢失。;以下查询显示了当前数据库的重做日志文件的位置和名称。当前数据库共有3 个日志文 件REDO01.LOG、REDO02.LOG 和REDO03.LOG,位于D:\ORACLE\ORADATA\DB01\目录下。 SQL SELECT member FROM v$logfile; MEMBER ------------------------------------------ D:\ORACLE\ORADATA\DB01\REDO03.LOG D:\ORACLE\ORADATA\DB01\REDO02.LOG D:\ORACLE\ORADATA\DB01\REDO01.LOG;【本章大纲】;1.2 日志序列号和日志切换 Oracle 服务器将对数据库所做的所有更改按顺序记录到重做日志缓冲区中。LGWR 进程把重做条目从重做日志缓冲区写入联机重做日志组的其中一个组,这个组叫做当前重做日志组。LGWR 进程将在以下情况下写入: ? 当提交事务处理时(Commit) ? 当重做日志缓冲区被写满三分之一时 ? 当重做日志缓冲区内的已更改记录超过1MB 时 ? 每隔3 秒 ? 在DBWn 将数据库缓冲区高速缓存中修改的块写入数据文件之前 重做日志文件是以循环方式使用的。每个重做日志文件组用一个递增日志序列号来标识,每次重新使用日志时就会覆盖原来的序列号。; LGWR 按顺序向联机重做日志组写入重做信息。一旦当前联机重做日志组被写满,LGWR 就开始写入下一个组。这称为日志切换(Log Switch)。 当最后一个可用联机重做日志文件已满时,LGWR 将返回第一个联机重做日志文件组并开始重新写入。 假定数据库有三个重做日志组,第一个日志组为当前日志组,当前日志序列号为56,LGWR 进程将事务变化写入第一个重做日志组中,当第一个日志组写满后, LGWR 进程自动切换到第二个日志组,在进行日志切换时,Oracle 服务器完成如下任务: ? 日志序列号自动加1,即当前日志序列号变为57,并且将日志序列号连同SCN 信息写入到控制文件的日志历史记录中。;?促使CKPT 进程发出检查点,从而使得后

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档