oracle日誌挖機 找到scn號 進行資料庫恢復

maohaiqing0304發表於2013-04-30

Microsoft Windows XP [版本 5.1.2600]

(C) 版權所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>set ORACLE_SID=orcl2

C:\Documents and Settings\Administrator>sqlplus /  as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 12月 19 16:05:23 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

已連線到空閒例程。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area  535662592 bytes

Fixed Size                  1375792 bytes

Variable Size             247464400 bytes

Database Buffers          281018368 bytes

Redo Buffers                5804032 bytes

資料庫裝載完畢。

資料庫已經開啟。

SQL> show parameter utl_file

NAME                                 TYPE        VALUE

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

utl_file_dir                         string

SQL> alter system set utl_file_dir='E:\app\Administrator\execute' scope=spfile;

系統已更改。

SQL> show parameter utl_file

NAME                                 TYPE        VALUE

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

utl_file_dir                         string

SQL> shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area  535662592 bytes

Fixed Size                  1375792 bytes

Variable Size             247464400 bytes

Database Buffers          281018368 bytes

Redo Buffers                5804032 bytes

資料庫裝載完畢。

資料庫已經開啟。

SQL> show parameter utl_file

NAME                                 TYPE        VALUE

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

utl_file_dir                         string      E:\app\Administrator\execute

SQL> @$ORACLE_HOME/rdbms/admin/dbmslm.sql  ---&gtlinux

SQL>

SQL> @E:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslm.sql

程式包已建立。

授權成功。

同義詞已建立。

SQL> @E:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslmd.sql

程式包已建立。

同義詞已建立。

SQL> @E:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslms.sql

程式包已建立。

沒有錯誤。

授權成功。

SQL>  show parameter utl_file_dir;

NAME                                 TYPE        VALUE

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

utl_file_dir                         string      E:\app\Administrator\execute

SQL> EXECUTE dbms_logmnr_d.build('execute.ora','E:\app\Administrator\execute');

PL/SQL 過程已成功完成。

SQL> select member from v$logfile;

MEMBER

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

E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO01.LOG

E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO02.LOG

E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO03.LOG

E:\APP\ARC_ORCL2\ARC0000000000_0802005518.0001

看下當前使用的日誌‘:

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

STATUS               GROUP#  SEQUENCE#    MEMBERS

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

INACTIVE                  1          4          1

CURRENT                   2          5          1

INACTIVE                  3          3          1

SQL> select member,group# from v$logfile;

MEMBER                   GROUP#

E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO01.LOG      1

E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO02.LOG      2

E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO03.LOG      3

E:\APP\ARC_ORCL2\ARC0000000000_0802005518.0001      4

SQL> execute dbms_logmnr.add_logfile(logfilename=>'E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO03.LOG',options=>dbms_logmnr.new);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile(logfilename=>'E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO02.LOG',options=>dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile(logfilename=>'E:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO01.LOG',options=>dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile(logfilename=>'E:\APP\ARC_ORCL2\ARC0000000000_08020051',options=>dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'E:\app\Administrator\execute\execute.ora');

PL/SQL 過程已成功完成。

SQL> select scn,sql_redo from v$logmnr_contents where seg_owner='S' and sql_redo like 'delete from �_PROD_LSBI_LSDT_REL%' and sql_redo not like '%PROD_ID%';

       SCN               SQL_REDO

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

   2090924               delete from "S"."BD_PROD_LSBI_LSDT_REL" where ROWID = 'AAASj0AAEAAAAPyAA2';

 

要是生產庫,一定不能shutdown 只能透過rman全備到自己機器,之後恢復知道的scn找回丟失

SQL> shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> startup mount

ORACLE 例程已經啟動。

Total System Global Area  535662592 bytes

Fixed Size                  1375792 bytes

Variable Size             314573264 bytes

Database Buffers          213909504 bytes

Redo Buffers                5804032 bytes

資料庫裝載完畢。

SQL> recover database until change 2090924;

完成介質恢復。

SQL> alter database open;

alter database open

*

第 1 行出現錯誤:

ORA-01589: 要開啟資料庫則必須使用 RESETLOGS 或 NORESETLOGS 選項

SQL> alter database open resetlogs;

資料庫已更改。

SQL> conn s/s

已連線。

SQL> 查詢表是否存在

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-759538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章