ITPub博客

首页 > 数据库 > Oracle > 使用RMAN备份集和过时的控制文件进行数据库的恢复(1/2)

使用RMAN备份集和过时的控制文件进行数据库的恢复(1/2)

原创 Oracle 作者:djb1008 时间:2010-09-15 19:16:19 0 删除 编辑

  1. 环境描述

数据库的软件安装在服务器本地存储上,归档日志也保存在服务器的本地存储上,数据库的数据文件,控制文件,REDO LOG文件,密码文件,SPFILE都保存在磁盘存储阵列上。

数据库使用RMAN进行备份,备份集保存在磁盘存储阵列上,每天两次将RMAN备份集拷贝到异地。

RMAN 备份的元数据(METADATA)信息保存在数据库控制文件中,没有使用CATALOG库进行登记管理,保留的时间参数(control_file_record_keep_time)设定为缺省的7天。

RMAN的备份设置中,没有打开控制文件的自动备份。

由于磁盘存储阵列的突然崩溃,所有存储在磁盘阵列上的数据都无法恢复。目前只能找到一个很旧的控制文件,不含有最近的RMAN备份元数据;最新的RMAN备份集;连续的归档日志。

很庆幸,现实中没有发生这个灾难事件,我们做了下面的试验,模拟该事件的发生,并制定完整的数据库恢复方案与详细的操作步骤。

  1. 试验环境的准备

[@more@]

2.1 数据库冷备份

C:>SET ORACLE_SID=AIDU;

C:>SQLPLUS /NOLOG

SQL>CONN / AS SYSDBA

SQL>SHUTDOWN IMMEDIATE;

将数据库目录的所有文件拷贝到冷备份目录

COPY C:ORADATAAIDU*.* C:ORADATAAIDUaidu_cool_bak_2006-06-23

2.2 删除所有的历史归档日志文件和所有旧的RMAN备份集

在冷备份完成以后,删除归档日志文件和RMAN备份集,因为这些文件已经不再需要,或者说我们不需要恢复到冷备份以前的状态,为了简化试验环境,在试验前将这些文件删除,以免干扰本次试验。

这些删除都是OS下手工删除文件。

删除所有的历史归档日志文件和RMAN备份集,以免干扰本次试验。

记录数据库起始的SCN。

2.3 记录数据库起始的SCN

C:>SQLPLUS /NOLOG

SQL>CONN / AS SYSDBA;

SQL>STARTUP;

SQL> select file#,name,checkpoint_change#,sysdate from v$datafile order by file#

FILE# NAME CHECKPOINT_CHANGE# SYSDATE

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

1 C:ORADATAAIDUSYSTEM01.DBF 1220663 2006-06-23 14:16:27

2 C:ORADATAAIDUUNDOTBS01.DBF 1220663 2006-06-23 14:16:27

3 C:ORADATAAIDUSYSAUX01.DBF 1220663 2006-06-23 14:16:27

4 C:ORADATAAIDUUSERS01.DBF 1220663 2006-06-23 14:16:27

SQL> select sysdate,dbid,db_unique_name,checkpoint_change# from v$database;

SYSDATE DBID DB_UNIQUE_NAME CHECKPOINT_CHANGE#

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

2006-06-2314:16:27 451307475 aidu 1220663

2.4 准备数据库测试对象数据

检查存在TEST02,TEST03表,每个表两条记录.

SQL> conn aidu/aidu

SQL> select count(1) from test02;

COUNT(1)

2

SQL> select count(1) from test03;

COUNT(1)

2

创建TEST_BEFORE_BAK 表,并向其中插入524288

SQL> create table test_before_bak as select * from test02;

Table created.

SQL> INSERT INTO TEST_BEFORE_BAK SELECT * FROM TEST_BEFORE_BAK;

2 rows created.

SQL> INSERT INTO TEST_BEFORE_BAK SELECT * FROM TEST_BEFORE_BAK;

4 rows created.

重复执行这个语句多次,最后在TEST_BEFORE_BAK 表中插入524288条记录.

SQL> INSERT INTO TEST_BEFORE_BAK SELECT * FROM TEST_BEFORE_BAK;

262144 rows created.

SQL> COMMIT;

Commit complete.

SQL> SELECT COUNT(1) FROM TEST_BEFORE_BAK;

COUNT(1)

524288

SQL> alter system switch logfile;

System altered.

2.5 记录RMAN全备份前的数据库SCN

SQL> select sysdate,dbid,db_unique_name,checkpoint_change# from v$database;

