How to dump redo log entry(一)

2014-11-24 17:00:49 · 作者: · 浏览: 2
How to dump redo log entry
转储重做日志 Oracle databasedump redo logredo entry重做日志记录
1.转储针对特定数据块(4号文件的第10-20号数据块)修改的 redo entry
select file#,name,blocks from v$datafile;
     FILE# NAME                                                   BLOCKS
---------- -------------------------------------------------- ----------
         1 +DATA/test/datafile/system.269.829746597                89600
         2 +DATA/test/datafile/sysaux.270.829746621                76800
         3 +DATA/test/datafile/undotbs1.271.829746639              25600
         4 +DATA/test/datafile/users.273.829746667                   640

-转储 test 表第4行所在的数据块的修改记录         
SQL> select t.rowid,t.* from scott.test t;

ROWID                  DEPTNO DNAME          LOC
------------------ ---------- -------------- -------------
AAAPtpAAEAAAADbAAA         10 ACCOUNTING     NEW YORK
AAAPtpAAEAAAADbAAB         20 RESEARCH       DALLAS
AAAPtpAAEAAAADbAAC         30 SALES          CHICAGO
AAAPtpAAEAAAADbAAD         40 OPERATIONS     BOSTON  


SQL> select DBMS_ROWID.ROWID_OBJECT(rowid) as object#,
  2         DBMS_ROWID.ROWID_RELATIVE_FNO(rowid) as file#,
  3         dbms_rowid.rowid_block_number(rowid) as block#,
  4         DBMS_ROWID.ROWID_ROW_NUMBER(rowid) as row# 
  5         from scott.test;

   OBJECT#      FILE#     BLOCK#       ROW#
---------- ---------- ---------- ----------
     64361          4        219          0
     64361          4        219          1
     64361          4        219          2
     64361          4        219          3

--当前属于 current 状态的 online redo log
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1          1   10485760        512          2 YES INACTIVE                430256 25-OCT-13       450682 28-OCT-13
         2          1          2   10485760        512          2 YES INACTIVE                450682 28-OCT-13       453557 28-OCT-13
         3          1          3   10485760        512          2 NO  CURRENT                 453557 28-OCT-13   2.8147E+14
         
--修改 scott.test 表中 deptno 为 40 的记录进行测试
SQL>
select * from scott.dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> update scott.test set LOC='BEIJING' where deptno=40; 1 row updated. SQL> commit; Commit complete. SQL> select * from scott.test; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BEIJING --转储 redo entry,确保 redo log 没有切换 SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ --------- 1 1 1 10485760 512 2 YES INACTIVE 430256 25-OCT-13 450682 28-OCT-13 2 1 2 10485760 512 2 YES INACTIVE 450682 28-OCT-13 453557 28-OCT-13 3 1 3 10485760 512 2 NO CURRENT 453557 28-OCT-13 2.8147E+14 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_ ---------- ------- ------- -------------------------------------------------- --- 1 ONLINE +DATA/test/onlinelog/group_1.266.829746583 NO 1 ONLINE +FRA/test/onlinelog/group_1.261.829746585 YES 2 ONLINE +DATA/test/onlinelog/group_2.267.829746587 NO 2 ONLINE +FRA/test/onlinelog/group_2.262.829746589 YES 3 ONLINE +DATA/test/onlinelog/group_3.268.829746591 NO 3 ONLINE +FRA/test/onlinelog/group_3.263.829746593 YES 6 rows selected. SQL> alter system dump logfile '+FRA/test/onlinelog/group_3.263.829746593' dba min 4 219 dba max 4 219; System a