oracle备份信息在控制文件丢失,恢复之利用备份在所有控制文件丢失情况下恢复(一)...
如果全部控制文件丟失,但是包含以前控制文件的備份,這時(shí)可以利用備份的控制文件進(jìn)行恢復(fù),不過(guò)在恢復(fù)后需要以RESETLOGS方式打開(kāi)數(shù)據(jù)庫(kù)。
根據(jù)聯(lián)機(jī)重做日志文件是否可用和數(shù)據(jù)文件是否是最新的可以分為四種不同情況,這篇文章描述的是,聯(lián)機(jī)重做日志可用,且數(shù)據(jù)文件是最新的情況。
一般重做日志全部丟失的話,數(shù)據(jù)庫(kù)肯定會(huì)馬上關(guān)閉。本測(cè)試為了模擬聯(lián)機(jī)日志中包含待恢復(fù)數(shù)據(jù)的情況,在后臺(tái)運(yùn)行存儲(chǔ)過(guò)程插入數(shù)據(jù)時(shí),在另外的session使用SHUTDOWN ABORT關(guān)閉數(shù)據(jù)庫(kù)。
SQL> CONN /@TEST AS SYSDBA
已連接。
SQL> SHUTDOWN ABORT
ORACLE 例程已經(jīng)關(guān)閉。
數(shù)據(jù)庫(kù)關(guān)閉后刪除所有控制文件。
SQL> HOST DEL F:ORACLEORADATATEST*.CTL
然后利用備份的控制文件進(jìn)行恢復(fù)
SQL> HOST COPY F:ORACLEBACKUPTEST20060215*.CTL F:ORACLEORADATATEST
SQL> STARTUP MOUNT
ORACLE 例程已經(jīng)啟動(dòng)。
Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
數(shù)據(jù)庫(kù)裝載完畢。
利用備份的控制文件啟動(dòng),需要使用USING BACKUP CONTROLFILE語(yǔ)句。
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL
ORA-00279: 更改 45609576 (在 02/15/2006 19:28:34 生成) 對(duì)于線程 1 是必需的
ORA-00289: 建議: F:ORACLEORADATATESTARCHIVEARC00059.001
ORA-00280: 更改 45609576 對(duì)于線程 1 是按序列 # 59 進(jìn)行的
指定日志: {=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: 更改 45610708 (在 02/16/2006 01:35:15 生成) 對(duì)于線程 1 是必需的
ORA-00289: 建議: F:ORACLEORADATATESTARCHIVEARC00060.001
ORA-00280: 更改 45610708 對(duì)于線程 1 是按序列 # 60 進(jìn)行的
ORA-00278: 此恢復(fù)不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00059.001'
ORA-00279: 更改 45610901 (在 02/16/2006 01:36:55 生成) 對(duì)于線程 1 是必需的
ORA-00289: 建議: F:ORACLEORADATATESTARCHIVEARC00061.001
ORA-00280: 更改 45610901 對(duì)于線程 1 是按序列 # 61 進(jìn)行的
ORA-00278: 此恢復(fù)不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00060.001'
ORA-00279: 更改 45612925 (在 02/16/2006 01:39:10 生成) 對(duì)于線程 1 是必需的
ORA-00289: 建議: F:ORACLEORADATATESTARCHIVEARC00062.001
ORA-00280: 更改 45612925 對(duì)于線程 1 是按序列 # 62 進(jìn)行的
ORA-00278: 此恢復(fù)不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00061.001'
ORA-00308: 無(wú)法打開(kāi)存檔日志 'F:ORACLEORADATATESTARCHIVEARC00062.001'
ORA-27041: 無(wú)法打開(kāi)文件
OSD-04002: 無(wú)法打開(kāi)文件
O/S-Error: (OS 2) 系統(tǒng)找不到指定的文件。
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現(xiàn)如下錯(cuò)誤
ORA-01194: 文件1需要更多的恢復(fù)來(lái)保持一致性
ORA-01110: 數(shù)據(jù)文件 1: 'F:ORACLEORADATATESTSYSTEM01.DBF'
最后出現(xiàn)的錯(cuò)誤是由于SHUTDOWN ABORT后,使用備份的控制文件造成的。Oracle需要應(yīng)用當(dāng)前的重做日志文件來(lái)進(jìn)行恢復(fù),但是由于使用了備份的控制文件,備份之后的歸檔日志信息丟失,因此,這時(shí)需要手工輸入需要恢復(fù)的聯(lián)機(jī)重做日志文件。
其實(shí)這個(gè)時(shí)候是可以通過(guò)REDO的循環(huán)使用推斷出最后需要使用的聯(lián)機(jī)日志的。
SQL> SELECT GROUP#, SEQUENCE#, STATUS FROM V$LOG;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 59 CURRENT
2 57 INACTIVE
3 58 INACTIVE
這時(shí)已經(jīng)可以推斷GROUP2將是60,GROUP3是61,而GROUP1則是62。不過(guò)在輸入重做日志進(jìn)行恢復(fù)時(shí),即使輸入錯(cuò)文件也沒(méi)有關(guān)系,Oracle會(huì)提示錯(cuò)誤。如果輸入正確的重做日志,則Oracle會(huì)完成介質(zhì)恢復(fù)。
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL
ORA-00279: 更改 45612925 (在 02/16/2006 01:39:10 生成) 對(duì)于線程 1 是必需的
ORA-00289: 建議: F:ORACLEORADATATESTARCHIVEARC00062.001
ORA-00280: 更改 45612925 對(duì)于線程 1 是按序列 # 62 進(jìn)行的
指定日志: {=suggested | filename | AUTO | CANCEL}
F:ORACLEORADATATESTREDO03.LOG
ORA-00310: 存檔日志包含序列 61;要求序列 62
ORA-00334: 歸檔日志: 'F:ORACLEORADATATESTREDO03.LOG'
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現(xiàn)如下錯(cuò)誤
ORA-01194: 文件1需要更多的恢復(fù)來(lái)保持一致性
ORA-01110: 數(shù)據(jù)文件 1: 'F:ORACLEORADATATESTSYSTEM01.DBF'
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL
ORA-00279: 更改 45612925 (在 02/16/2006 01:39:10 生成) 對(duì)于線程 1 是必需的
ORA-00289: 建議: F:ORACLEORADATATESTARCHIVEARC00062.001
ORA-00280: 更改 45612925 對(duì)于線程 1 是按序列 # 62 進(jìn)行的
指定日志: {=suggested | filename | AUTO | CANCEL}
F:ORACLEORADATATESTREDO01.LOG
已應(yīng)用的日志。
完成介質(zhì)恢復(fù)。
SQL> ALTER DATABASE OPEN RESETLOGS;
數(shù)據(jù)庫(kù)已更改。
恢復(fù)到這里已經(jīng)完成,現(xiàn)在需要做的是馬上進(jìn)行數(shù)據(jù)庫(kù)的備份。
總結(jié)
以上是生活随笔為你收集整理的oracle备份信息在控制文件丢失,恢复之利用备份在所有控制文件丢失情况下恢复(一)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu 18.04 ip固定
- 下一篇: jasperreport转成html,J