WEB开发网
开发学院数据库Oracle RESETLOGS后没有备份情况下的数据恢复 阅读

RESETLOGS后没有备份情况下的数据恢复

 2007-05-08 12:10:33 来源:WEB开发网   
核心提示: (18)打开数据库,查看表demo.a,RESETLOGS后没有备份情况下的数据恢复(8),结果显示没有丢失时刻B和时刻C之间插入的数据7、8、9,SQL> alter database open;Database altered. SQL> select * from dem

(18)打开数据库,查看表demo.a,结果显示没有丢失时刻B和时刻C之间插入的数据7、8、9。

  SQL> alter database open;
Database altered. SQL> select * from demo.a;
 I
----------
 1
 2
 3 
 7
 8
 9
 
6rows selected.

(19)马上做数据库的一致备份(冷备份或热备份)。

附加说明

另外要指出,如果忘记或不能提供时刻B的准确时间,可以查看报警日志文件,搜索"change",找到系统更改号(SCN),也可在步骤(10)和步骤(16)中指定基于改变的恢复。命令格式如下:

  recover database until change integer_scn [using backup controlfile]

注:integer_scn要用整数SCN替换。

本例中,数据库TEST的报警日志文件为f:  estdump  estALRT.log,在其中找到以下片段:

  Fri Oct 04 09:57:15 2002
ALTER DATABASE RECOVER LOGFILE ' f:coolarcha_barch22.arc'
Media Recovery Log f:coolarcha_barch22.arc
Incomplete recovery done UNTIL CHANGE 690772
Media Recovery Complete
Completed: ALTER DATABASE RECOVER LOGFILE 'f:coolarcha_b
Fri Oct 04 09:59:31 2002
alter database open resetlogs
  Fri Oct 04 09:59:31 2002
RESETLOGS after incomplete recovery UNTIL CHANGE 690772
Resetting resetlogs activation ID 1770840999 (0x698ce3a7)

由此可发现恢复到时刻B(2002-10-04:09:18:52)的SCN为690772,可以在不完全恢复中指定恢复到更改号690772,如下语句所示:

  recover database until change 690773 using backup controlfile;

数据库执行过不完全恢复后,并在以RESETLOGS选项打开之前,SCN已经记录在报警日志文件中,也可以通过查询

  select RESETLOGS_CHANGE#-1 from v$database;

找到SCN,这个结果与报警日志中的SCN相同,这样就可以恢复到该SCN。

上一页  3 4 5 6 7 8 

Tags:RESETLOGS 没有 备份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接