ITPub博客

首页 > Linux操作系统 > Linux操作系统 > redo log

redo log

原创 Linux操作系统 作者:宝儿小萱 时间:2013-03-12 16:11:25 0 删除 编辑

含义:

oracle数据库中最关键的结构恢复操作是重做日志,它由两个或两个以上的预先分配存储的文件对数据库的所有修改发生。每个实例的Oracle数据库都有一个关联的重做日志来保护数据库实例故障的情况。

 

redo thread

当他在多个数据库实例,重做日志对于每个数据库实例也称为重做redo thread。在典型的配置,只有一个数据库实例访问Oracle数据库,所以只有一个线程存在。真正的应用程序集群在Oracle环境,然而,两个或多个实例同时访问一个数据库,每个实例都有它自己的线程中重做。一个单独的redo thread为每个实例避免争用一套重做日志文件,从而消除了潜在的性能瓶颈。

 

Redo log内容

重做日志文件用来被redo记录写满。一个重做记录,也称为重做条目,是由一群变化向量,每一种都是描述一种改变,一块在数据库中。例如,如果你改变一个值在一个员工工资表,你生成一个重做记录包含变化向量描述更改数据段块表,撤销段数据块,事务表的撤销段。

重做条目记录数据,您可以使用重构对数据库的所有修改,包括撤销段。因此,重做日志也保护回滚数据。当你恢复数据库使用重做数据,数据库读取变化向量在重做记录并应用更改相关的块。

重做记录以环状缓冲在重做日志缓冲区的SGA和被写入重做日志文件的一个由日志读写器(LGWR)数据库后台进程。当一个事务被提交,LGWR写事务重做记录重做日志缓冲区的一个重做日志文件SGA和分配系统更改编号来识别重做记录每个提交的事务。只有当所有重做记录与给定事务有关安全的在线日志磁盘上是用户进程通知,在提交事务。

重做记录也可以写入重做日志文件之前,相应的事务提交。如果重做日志缓冲区填满,或另一个事务提交、LGWR冲所有的重做日志条目在重做日志缓冲区,一个重做日志文件,尽管一些重做记录可能不是承诺。如果有必要,数据库可以回滚这些变化。

 

 

Active (Current) and Inactive Redo Log Files

 

Oracle数据库只使用一个重做日志文件在一个存放时间重做记录写的重做日志缓冲区。重做日志文件,LGWR积极写作称为当前重做日志文件。

重做日志文件是需要实例恢复被称为活跃的重做日志文件。重做日志文件,不再需要例如恢复被称为不活跃的重做日志文件。

如果你启用归档(数据库是在ARCHIVELOG模式),那么数据库不能重用或覆盖一个活跃的在线日志文件,直到一个存储服务器后台进程(ARCn)已归档的内容。如果归档是禁用的(数据库在NOARCHIVELOG模式),那么当最后一个重做日志文件是完整,LGWR继续覆盖第一个可用的活动文件。

 

Log Switches and Log Sequence Numbers

一个日志切换点停止写给一个数据库重做日志文件,并开始写作到另一个。通常,一个日志切换发生在当前重做日志文件是完全填充和写作必须继续接下来的重做日志文件。然而,您可以配置日志切换到定期发生,不管当前的重做日志文件是完全充满。你也可以迫使日志切换手动。

Oracle数据库分配每个重做日志文件中一个新的日志序列号每次日志切换发生和LGWR开始写信给它。当数据库档案重做日志文件,归档日志保留它的日志序列号。一个重做日志文件,给出使用往回走的下一个可用的日志序列号。

每个在线或归档重做日志文件是唯一标识的日志序列号。在崩溃,实例,或媒介恢复,数据库正确适用重做日志文件在升序通过使用日志序列数量的必要的存档和重做日志文件。

 

 

Multiplexing Redo Log Files

以防止故障涉及重做日志本身,Oracle数据库允许一个多路复用重做日志,这意味着两个或两个以上的相同副本的重做日志可以自动保存在单独的位置。为最大的好处,这些位置应该放在单独的磁盘。即使所有副本的重做日志处于同一磁盘,然而,冗余可以帮助防止I / O错误,文件损坏,等等。当重做日志文件是多路复用,同时LGWR写同样的重做日志信息到多个相同的重做日志文件,从而消除单点故障的重做日志。

多路复用实现通过创建组重做日志文件。一组由一个重做日志文件和它的多路复用副本。每一个相同的拷贝是一个组的成员。每个重做日志组被定义为一个数字,比如组1、组2,等等。

 

 

Placing Redo Log Members on Different Disks

当建立一个多路复用重做日志,将组的成员在不同的物理磁盘。如果单个磁盘失败了,那么只有一个组的成员无法LGWR和其他成员仍然可以访问,所以实例LGWR才能继续运转。

如果你归档重做日志,重做日志成员磁盘间传播,消除之间的争用和ARCn LGWR后台进程。例如,如果你有两组多路复用重做日志成员(一个双工重做日志),把每个成员在不同的磁盘和设置你的存档目的地五分之一磁盘。这样做将避免争论LGWR(写入成员)和ARCn(阅读会员)。

Datafiles也应该放在不同的磁盘从重做日志文件来减少争用在写数据块和重做记录。

 

Setting the Size of Redo Log Members

当设置的重做日志文件的大小,考虑是否你将归档重做日志。重做日志文件的大小应该控制这样一个充满集团可以归档到一个单位的离线存储媒体(如磁带或磁盘),用最少的空间介质上的闲置。例如,假设只有一个填重做日志组可以装上一盘磁带,磁带存储容量的49%仍未使用。在这种情况下,最好是减少重做日志文件的大小略,让两组可以归档日志在每个磁带。

所有成员相同的多路复用重做日志组必须是相同的大小。不同组的成员可以有不同的大小。然而,没有优势在不同文件大小团体之间。如果没有设置检查点之间可以进行日志开关,使所有组相同的大小来保证检查站定期发生。

允许的最小尺寸为一个重做日志文件是4 MB。

 

相关资料来自http://docs.oracle.com/cd/B19306_01/server.102/b14231/onlineredo.htm

 摘自官档,部分翻译不准确有误的地方,望指出

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27059641/viewspace-755905/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: autotrace
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-03-12

  • 博文量
    2
  • 访问量
    4135

最新文章