ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle日志挖机 找到scn号 进行数据库恢复

oracle日志挖机 找到scn号 进行数据库恢复

原创 Linux操作系统 作者:maohaiqing0304 时间:2013-04-30 00:12:03 0 删除 编辑

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  --->linux

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博客 ” ,链接:https://blog.itpub.net/28602568/viewspace-759538/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
.

注册时间:2013-03-13

  • 博文量
    117
  • 访问量
    2626247