REDO log 日志挖掘数据恢复

SQL> select * from v$version;

 

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

 

SQL> select count(*) from test;

 

  COUNT(*)

----------

       100

 

SQL> set long 999

SQL> select dbms_metadata.get_ddl('TABLE','TEST') from dual;

 

DBMS_METADATA.GET_DDL('TABLE','TEST')

--------------------------------------------------------------------------------

 

  CREATE TABLE "SYS"."TEST"

   (    "ID" NUMBER(*,0),

        "AGE" NUMBER(*,0) NOT NULL ENABLE,

         PRIMARY KEY ("ID")

  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255

  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE

FAULT CELL_FLASH_CACHE DEFAULT)

  TABLESPACE "SYSTEM"  ENABLE

   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

 

DBMS_METADATA.GET_DDL('TABLE','TEST')

--------------------------------------------------------------------------------

  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE

FAULT CELL_FLASH_CACHE DEFAULT)

  TABLESPACE "SYSTEM"

 

SQL> delete from  test;

 

100 rows deleted.

 

SQL> commit;

 

Commit complete.

 

SQL> alter system switch logfile;

 

System altered.

SQL> alter system switch logfile;

 

System altered.

SQL> alter system switch logfile;

 

System altered.

 

 

 

 

SQL> select recid,name,completion_time from v$archived_log where name not null order by 3;         //查看当前ARCHIVE LOG

 

     RECID NAME                                                                   COMPLETION_TIME

---------- ---------------------------------------------------------------------- -------------------

        50 +DATA/asm11gr2/archivelog/2013_03_21/thread_1_seq_55.319.810643001     2013-03-21 10:36:41

        51 +DATA/asm11gr2/archivelog/2013_03_21/thread_1_seq_56.317.810644341     2013-03-21 10:59:01

        52 +DATA/asm11gr2/archivelog/2013_03_21/thread_1_seq_57.318.810645283     2013-03-21 11:14:42

        53 +DATA/asm11gr2/archivelog/2013_03_21/thread_1_seq_58.312.810656927     2013-03-21 14:28:47

        54 +DATA/asm11gr2/archivelog/2013_03_21/thread_1_seq_59.311.810657029     2013-03-21 14:30:29

        55 +DATA/asm11gr2/archivelog/2013_03_21/thread_1_seq_60.310.810657051     2013-03-21 14:30:50

        56 +DATA/asm11gr2/archivelog/2013_03_21/thread_1_seq_61.293.810684065     2013-03-21 22:01:10

        57 +DATA/asm11gr2/archivelog/2013_03_22/thread_1_seq_62.281.810698403     2013-03-22 02:00:06

        58 +DATA/asm11gr2/archivelog/2013_03_22/thread_1_seq_63.325.810721773     2013-03-22 08:29:39

        59 +DATA/asm11gr2/archivelog/2013_03_22/thread_1_seq_64.335.810770403     2013-03-22 22:00:08

        60 +DATA/asm11gr2/archivelog/2013_03_22/thread_1_seq_65.336.810774041     2013-03-22 23:00:43

 

     RECID NAME                                                                   COMPLETION_TIME

---------- ---------------------------------------------------------------------- -------------------

        61 +DATA/asm11gr2/archivelog/2013_03_23/thread_1_seq_66.340.810807425     2013-03-23 08:17:08

        62 +DATA/asm11gr2/archivelog/2013_03_23/thread_1_seq_67.346.810814045     2013-03-23 10:07:29

        63 +DATA/asm11gr2/archivelog/2013_03_23/thread_1_seq_68.350.810839437     2013-03-23 17:10:40

        64 +DATA/asm11gr2/archivelog/2013_03_23/thread_1_seq_69.351.810839471     2013-03-23 17:11:10

        65 +DATA/asm11gr2/archivelog/2013_03_24/thread_1_seq_70.355.810874845     2013-03-24 03:00:48

        66 +DATA/asm11gr2/archivelog/2013_03_24/thread_1_seq_71.356.810900367     2013-03-24 10:06:11

        67 +DATA/asm11gr2/archivelog/2013_03_24/thread_1_seq_72.357.810921251     2013-03-24 15:54:14

        68 +DATA/asm11gr2/archivelog/2013_03_25/thread_1_seq_73.358.810950445     2013-03-25 00:00:47

        69 +DATA/asm11gr2/archivelog/2013_03_25/thread_1_seq_74.359.810986657     2013-03-25 10:04:19

        70 +DATA/asm11gr2/archivelog/2013_03_25/thread_1_seq_75.360.810991805     2013-03-25 11:30:09

        71 +DATA/asm11gr2/archivelog/2013_03_25/thread_1_seq_76.367.810992781     2013-03-25 11:46:24

 

     RECID NAME                                                                   COMPLETION_TIME

