舊控制檔案的不完全恢復(sqlplus工具)

尛樣兒發表於2012-04-28
        這篇文章討論的是使用sqlplus工具完成舊控制檔案的不完全恢復,大部分的操作都和使用RMAN工具是相同的,請參考文章:http://space.itpub.net/23135684/viewspace-722050 ,只是在recover的時候有所區別。

1.使用sqlplus工具完成恢復操作。

SQL> recover database;
ORA-00283: 恢復會話因錯誤而取消
ORA-01610: 使用 BACKUP CONTROLFILE 選項的恢復必須已完成

        非最新的控制檔案(控制檔案中的資料庫SCN小於資料檔案頭中的SCN-"啟動SCN")在執行恢復操作的時候都需要使用backup controlfile選項。

SQL> recover database using backup controlfile;
ORA-00279: 更改 2710229 (在 04/22/2012 17:23:15 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_22\O1_MF_1_2721_7S7P9N
Y3_.ARC
ORA-00280: 更改 2710229 (用於執行緒 1) 在序列 #2721 中


指定日誌: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 2710944 (在 04/22/2012 18:10:58 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_1_7SB4QJBM_
.ARC
ORA-00280: 更改 2710944 (用於執行緒 1) 在序列 #1 中
ORA-00278: 此恢復不再需要日誌檔案
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_22\O1_MF_1_2721_7S7P9
NY3_.ARC'


ORA-00279: 更改 2734329 (在 04/23/2012 15:46:34 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_2_7SB4QJV5_
.ARC
ORA-00280: 更改 2734329 (用於執行緒 1) 在序列 #2 中
ORA-00278: 此恢復不再需要日誌檔案
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_1_7SB4QJBM
_.ARC'


ORA-00279: 更改 2736148 (在 04/23/2012 16:29:36 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_24\O1_MF_1_1_7SD4W9OM_
.ARC
ORA-00280: 更改 2736148 (用於執行緒 1) 在序列 #1 中
ORA-00278: 此恢復不再需要日誌檔案
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_2_7SB4QJV5
_.ARC'


ORA-00279: 更改 2758812 (在 04/24/2012 10:44:24 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_26\O1_MF_1_2_7SKBF0V6_
.ARC
ORA-00280: 更改 2758812 (用於執行緒 1) 在序列 #2 中
ORA-00278: 此恢復不再需要日誌檔案
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_24\O1_MF_1_1_7SD4W9OM
_.ARC'


ORA-00279: 更改 2790212 (在 04/26/2012 09:49:20 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_3_7SPV285B_
.ARC
ORA-00280: 更改 2790212 (用於執行緒 1) 在序列 #3 中
ORA-00278: 此恢復不再需要日誌檔案
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_26\O1_MF_1_2_7SKBF0V6
_.ARC'


ORA-00279: 更改 2826163 (在 04/28/2012 12:04:23 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_4_%U_.ARC
ORA-00280: 更改 2826163 (用於執行緒 1) 在序列 #4 中
ORA-00278: 此恢復不再需要日誌檔案
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_3_7SPV285B
_.ARC'


ORA-00308: 無法開啟歸檔日誌
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_4_%U_.ARC'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。

        這裡無法開啟的實際是聯機Redo日誌檔案,sqlplus工具無法正確的找到這個檔案,下面手動指定這個檔案。

SQL> recover database using backup controlfile;
ORA-00279: 更改 2826163 (在 04/28/2012 12:04:23 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_4_%U_.ARC
ORA-00280: 更改 2826163 (用於執行緒 1) 在序列 #4 中


指定日誌: {=suggested | filename | AUTO | CANCEL}
D:\app\oracle\oradata\orcl\REDO01.LOG
已應用的日誌。
完成介質恢復。
SQL>

        sqlplus使用舊的控制檔案執行不完全恢復需要指定using backup controlfile關鍵字,該關鍵字表示的是該恢復操作使用的是備份的、舊的控制檔案執行的恢復操作。
        指定完聯機控制檔案後,資料庫就恢復到了最新的狀態,但利用最新的控制檔案恢復都屬於不完全恢復,必須用resetlogs才能開啟資料庫,原因在於儲存在控制檔案中的資料庫檢查點SCN一直未被更新。

2.開啟資料庫。

SQL> alter database open resetlogs;

資料庫已更改。


結論:
        從上面的實驗不難看出,使用sqlplus工具做恢復比使用rman做恢復更加的複雜,rman是一個非常智慧的資料庫恢復工具,推薦使用該工具完成資料庫的還原和恢復操作。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-722450/,如需轉載,請註明出處,否則將追究法律責任。

相關文章