SYSDATE DBID DB_UNIQUE_NAME CHECKPOINT_CHANGE#

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

2006-06-23 14:31:50 451307475 aidu 1221932

SQL> select file#,name,checkpoint_change#,sysdate from v$datafile order by file#;

FILE# NAME CHECKPOINT_CHANGE# SYSDATE

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

1 C:ORADATAAIDUSYSTEM01.DBF 1221932 2006-06-23 14:31:58

2 C:ORADATAAIDUUNDOTBS01.DBF 1221932 2006-06-23 14:31:58

3 C:ORADATAAIDUSYSAUX01.DBF 1221932 2006-06-23 14:31:58

4 C:ORADATAAIDUUSERS01.DBF 1221932 2006-06-23 14:31:58

此时查看一下日志归档的情况:

SQL>select name,sequence#,first_change#,next_change#,status from v$archived_log

order by sequence#

NAME SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# STSTUS

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

C:ORADATAFLASH_RECOVERY_AREA 7 1218584 1221932 A

AIDUARCHIVELOG2006_06_23O1

_MF_1_7_29Q2KNG5_.ARC

C:ORADATAFLASH_RECOVERY_AREA 8 1221932 1222099 A

AIDUARCHIVELOG2006_06_23O1

_MF_1_8_29Q2KWYR_.ARC

C:ORADATAFLASH_RECOVERY_AREA 9 1222099 1222206 A

AIDUARCHIVELOG2006_06_23O1

_MF_1_9_29Q2POVC_.ARC

2.6 RMAN配置管理与RMAN全备份

2.6.1 登陆RMAN

C:Documents and SettingsAdministrator>set nls_lang=AMERICAN_AMERICA.ZHS16GBK

C:Documents and SettingsAdministrator>rman target /

connected to target database: AIDU (DBID=451307475)

2.6.2 显示RMAN当前配置

RMAN> show all;

using target database control file instead of recovery catalog

RMAN configuration parameters are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLEPRODUCT10.2.0DB_1DATABASESNCFAIDU.ORA'; # default

2.6.3 建议调整RMAN的配置,设定为CONTROLFILE 自动备份,RMAN 备份集为压缩备份

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;

本次试验的情况是CONTROLFILE的自动备份没有打开,所以恢复时无法在RMAN备份中找到CONTROLFILE的复本 。

2.6.4 检查并标记过期或者丢失的归档日志,RMAN备份集信息,并删除这些元数据

RMAN>CROSSCHECK ARCHIVELOG ALL;

RMAN>CROSSCHECK BACKUP;

RMAN>DELETE OBSOLETE;

2.6.5 备份数据库,数据文件采用FULL方式备份,同时备份归档日志文件,并自动将已经备份到RMAN备份中的当前归档日志文件删除,以释放存储空间.

RMAN>RUN{

ALLOCATE CHANNEL D1 TYPE DISK;

BACKUP FULL DATABASE PLUS ARCHIVELOG;

RELEASE CHANNEL D1;}

2.6.6 查看RMAN备份集的情况.

RMAN> list backup;

List of Backup Sets

===================

BS Key Type LV Size Device Type Elapsed Time Completion Time

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

4 Full 157.85M DISK 00:01:03 2006-06-23 14:52:31

BP Key: 4 Status: AVAILABLE Compressed: YES Tag: TAG20060623T145128

Piece Name: C:ORADATAFLASH_RECOVERY_AREAAIDUBACKUPSET2006_06_23O1_MF_NNNDF_TAG20060623T145128_29Q3VKC7_.BKP

List of Datafiles in backup set 4

File LV Type Ckp SCN Ckp Time Name

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

1 Full 1222932 2006-06-23 14:51:28 C:ORADATAAIDUSYSTEM01.DBF

2 Full 1222932 2006-06-23 14:51:28 C:ORADATAAIDUUNDOTBS01.DBF

3 Full 1222932 2006-06-23 14:51:28 C:ORADATAAIDUSYSAUX01.DBF

4 Full 1222932 2006-06-23 14:51:28 C:ORADATAAIDUUSERS01.DBF

BS Key Type LV Size Device Type Elapsed Time Completion Time

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

5 Full 7.11M DISK 00:00:03 2006-06-23 14:57:45

BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20060623T145742

Piece Name: C:ORADATAFLASH_RECOVERY_AREAAIDUAUTOBACKUP2006_06_23O1_MF_S_593881062_29Q477VT_.BKP

Control File Included: Ckp SCN: 1223098 Ckp time: 2006-06-23 14:57:42

SPFILE Included: Modification time: 2006-06-23 14:08:16

