数据库的软件安装在服务器本地存储上,归档日志也保存在服务器的本地存储上,数据库的数据文件,控制文件,REDO LOG文件,密码文件,SPFILE都保存在磁盘存储阵列上。
数据库使用RMAN进行备份,备份集保存在磁盘存储阵列上,每天两次将RMAN备份集拷贝到异地。
RMAN 备份的元数据(METADATA)信息保存在数据库控制文件中,没有使用CATALOG库进行登记管理,保留的时间参数(control_file_record_keep_time)设定为缺省的7天。
RMAN的备份设置中,没有打开控制文件的自动备份。
由于磁盘存储阵列的突然崩溃,所有存储在磁盘阵列上的数据都无法恢复。目前只能找到一个很旧的控制文件,不含有最近的RMAN备份元数据;最新的RMAN备份集;连续的归档日志。
很庆幸,现实中没有发生这个灾难事件,我们做了下面的试验,模拟该事件的发生,并制定完整的数据库恢复方案与详细的操作步骤。
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库...
下面就可以开始进行具体的灾难模拟和灾难恢复操作了.
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: {
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文件中的内容将随之丢失无法恢复。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1038406/ ,如需转载,请注明出处,否则将追究法律责任。