Oracle 查看归档日志中重做记录的RBA
程序员文章站
2022-06-24 22:31:57
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 508BBED> p kcvfhckp... union u, 12 bytes...
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
本文地址:https://blog.csdn.net/baoyuhang0/article/details/108982869
上一篇: 打印机更换墨盒后显示没有墨怎么办?
下一篇: 利用Redis实现SQL伸缩的方法