此时检查看到: 所有的归档日志文件都被RMAN自动删除了.

2.7 记录RMAN全备份后的数据库SCN

RMAN 备份完成后,在SQLPLUS 中查看数据库的SCN状态.数据库与数据文件的SCN号不一样,主要是因为没有全库执行CHECKPOINT.

SQL> select sysdate,dbid,db_unique_name,checkpoint_change# from v$database;

SYSDATE DBID DB_UNIQUE_NAME CHECKPOINT_CHANGE#

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

2006-06-23 15:10:04 451307475 aidu 1222845

SQL> select file#,name,checkpoint_change#,sysdate from v$datafile order by file#;

FILE# NAME CHECKPOINT_CHANGE# SYSDATE

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

1 C:ORADATAAIDUSYSTEM01.DBF 1222932 2006-06-23 15:10:35

2 C:ORADATAAIDUUNDOTBS01.DBF 1222932 2006-06-23 15:10:35

3 C:ORADATAAIDUSYSAUX01.DBF 1222932 2006-06-23 15:10:35

4 C:ORADATAAIDUUSERS01.DBF 1222932 2006-06-23 15:10:35

2.8 全备份后,进行数据插入和日志切换操作

SQL> conn aidu/aidu

SQL> create table test_after_bak as select * from test_before_BAK;

SQL> CONN / AS SYSDBA

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER SYSTEM CHECKPOINT;

System altered.

SQL> select sysdate,dbid,db_unique_name,checkpoint_change# from v$database;

SYSDATE DBID DB_UNIQUE_NAME CHECKPOINT_CHANGE#

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

2006-06-23 15:15:01 451307475 aidu 1224200

SQL> select file#,name,checkpoint_change#,sysdate from v$datafile order by file#;

FILE# NAME CHECKPOINT_CHANGE# SYSDATE

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

1 C:ORADATAAIDUSYSTEM01.DBF 1224200 2006-06-23 15:15:05

2 C:ORADATAAIDUUNDOTBS01.DBF 1224200 2006-06-23 15:15:05

3 C:ORADATAAIDUSYSAUX01.DBF 1224200 2006-06-23 15:15:05

4 C:ORADATAAIDUUSERS01.DBF 1224200 2006-06-23 15:15:05

SQL> select name,SEQUENCE#,first_change#,next_change#,status from v$archived_log where status='A'

NAME SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# S

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

C:ORADATAFLASH_RECOVERY_AREA 11 1222845 1223979 A

AIDUARCHIVELOG2006_06_23O1

_MF_1_11_29Q52LG5_.ARC

C:ORADATAFLASH_RECOVERY_AREA 12 1223979 1224186 A

AIDUARCHIVELOG2006_06_23O1

_MF_1_12_29Q567DP_.ARC

SQL>SHUTDOWN IMMEDIATE;

2.9 总结

这个时候我们已经准备好了试验环境.

冷备-->插入表1-->全备份-->插入表2-->归档切换-->down库...

下面就可以开始进行具体的灾难模拟和灾难恢复操作了.

  1. 灾难模拟与灾难恢复

3.1 灾难模拟

删除数据库数据文件目录下的所有文件,模拟服务器的盘柜出现故障,盘柜无法访问,所有的数据文件、控制文件丢失,数据库无法访问。

C:>DELETE C:ORADATAAIDU*.*

本次模拟的情况是有一份旧的控制文件和一份RMAN全备份集,RMAN 全备份后连续的归档日志文件。

3.2 灾难恢复

3.2.1 控制文件的恢复

COPY C:oradataaidu_cool_bak_2006-06-23CON*.CTL C:ORADATAAIDU

在这个环节我们也可以通过建控制的脚本,手工创建一个空白的控制文件.生成创建控制文件的脚本可以通过SQL语句'alter database bakcup control to trace',然后去编辑trace文件就可以生成control的创建脚本.control文件的脚本范例见最后的附件内容.

3.2.2清除控制文件中的RMAN元数据

C:>RMAN TARGET /

RMAN>STARTUP MOUNT;

RMAN>LIST BACKUP; ##可以看到有很多旧的备份集情况,但这些文件已经不存在了.

RMAN>CROSSCHECK BACKUP;

RMAN>CROSSCHECK ARCHIVELOG ALL;

RMAN>DELETE OBSOLETE;

RMAN>DELETE EXPIRED BACKUPSET;

RMAN>DELETE EXPIRED ARCHIVELOG ALL;

RMAN>LIST BACKUP; ##没有备份集显示了.