---------- ---------------------------------------------------------------------- -------------------

        72 +DATA/asm11gr2/archivelog/2013_03_25/thread_1_seq_77.381.811001473     2013-03-25 14:11:18

        73 +DATA/asm11gr2/archivelog/2013_03_25/thread_1_seq_78.384.811029993     2013-03-25 22:06:45

        74 +DATA/asm11gr2/archivelog/2013_03_27/thread_1_seq_79.386.811192075     2013-03-27 19:08:02

        75 +DATA/asm11gr2/archivelog/2013_03_28/thread_1_seq_80.388.811248871     2013-03-28 10:54:37

        76 +DATA/asm11gr2/archivelog/2013_03_28/thread_1_seq_81.389.811267325     2013-03-28 16:02:07

        77 +DATA/asm11gr2/archivelog/2013_03_28/thread_1_seq_82.390.811288871     2013-03-28 22:01:16

        78 +DATA/asm11gr2/archivelog/2013_03_28/thread_1_seq_83.371.811289287     2013-03-28 22:08:11

        79 +DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_84.370.811346249     2013-03-29 13:57:33

        80 +DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_85.369.811346253     2013-03-29 13:57:33

        81 +DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_86.329.811347555     2013-03-29 14:19:14

        82 +DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_87.342.811347557     2013-03-29 14:19:17

 

     RECID NAME                                                                   COMPLETION_TIME

---------- ---------------------------------------------------------------------- -------------------

        83 +DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_88.330.811347563     2013-03-29 14:19:22

 

56 rows selected.

SQL> show parameter utl_file;

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

utl_file_dir                         string      /dbsoft/oracle/dictfile

 

创建数据字典

SQL> exec dbms_logmnr_d.build(dictionary_filename => 'logmnr_dict.ora',dictionary_location => '/dbsoft/oracle/dictfile',options => dbms_logmnr_d.store_in_flat_file);

 

PL/SQL procedure successfully completed.

 

加载archive log

SQL> exec dbms_logmnr.add_logfile('+DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_86.329.811347555',options => dbms_logmnr.new)

 

PL/SQL procedure successfully completed.

 

SQL> exec dbms_logmnr.add_logfile('+DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_87.342.811347557',options => dbms_logmnr.addfile)

 

PL/SQL procedure successfully completed.

 

SQL> exec dbms_logmnr.add_logfile('+DATA/asm11gr2/archivelog/2013_03_29/thread_1_seq_88.330.811347563',options => dbms_logmnr.addfile)

 

PL/SQL procedure successfully completed.

 

//加载dictfile,启动分析

SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'/dbsoft/oracle/dictfile/logmnr_dict.ora');

 

PL/SQL procedure successfully completed.

 

 

查找segment_name

SQL> select operation,sql_redo,sql_undo from v$logmnr_contents where seg_name like '%TEST%';  

 

OPERATION  SQL_REDO                                                     SQL_UNDO

---------- ------------------------------------------------------------ ----------------------------------------------------------------------

DELETE     delete from "SYS"."TEST" where "ID" = '1' and "AGE" = '1' an insert into "SYS"."TEST"("ID","AGE") values ('1','1');

           d ROWID = 'AAASkRAABAAAU9JAAA';

 

DELETE     delete from "SYS"."TEST" where "ID" = '2' and "AGE" = '2' an insert into "SYS"."TEST"("ID","AGE") values ('2','2');

           d ROWID = 'AAASkRAABAAAU9JAAB';

 

DELETE     delete from "SYS"."TEST" where "ID" = '3' and "AGE" = '3' an insert into "SYS"."TEST"("ID","AGE") values ('3','3');

           d ROWID = 'AAASkRAABAAAU9JAAC';

 

DELETE     delete from "SYS"."TEST" where "ID" = '4' and "AGE" = '4' an insert into "SYS"."TEST"("ID","AGE") values ('4','4');

           d ROWID = 'AAASkRAABAAAU9JAAD';

 

......

 

OPERATION  SQL_REDO                                                     SQL_UNDO

---------- ------------------------------------------------------------ ----------------------------------------------------------------------

 

DELETE     delete from "SYS"."TEST" where "ID" = '97' and "AGE" = '97'  insert into "SYS"."TEST"("ID","AGE") values ('97','97');

           and ROWID = 'AAASkRAABAAAU9JABg';

 

DELETE     delete from "SYS"."TEST" where "ID" = '98' and "AGE" = '98'  insert into "SYS"."TEST"("ID","AGE") values ('98','98');

           and ROWID = 'AAASkRAABAAAU9JABh';

 

DELETE     delete from "SYS"."TEST" where "ID" = '99' and "AGE" = '99'  insert into "SYS"."TEST"("ID","AGE") values ('99','99');

           and ROWID = 'AAASkRAABAAAU9JABi';

 

 

OPERATION  SQL_REDO                                                     SQL_UNDO

---------- ------------------------------------------------------------ ----------------------------------------------------------------------

DELETE     delete from "SYS"."TEST" where "ID" = '100' and "AGE" = '100 insert into "SYS"."TEST"("ID","AGE") values ('100','100');

           ' and ROWID = 'AAASkRAABAAAU9JABj';

 

 

100 rows selected.

 

打完收工!

posted @ 2013-03-29 14:44  liangxianming  阅读(293)  评论(0编辑  收藏  举报