控制檔案快照和rman利用快照恢復
Oracle中有對控制檔案快照,windows中預設的儲存在oracle_homedatabasesncf
當rman需要同步控制檔案資訊或者備份當前控制檔案時,控制檔案快照會自動備份。
Rman target /
Rman>backup current controlfile format ‘d:control.ctl’;
可以檢視具體的控制檔案和控制檔案快照備份資訊
Windows下直接可以直接檢視備份的控制檔案屬性檢視和控制檔案快照的預設位置查詢。Linux下可以ls檢視具體的控制檔案備份集和會控制檔案快照的檔案資訊,由於是在我的windows伺服器下測試,發現此時控制檔案快照的修改時間比控制檔案備份的時間早,也正好驗證:在rman備份控制檔案後,rman進行更新控制檔案的快照。(循序漸進中提到備份控制檔案之前更新快照資訊,但是測試發現快照的更新時間是在備份控制檔案之後的。)
快照的生成還和rman設定有關,當configure controlfile autobackup off開啟時
Rman>backup database;
。。。
Including current controlfile in backupset
Including current spfile in backupset
。。。
此時全備份資料庫會把當前controlfile和spfile自動備份,由於controlfile的備份發生在備份集中,rman又會更新控制檔案的快照,此時這個快照優先與備份集產生,因此無法作用於最後一次備份集的恢復。
Rman>Restore controlfile to ‘d:test.ctl’ from ‘oracle_homedatabasesncf
我們可以透過控制檔案快照恢復一個控制檔案,由於此時恢復的控制檔案不包含上次的備份資訊,因為快照的備份發生在全備份之前,沒有記錄資料庫的全備份到快照中。
Rman>Restore database;
此時如果恢復的controlfile中有備份資訊是可以恢復之前的備份集,如果沒有當前rman什麼都做不了了。
如果開啟oracle的控制檔案自動備份功能。此時當資料庫發生變化,例如增加 刪除表空間 資料檔案等,發生資料庫備份等oracle都會更新控制檔案資訊,此時又會發生控制檔案自動備份。
Rman>configure controlfile autobackup on;
Rman>backup database;
。。。
Finish backup at
Starting controlfile file and spfile autobackup
。。。
Finish backup at
此時如果檢視rman中的備份資訊是可以發現oracle先對資料庫進行全備份,但是此時並沒有包括當前的控制檔案和spfile。然後全庫備份完畢後oracle又會對控制檔案和spfile進行備份,此時備份的控制檔案中就包含此次全庫備份的資訊。同樣控制檔案的備份又會觸發控制檔案快照的備份,且都是來自備份集之後,所以包含此次備份資訊。
下面測試一下快照用於資料庫的恢復。一下測試基本是按照eygle循序漸進中進行,經個人試驗確實成功
1 首先建立測試表,編寫儲存過程insert ashuang
Sql>begin
for i in 1..4 loop
insert into ashuang values(i,sysdate,dbms_flashback.get_system_change_number);
commit;
execute immediate 'alter system switch logfile';
dbms_lock.sleep(3);
end loop;
end;
/*dbms_lock.sleep(n)程式暫停3秒,一般grant execute on dbms_lock to USERNAME讓使用者擁有此許可權才能使用*/
2 檢視ashuang中的scn用於以後不完全恢復
Select * from ashuang.;
Id edate escn
1 2011-8-30 13:51:00 344115
1 2011-8-30 13:51:47 344134
2 2011-8-30 13:51:50 344138
3 2011-8-30 13:51:53 344142
4 2011-8-30 13:52:01 344149
1 2011-8-30 13:50:01 344086
3 意外關閉資料庫
Rman>Shutdown abort
然後刪除所有的控制檔案和資料檔案
4 開始資料庫恢復
Rman>startup nomount
如果連spfile也不見了,可以用rman target / 啟動預設例項到nomount然後restore spfile from ‘X’指定備份集恢復spfile。
Rman>restore controlfile from ‘d:oracleproduct
指定快照用於恢復控制檔案,當然也可以指定控制檔案備份集restore controlfile from ‘Y’
Rman>alter database mount;
Rman>run{
Allocate channel d1 device type disk;
Set until scn 344145
Restore database;
Recover database;
}
5 resetlogs 開啟資料庫
因為使用備份的控制檔案快照用於恢復控制檔案
Rman>alter database open resetlogs
Select * from ashuang;
此次就完成了資料庫的一次不完整恢復,當然如果當前log redo沒有丟失,資料庫是可以指定完成恢復的。也可以指定until time ‘
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-1795511/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 控制檔案恢復—從快照中恢復
- 循序漸進oracle第7章:備份與恢復之利用控制檔案快照恢復控制檔案Oracle
- RMAN恢復控制檔案
- 使用rman恢復控制檔案
- docker筆記47-ceph建立快照以及快照恢復Docker筆記
- rman備份-(1) 利用備份級恢復資料檔案和控制檔案
- rman恢復--丟失控制檔案的恢復
- 【備份恢復】丟失所有控制檔案,利用RMAN進行恢復操作
- 10g RMAN - 快照控制檔案及Catalog資訊同步問題
- RAC環境中的快照控制檔案
- RMAN - "丟失控制檔案的恢復"
- rman恢復控制檔案測試--log
- 控制檔案丟失的RMAN恢復
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(二)
- RMAN備份恢復之控制檔案的恢復(一)
- 利用備份的控制檔案恢復
- RMAN 恢復之控制檔案篇(1/5)
- RMAN 恢復之控制檔案篇(2/5)
- RMAN 恢復之控制檔案篇(3/5)
- RMAN 恢復之控制檔案篇(4/5)
- RMAN 恢復之控制檔案篇(5/5)
- rman備份丟失控制檔案恢復
- 【備份恢復】利用 備份控制檔案到指定目錄下的控制檔案 恢復控制檔案
- Oracle 快照控制檔案(snapshot control file)Oracle
- Oracle快照控制檔案(snapshot control file)Oracle
- RMAN恢復 執行重要檔案RMAN恢復
- RMAN恢復案例:無恢復目錄,丟失全部資料檔案、控制檔案、日誌檔案恢復
- 備份與恢復--利用備份的控制檔案恢復
- 【rman 備份與恢復】恢復丟失所有的控制檔案
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(三)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(二)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(一)
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- oracle實驗記錄 (恢復-rman基於控制檔案的恢復)Oracle
- rman恢復spfile和control和resetlogs建立控制檔案和不完全恢復疑點
- rman恢復控制檔案的一個小錯誤
- RMAN基於備份控制檔案恢復失敗