Oracle 10g恢復(fù)試驗(yàn)地兩種方法
今天看了Oracle 10g的閃回?cái)?shù)據(jù)庫(kù)特性,,書(shū)上說(shuō)不能完成刪除一個(gè)表空間并用resetlogs恢復(fù),其實(shí)這也就是說(shuō)如果改變了數(shù)據(jù)庫(kù)的結(jié)構(gòu),,是不能閃回的,,只能閃回邏輯修改,但我還是做了一個(gè)實(shí)驗(yàn),。
我刪除了一個(gè)表空間,,再用數(shù)據(jù)庫(kù)閃回,發(fā)現(xiàn)不能打開(kāi)數(shù)據(jù)庫(kù),打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候提示datafile 7這個(gè)文件offline,,如果resetlogs就會(huì)丟失這個(gè)文件,,于是我就用RMAN進(jìn)行恢復(fù),也就是要恢復(fù)到一個(gè)以前的時(shí)間,,用的是UNTIL TIME這個(gè)語(yǔ)法,,但在RESTORE就出錯(cuò)了,告訴不能恢復(fù)控制文件,,在那個(gè)時(shí)間點(diǎn)確實(shí)沒(méi)有備份控制文件,,但數(shù)據(jù)文件已經(jīng)全部恢復(fù)了,其實(shí)就是控制文件所記錄的SCN與數(shù)據(jù)文件的SCN不一致,,數(shù)據(jù)庫(kù)不能打開(kāi),,也就是控制文件比數(shù)據(jù)文件新,我想到兩個(gè)辦法,,一個(gè)是重建控制文件,,用resetlogs選項(xiàng),,一個(gè)是再往前面恢復(fù),恢復(fù)一個(gè)在這之前的控制文件,,我RMAN的controlfile autoback為on,,控制文件都有備份。我采取了第二種辦法,。 第一種,,重建控制文件用resetlogs選項(xiàng),新的控制文件的SCN是從數(shù)據(jù)文件中讀取,,再recover database until cancel ,。 第二種辦法還是一個(gè)跨resetlogs時(shí)間點(diǎn)恢復(fù),因?yàn)樽蛱煳易鰧?shí)驗(yàn)曾今用resetlogs打開(kāi)過(guò)數(shù)據(jù)庫(kù),,所以,,我在恢復(fù)控制文件后,還RESET DATABASE to incarnation n,進(jìn)行對(duì)應(yīng)物的轉(zhuǎn)換,,不然RMAN會(huì)報(bào)
最后,,進(jìn)行recover database 后,數(shù)據(jù)成功恢復(fù) 記錄下過(guò)程,,以后好參考 我還是該把中間結(jié)果保存下來(lái),。 哦,還有,,RMAN的controlfile autoback不僅在備份的時(shí)候會(huì)自動(dòng)備份控制文件,而且在數(shù)據(jù)庫(kù)結(jié)構(gòu)改變時(shí)也會(huì)自動(dòng)備份,,這是有 SERVER PROCESS完成,,具體看
|
|