重做日志

重做日志(Online Redo Log)

重做日志用于记录数据库变化,当执行例程恢复或介质恢复时需要使用重做日志。当执行DDL和DML操作时,事物变化会被写到重做日志缓冲区,而在特定时刻LGWR会将重做日志缓冲区的内容写入重做日志。每个重做线程至少需要包含两个重做日志组,并且这些重做日志组是循环使用的。假定当前重做线程包含三个日志组,初始阶段LGWR会将事务变化写入到日志组一,当日志组一写满之后,Oracle 自动进行日志切换,并且LGWR会将事务变化写入到日志组二;当日志组二写满之后,LGWR会将事务变化写入到日志组三;当日志组三写满之后,LGWR又会将事物变化写回到日志组一,依此类推:

1)日志组。在单例程环境中,只有一个重做线程:在RAC(Real Application Cluster)环境中,包括多个重做线程。每个重做线程至少要包含两个日志组,通过查询动态性能视图V$LOG,可以显示重做线程的所有日志组信息,包括日志组编号,日志成员个数,日志组状态,尺寸,日志序列号等。下面以显示重做线程1的所有日志组信息为例说明使用V$LOG的方法。示例如下:

SQL> col  status format a8

SQL> col group#  format 999999

SQL> SELECT group#,members,sequence#,status,bytes,first_change# from v$log where thread#=1;

Group#       MEMBERS    SEQUENCES#        STATUS   BYTES FIRST_CHANGE#

1                    1                        176                      INACTIVE   10485760      1034933

2                     1                       177                      INACTIVE    10485760      1058173

3                     1                        178                      CURRENT  10485760     1081806

如上所示,group#用于标识日志组编号,members用于标识每个日志组的日志成员个数,sequence#用于标识日志序列号,status用于标识日志组状态,bytes用于标识日志组尺寸,first_change#用于标识日志组的起始SCN值。

(2)日志成员。日志组是由一个或多个日志成员组成的。通过查询动态性能视图V$LOGFILE,可以显示当前重做线程的所有日志成员信息。下面现实日志组1所包含的日志成员为例说明使用V$LOGFILE的方法。示例如下:

SQL> col member    format   a30

SQL> SELECT member,status from V$logfile where group#=1;

MEMBER                                    STATUS

D:\DEMO\REDO01.LOG           STALE

如上所示,member用于标识日志组的日志成员文件名,status用于标识日志成员的状态(STALE:许久未用-----日志组太大)

 

 

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

转载于:http://blog.itpub.net/12035968/viewspace-566974/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值