非IMU和IMU模式下redo log格式解析

-----------------非IMU模式-------------------------

1. 改为非IMU模式

SQL> alter system set "_in_memory_undo"=false scope=spfile;

System altered.

SQL> shutdown immediate 
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  751595520 bytes
Fixed Size                  2257032 bytes
Variable Size             490737528 bytes
Database Buffers          255852544 bytes
Redo Buffers                2748416 bytes
Database mounted.
Database opened.
SQL> show parameter "_in_memory_undo";

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_in_memory_undo                      boolean     FALSE

2. 切换日志,对表进行update操作,多个update一次提交

SQL> alter system switch logfile;

System altered.

SQL> update t set name='AAAAA' where id=1;

1 row updated.

SQL> update t set name='BBBBB' where id=2;

1 row updated.

SQL> commit;

Commit complete.

3. dump redo进行分析

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         1 CURRENT
         2 INACTIVE
         3 ACTIVE

SQL> alter system dump logfile '/u01/app/oracle/oradata/orcl/redo01a.log';

System altered.

4. dump文件分析

REDO RECORD1: 一个REDO RECORD=RECORD头+CHANGE VACTOR(一个CV就是一个操作)

REDO RECORD - Thread:1 RBA: 0x00000b.00000008.0010 LEN: 0x021c VLD: 0x05
SCN: 0x0000.00142426 SUBSCN:  1 11/22/2016 04:07:07
(LWN RBA: 0x00000b.00000008.0010 LEN: 0002 NST: 0001 SCN: 0x0000.00142425)

日志头:

thread1:线程号,单实例的话就是thread1,rac的话会有1,2 对应不同的实例。

RBA0x00000b.00000008.0010,将16进制转换为10进制分别logfile sequence number,logfile block number,byte offset into the block,即redo序列号,redo block    号,以及偏移量

sys@ORCL> select to_number('b','x') from dual;

TO_NUMBER('B','X')
------------------
                11

1 row selected.

VLD:0x05,日志格式,非IMU时是这个,IMUI时为0x0d

SCN:0x0000.00142426 SUBSCN:  1 11/22/2016 04:07:07,指此redo条目产生时的SCN号。与CHANGE4#提交时的SCN一致。

sys@ORCL> select scn_to_timestamp(to_number('142426','xxxxxx')) from dual;

SCN_TO_TIMESTAMP(TO_NUMBER('142426','XXXXXX'))
---------------------------------------------------------------------------
22-NOV-16 04.07.04.000000000 AM

1 row selected.

(LWN RBA: 0x00000b.00000008.0010 LEN: 0002 NST: 0001 SCN: 0x0000.00142425):括号中的SCN比上一行的SCN少一个

CHANGE #1

CHANGE #1 TYP:0 CLS:19 AFN:3 DBA:0x00c00090 OBJ:4294967295 SCN:0x0000.0014238e SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: sl
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值