| 归档路径更改后,如何对数据库进行恢复? |
有时候我们可能会因为磁盘空间的原因,对归档路径进行更改,那么这个时候应如何对数据库进行恢复呢? 下面的测试: idle>drop tablespace test_dest including contents and datafiles; 表空间已丢弃。 idle>create tablespace test_dest datafile 2 'd:ora92oradataoracletest_dest01.dbf' size 5m; 表空间已创建。 idle>show parameter log_archive_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string D:ora92oradataoraclearchive idle>alter system switch logfile; 系统已更改。 idle>alter system switch logfile; 系统已更改。 idle>alter system switch logfile; 系统已更改。 idle>alter system switch logfile; 系统已更改。 idle>alter system set log_archive_dest='D:ora92oradataoraclearchive_bak' scope=both; 系统已更改。 idle>alter system switch logfile; 系统已更改。 idle>alter system switch logfile; 系统已更改。 idle>alter system switch logfile; 系统已更改。 idle>alter system switch logfile; 系统已更改。 ----切换归档路径后,再次switch logfile,使切换后的归档目录中有archive log(这样实例恢复的时候才会到此目录中去找归档日志) idle>shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 ---删除数据文件TEST_DEST01.DBF idle>startup ORACLE 例程已经启动。 Total System Global Area 80812656 bytes Fixed Size 453232 bytes Variable Size 58720256 bytes Database Buffers 20971520 bytes Redo Buffers 667648 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 6: 'D:ORA92ORADATAORACLETEST_DEST01.DBF' idle>alter database create datafile 'd:ora92oradataoracletest_dest01.dbf' as 'd:ora92oradataoracletest_dest01.dbf'; 数据库已更改。 idle>show parameter log_archive_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string D:ora92oradataoraclearchive_bak idle>recover datafile 6; ORA-00279: 更改 1417082392 (在 07/25/2006 17:36:59 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVE_BAKARC_20_1.ARC ORA-00280: 更改 1417082392 对于线程 1 是按序列 # 20 进行的 指定日志: { autoORA-00308: 无法打开存档日志 'D:ORA92ORADATAORACLEARCHIVE_BAKARC_20_1.ARC' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-00308: 无法打开存档日志 'D:ORA92ORADATAORACLEARCHIVE_BAKARC_20_1.ARC' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ---因为现在的归档日录是切换后的目录,而表空间test_dest创建信息是记录在切换之前的目录当中。 ---切换后的目录当中,找不到那些归档日志。 ---这里将归档路径修改为之前的路径. idle>alter system set log_archive_dest='D:ora92oradataoraclearchive' scope=both; 系统已更改。 idle>recover datafile 6; ORA-00279: 更改 1417082392 (在 07/25/2006 17:36:59 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVEARC_20_1.ARC ORA-00280: 更改 1417082392 对于线程 1 是按序列 # 20 进行的 指定日志: { auto ORA-00279: 更改 1417082434 (在 07/25/2006 17:37:41 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVEARC_21_1.ARC ORA-00280: 更改 1417082434 对于线程 1 是按序列 # 21 进行的 ORA-00278: 此恢复不再需要日志文件 'D:ORA92ORADATAORACLEARCHIVEARC_20_1.ARC' ORA-00279: 更改 1417082436 (在 07/25/2006 17:37:42 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVEARC_22_1.ARC ORA-00280: 更改 1417082436 对于线程 1 是按序列 # 22 进行的 ORA-00278: 此恢复不再需要日志文件 'D:ORA92ORADATAORACLEARCHIVEARC_21_1.ARC' ORA-00279: 更改 1417082440 (在 07/25/2006 17:37:48 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVEARC_23_1.ARC ORA-00280: 更改 1417082440 对于线程 1 是按序列 # 23 进行的 ORA-00278: 此恢复不再需要日志文件 'D:ORA92ORADATAORACLEARCHIVEARC_22_1.ARC' ORA-00279: 更改 1417082442 (在 07/25/2006 17:37:50 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVEARC_24_1.ARC ORA-00280: 更改 1417082442 对于线程 1 是按序列 # 24 进行的 ORA-00278: 此恢复不再需要日志文件 'D:ORA92ORADATAORACLEARCHIVEARC_23_1.ARC' ORA-00308: 无法打开存档日志 'D:ORA92ORADATAORACLEARCHIVEARC_24_1.ARC' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ---因为arc_24在切换后的归档目录中,所以找不到该归档日志。 ---再次将归档路径进行切换:idle>alter system set log_archive_dest='D:ora92oradataoraclearchive_bak' scope=both; 系统已更改。 idle>recover datafile 6;ORA-00279: 更改 1417082442 (在 07/25/2006 17:37:50 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVE_BAKARC_24_1.ARC ---- 要求接上之前的日志流。ORA-00280: 更改 1417082442 对于线程 1 是按序列 # 24 进行的 指定日志: { auto ORA-00279: 更改 1417082464 (在 07/25/2006 17:38:08 生成) 对于线程 1 是必需的 ORA-00289: 建议: D:ORA92ORADATAORACLEARCHIVE_BAKARC_25_1.ARC ORA-00280: 更改 1417082464 对于线程 1 是按序列 # 25 进行的 ORA-00278: 此恢复不再需要日志文件 'D:ORA92ORADATAORACLEARCHIVE_BAKARC_24_1.ARC' 已应用的日志。 完成介质恢复。 ---至此,恢复完成。 idle>alter database open; 数据库已更改。 idle>select file_name,status from dba_data_files where file_id = 6; FILE_NAME -------------------------------------------------------------------------------- STATUS --------- D:ORA92ORADATAORACLETEST_DEST01.DBF AVAILABLE |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/756652/viewspace-242080/ ,如需转载,请注明出处,否则将追究法律责任。