控制文件的恢復(fù)分兩步: 1.從備份還原; 2.用重做日志恢復(fù)。 一、有備份的控制文件恢復(fù) 控制文件按備份的時(shí)間跨度分類: 1).在線鏡像備份:當(dāng)前控制文件,即control_files初始化參數(shù)所指向的除去損壞的控制文件以外的控制文件; 2).結(jié)構(gòu)備份:控制文件備份后
控制文件的恢復(fù)分兩步:
1.從備份還原;
2.用重做日志恢復(fù)。
一、有備份的控制文件恢復(fù)
控制文件按備份的時(shí)間跨度分類:
1).在線鏡像備份:當(dāng)前控制文件,即control_files初始化參數(shù)所指向的除去損壞的控制文件以外的控制文件;
2).結(jié)構(gòu)備份:控制文件備份后,數(shù)據(jù)庫(kù)的結(jié)構(gòu)沒(méi)發(fā)生變化(例如添加刪除表空間、重做日志文件);
3).歷史備份:控制文件備份后,數(shù)據(jù)庫(kù)的結(jié)構(gòu)發(fā)生了變化。
發(fā)現(xiàn)控制文件損壞后
1.SQL>shutdown abort
2.SQL>startup
提示錯(cuò)誤ora-00205控制文件出錯(cuò)或ora-00227控制文件存在壞塊,數(shù)據(jù)庫(kù)啟動(dòng)到started狀態(tài)
3.首先看是否存在在線鏡像備份,若存在,則按以下步驟恢復(fù):
1)查看警告日志,確定哪些控制文件損壞了;
2)將正確的控制文件復(fù)制到損壞了的控制文件的位置上;
3)SQL>alter database mount;
4)SQL>alter database open;
否則,看是否存在結(jié)構(gòu)備份,若存在,按以下步驟恢復(fù):
1)進(jìn)入rman:rman target/
2)從備份中還原控制文件
RMAN>restore controlfile from autobackup;(自動(dòng)備份)
或
RMAN>restore
controlfile from '手動(dòng)備份的控制文件的位置';(手動(dòng)備份)
3)設(shè)置數(shù)據(jù)庫(kù)到mount狀態(tài)
RMAN>alter database mount;
4)介質(zhì)恢復(fù)
RMAN>recover database;
5)RMAN>alter database open resetlogs;
如果只有歷史備份:
使用歷史備份后會(huì)出現(xiàn)不一致,以下2種情況需要手動(dòng)修復(fù)不一致:
1)備份控制文件中具有某個(gè)數(shù)據(jù)文件或表空間的信息,但實(shí)際不存在
2)備份中沒(méi)有某個(gè)在線日志組的信息,但實(shí)際是存在的(在恢復(fù)時(shí)用recover database using backup controlfile在提示中輸入相應(yīng)的在線日志的路徑)
A、對(duì)于自動(dòng)修復(fù)不一致的情況,其恢復(fù)步驟與結(jié)構(gòu)備份的手動(dòng)備份相同
B、備份控制文件中具有某個(gè)數(shù)據(jù)文件或表空間的信息,但實(shí)際不存在
1)進(jìn)入rman:rman target/
2)從備份中還原控制文件
RMAN>restore controlfile from '手動(dòng)備份的控制文件的位置';(手動(dòng)備份)
3)設(shè)置數(shù)據(jù)庫(kù)到mount狀態(tài)
RMAN>alter database mount;
4)此時(shí)不能直接回復(fù)數(shù)據(jù)庫(kù),而應(yīng)使恢復(fù)操作不理睬這個(gè)丟失的數(shù)據(jù)文件或表空間
數(shù)據(jù)文件:
SQL>alter database datafile 文件號(hào) offline;(數(shù)據(jù)文件)
恢復(fù)數(shù)據(jù)庫(kù)
SQL>recover database using backup controlfile;
表空間(包括表空間內(nèi)所有數(shù)據(jù)文件):
SQL>recover database skip tablespace 表空間名;
5)RMAN>alter database open resetlogs;
二、沒(méi)有控制文件備份,但對(duì)控制文件做了追蹤備份,即有創(chuàng)建控制文件的腳本
1.SQL>shutdown abort
2.SQL>startup
提示錯(cuò)誤ora-00205控制文件出錯(cuò)或ora-00227控制文件存在壞塊,數(shù)據(jù)庫(kù)啟動(dòng)到started狀態(tài)
3.找到備份的trace文件,并將其中創(chuàng)建控制文件的腳本提取出來(lái)createctl.sql
4.執(zhí)行腳本createctl.sql
SQL>@createctl.sql
三、沒(méi)有控制文件的備份和trace備份,此時(shí)需要手工創(chuàng)建控制文件
1.SQL>shutdown abort
2.SQL>startup
提示錯(cuò)誤ora-00205控制文件出錯(cuò)或ora-00227控制文件存在壞塊,數(shù)據(jù)庫(kù)啟動(dòng)到started狀態(tài)
3.手工創(chuàng)建控制文件
最后恢復(fù)完成后記得備份控制文件
備份控制文件
ALTER DATABASE BACKUP CONTROLFILE TO 'F:\ORACLE\BACKUP\TEST.BAK';
alter database backup controlfile to trace as '目錄';--生成創(chuàng)建控制文件的腳本,可通過(guò)show parameter user_dump_dest查看。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com