Oracle 查看归档日志中重做记录的RBA

RBA介绍:

rba = redo byte address 脏数据块对应的redo记录条目的位置 

RBA由3部分组成,4byte+4byte+2byte
分别为 logfile sequence number ,logfile block number,byte offset into the block ,
即redo 序列号,redo 块号,以及偏移量。

这里RBA对应bbed中的500 504 508
BBED> p kcvfhckp
...
   union u, 12 bytes                        @500     
      struct kcvcprba, 12 bytes             @500     
         ub4 kcrbaseq                       @500      0x0000000a
         ub4 kcrbabno                       @504      0x00000089
         ub2 kcrbabof                       @508      0x0010
...

并且全部使用16进制。
例如:rba= 0000000a.00000089.0010
第一个4byte对应kcrbaseq
第二个4byte对应kcrbabno
第三个2byte对应kcrbabof

所以在跳过归档继续恢复时,不仅需要修改500 kcrbaseq 还要修改504 kcrbabno 和 508 kcrbabof

查看归档日志中重做记录的RBA:

SQL> oradebug setmypid
Statement processed.

SQL> oradebug tracefile_name
/oracle/app/diag/rdbms/prod/prod/trace/prod_ora_4126.trc

SQL> alter system dump logfile '/oracle/app/product/11.2.0/db_1/dbs/arch1_10_1046156085.dbf';
System altered.

从转储trace中找到第一条重做记录信息:
SQL>less /oracle/app/diag/rdbms/prod/prod/trace/prod_ora_4126.trc
...
REDO RECORD - Thread:1 RBA: 0x00000a.00000002.0010 LEN: 0x0070 VLD: 0x05
SCN: 0x0000.0010fd59 SUBSCN:  1 10/09/2020 21:47:07
(LWN RBA: 0x00000a.00000002.0010 LEN: 0001 NST: 0001 SCN: 0x0000.0010fd57)
CHANGE #1 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ:0 OP:17.3 ENC:0
...

以上内容为10号归档日志中第一个重做记录,可以看出第一个重做记录的RBA=0x00000a.00000002.0010
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值