3.2.3 登记RMAN备份集和当前归档日志目录信息到控制文件中

RMAN>CATALOG START WITH 'C:oradataflash_recovery_areaAIDUBACKUPSET2006_06_23';

searching for all files that match the pattern C:oradataflash_recovery_areaAIDUBACKUPSET2006_06_23

List of Files Unknown to the Database

=====================================

File Name: C:ORADATAFLASH_RECOVERY_AREAAIDUBACKUPSET2006_06_23O1_MF_NNNDF_TAG20060623T145128_29Q3VKC7_.BKP

Do you really want to catalog the above files (enter YES or NO)? YES

cataloging files...

cataloging done

List of Cataloged Files

=======================

File Name: C:ORADATAFLASH_RECOVERY_AREAAIDUBACKUPSET2006_06_23O1_MF_NNNDF_TAG20060623T145128_29Q3VKC7_.BKP

RMAN> CATALOG START WITH 'C:oradataflash_recovery_areaAIDUARCHIVELOG2006_06_23';

searching for all files that match the pattern C:oradataflash_recovery_areaAIDUARCHIVELOG2006_06_23

List of Files Unknown to the Database

=====================================

File Name: C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_11_29Q52LG5_.ARC

File Name: C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_12_29Q567DP_.ARC

Do you really want to catalog the above files (enter YES or NO)? YES

cataloging files...

cataloging done

List of Cataloged Files

=======================

File Name: C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_11_29Q52LG5_.ARC

File Name: C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_12_29Q567DP_.ARC

RMAN> list archivelog all;

List of Archived Log Copies

Key Thrd Seq S Low Time Name

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

28 1 11 A 2006-06-23 14:49:35 C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_11_29Q52LG5_.ARC

29 1 12 A 2006-06-23 15:12:18 C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_12_29Q567DP_.ARC

3.2.4 配置RMAN 参数

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

3.2.5 使用RMAN 进行RESTORE,恢复数据文件(DATA FILES)

RMAN> run{

2> allocate channel d1 type disk;

3> restore database;

4> release channel d1;}

allocated channel: d1

channel d1: sid=47 devtype=DISK

Starting restore at 2006-06-23 15:47:04

channel d1: starting datafile backupset restore

channel d1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to C:ORADATAAIDUSYSTEM01.DBF

restoring datafile 00002 to C:ORADATAAIDUUNDOTBS01.DBF

restoring datafile 00003 to C:ORADATAAIDUSYSAUX01.DBF

restoring datafile 00004 to C:ORADATAAIDUUSERS01.DBF

channel d1: reading from backup piece C:ORADATAFLASH_RECOVERY_AREAAIDUBACKUPSET2006_06_23O1_MF_NNNDF_TAG20060623T145128_29Q3VKC7_.BKP

channel d1: restored backup piece 1

piece handle=C:ORADATAFLASH_RECOVERY_AREAAIDUBACKUPSET2006_06_23O1_MF_NNNDF_TAG20060623T145128_29Q3VKC7_.BKP tag=TAG20060623T145128

channel d1: restore complete, elapsed time: 00:01:25

Finished restore at 2006-06-23 15:48:30

released channel: d1

3.2.6 在SQLPLUS 中查询当前的数据文件的SCN 和DATABASE 的SCN

可以看到SCN 号为冷备份的SCN,因为我们此时使用的是冷备份的控制文件作为旧的控制文件,并使用它进行RMAN的恢复操作。

SQL> select file#,name,checkpoint_change#,sysdate from v$datafile order by file#

FILE# NAME CHECKPOINT_CHANGE# SYSDATE

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

1 C:ORADATAAIDUSYSTEM01.DBF 1220662 2006-06-23 15:51:40

2 C:ORADATAAIDUUNDOTBS01.DBF 1220662 2006-06-23 15:51:40

3 C:ORADATAAIDUSYSAUX01.DBF 1220662 2006-06-23 15:51:40

4 C:ORADATAAIDUUSERS01.DBF 1220662 2006-06-23 15:51:40

SQL>select sysdate,dbid,db_unique_name,checkpoint_change# from v$database;

SYSDATE DBID DB_UNIQUE_NAME CHECKPOINT_CHANGE#

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

2006-06-23 15:53:26 451307475 aidu 1220662

3.2.7 使用RMAN 进行RECOVER操作

结果是失败的。RMAN在RECOVER时报DATAFILE 1 必须先RESTORE,(注意:先前我们已经做了该文件的RESTORE了),主要是因为数据文件头的SCN 与当前控制文件的头的SCN是不相同的,同时找不到两个SCN之间的归档日志文件,用于恢复操作以同步SCN。

