oracle dump trace redo几则方法小记

在之前测试已经使用了基于dba的方法,本文测试其它几种方法,如下:
1. To dump records based on RBA (Redo Block Address) --基于rda
2. To dump records based on time --基于时间
3. To dump records based on layer and opcode --基于内部操作代码的内核所在层;这个比较高级一般用不上
4. Dump the file header information --dump头部信息 ,查看redo header不错的命令



1. To dump records based on RBA (Redo Block Address) --基于rda
既然要根据rba来dump redo,如何获取rba,可采用:
alter system dump logfile 'dump的日志文件';

alter system dump logfile 'D:\ORACLE11G_64BIT\ORADATA\ORCL\REDO07.LOG' dba min 10 276635 dba max 10 276635;

就可以产生如下的trace内容
REDO RECORD - Thread:1 RBA: 0x000314.0000e11f.0010 LEN: 0x00e0 VLD: 0x06

rba的组成及各部分含义:
       (1)the log file sequence number (4 bytes)
       (2)the log file block number (4 bytes)
       (3)the byte offset into the block at which the redo record starts (2bytes)
      
--知道了rba含义,作事就简单了,操作如下:

---日志序列号
SQL> select to_number('314','xxxxxxxxxxx') from dual;

TO_NUMBER('314','XXXXXXXXXXX')
------------------------------
                           788

--日志文件中的块号
SQL> select to_number('e11f','xxxxxxxxxxx') from dual;

TO_NUMBER('E11F','XXXXXXXXXXX'
------------------------------
                         57631                                
然后运行基于rba的命令
alter system dump logfile 'D:\ORACLE11G_64BIT\ORADATA\ORCL\REDO07.LOG' rba min 788 57631 rba max 788 57631;

第二种dump log的方法
2. To dump records based on time --基于时间
这个我就不测试,可按网上一个非常优秀的贴子进行测试:
http://blog.csdn.net/tianlesoftware/article/details/6670962


第三种dump log的方法
3. To dump records based on layer and opcode
---这个其实就是filter out指定操作类型的
SQL> alter system dump logfile 'D:\ORACLE11G_64BIT\ORADATA\ORCL\REDO07.LOG' layer 11 opcode 18;

System altered


第四种dump log的方法
4. Dump the file header information --dump头部信息 ,查看redo header不错的命令
SQL> alter session set events 'immediate trace name redohdr level 6';

Session altered

你可能感兴趣的:(oracle dump trace redo几则方法小记)