RMAN> RUN{

2> ALLOCATE CHANNEL D1 TYPE DISK;

3> RECOVER DATABASE;

4> RELEASE CHANNEL D1;}

allocated channel: D1

channel D1: sid=47 devtype=DISK

Starting recover at 2006-06-23 15:54:37

released channel: D1

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 06/23/2006 15:54:38

RMAN-06094: datafile 1 must be restored

3.2.8 RMAN恢复操作小结

到此,我们应该清楚的明白,单靠RMAN是不可以完成这次的灾难恢复工作了,这个时候应该考虑结合SQLPLUS 来进行数据库的恢复工作,RMAN只是完成将最新的数据文件(data files)从RMAN备份集中恢复回来,剩下的工作应该交给SQLPLUS了。

3.2.9 手工创建新的控制文件

SQL>CONN / AS SYSDBA

SQL>ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

编辑trace文件,建立生成控制文件的教本脚本文件.因为没有redo文件,所以选择resetlogs方式,文件内容见附件C:TEMPCREATE_CONTROLFILE.TXT.

SQL>SHUTDOWN IMMEDIATE;

删除数据库数据文件目录下的控制文件

SQL>host DELETE C:ORADATAAIDUCONT*.CTL

SQL>STARTUP NOMOUNT;

SQL>@C:TEMPCREATE_CONTROLFILE.TXT;

控制创建成功后,将自动将数据库启动到MOUNT状态。

SQL> SELECT OPEN_MODE,CHECKPOINT_CHANGE# FROM V$DATABASE;

OPEN_MODE CHECKPOINT_CHANGE#

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

MOUNTED 0

SQL> select file#,name,checkpoint_change#,sysdate from v$datafile order by file#;

FILE# NAME CHECKPOINT_CHANGE# SYSDATE

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

1 C:ORADATAAIDUSYSTEM01.DBF 1222932 2006-06-23 16:03:50

2 C:ORADATAAIDUUNDOTBS01.DBF 1222932 2006-06-23 16:03:50

3 C:ORADATAAIDUSYSAUX01.DBF 1222932 2006-06-23 16:03:50

4 C:ORADATAAIDUUSERS01.DBF 1222932 2006-06-23 16:03:50

注意:此时DATABASE的SCN号为0,而数据库文件的SCN号为RMAN全备份时的SCN号

3.2.10 使用SQLPLUS进行不完整恢复

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 1222932 generated at 06/23/2006 14:51:28 needed for thread 1

ORA-00289: suggestion :C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_11_%U_.ARC

ORA-00280: change 1222932 for thread 1 is in sequence #11

Specify log: {=suggested | filename | AUTO | CANCEL}

AUTO

ORA-00279: change 1223979 generated at 06/23/2006 15:12:18 needed for thread 1

ORA-00289: suggestion :C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_12_%U_.ARC

ORA-00280: change 1223979 for thread 1 is in sequence #12

ORA-00278: log file'C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_11_29Q52LG5_.ARC' no longer needed for this recovery

ORA-00279: change 1224186 generated at 06/23/2006 15:14:15 needed for thread 1

ORA-00289: suggestion :C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_13_%U_.ARC

ORA-00280: change 1224186 for thread 1 is in sequence #13

ORA-00278: log file'C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_12_29Q567DP_.ARC' no longer needed for this recovery

ORA-00308: cannot open archived log'C:ORADATAFLASH_RECOVERY_AREAAIDUARCHIVELOG2006_06_23O1_MF_1_13_%U_.ARC'

ORA-27041: unable to open file

OSD-04002: ????????????

O/S-Error: (OS 2) ??????????????????????

我们知道最后一个归档日志文件序号为12,所以报找不到序号13是正常的.

SQL>ALTER DATABASE OPEN RESETLOGS;

3.2.11 检查数据库恢复后的状态

SQL>SELECT COUNT(1) FROM AIDU.TEST_BEFORE_BAK;

COUNT(1)

----------

524288

SQL> SELECT COUNT(1) FROM AIDU.TEST_AFTER_BAK;

COUNT(1)

----------

524288

可以看到RMAN 备份前后的数据都恢复回来了,这次的试验是无法恢复REDO文件中的内容,REDO 文件随着盘阵的丢失而丢失,保存在当前REDO文件中的内容将随之丢失无法恢复。

未完,接http://djb1008.itpub.net/post/42280/505709

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1038406/ ,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2010-07-27

  • 博文量
    175
  • 访问量
    778870