Oracle的冷備份
1、 冷備份發生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完
整的數據庫。冷備份是將關鍵性文件拷貝到另外位置的一種做法。對於備份Oracle信息而言,冷備份是最快和最安全的方法。值得注意的是冷備份必須是數據庫關閉的情況下完成,當數據庫開着的時候,執行數據庫文件系統備份無效。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
2、冷備份所需備份的文件包括以下幾種:
l 所有數據文件
l 所有控制文件
l 所有聯機REDO LOG 文件
l INIT<sid>.ORA文件(可選)
3、冷備份的步驟
l 正常關閉要備份的實例(instance)
l 備份整個數據庫到一個目錄
l 啓動數據庫
4、用冷備份進行數據庫恢復
如果數據庫是運行在非歸檔日誌模式下,將備份文件拷貝回原來的目錄即可。非歸檔日誌模式下數據庫只能恢復到備份時刻的狀態。
如果數據庫是運行在歸檔日誌模式下,將數據文件拷回原來的目錄(不包括聯機redolog文件),然後依次選擇相應的重做日誌文件進行恢復,即可恢復冷備份後的所有操作,即是說可以恢復到系統崩潰前的狀態。
5、冷備份示例
l 示例一、windows環境下的冷備份與恢復
在本例中,數據庫實例名wh,所有數據文件、所有控制文件和所有聯機REDO LOG 文件都在文件夾D:/oracle/ora92/wh中,備份恢復的操作如下:
1、 進入 sql*plus,以sysdba的身份登錄數據庫
SQL>sys/oracle@wh as sysdba
2、 關閉數據庫SQL>shutdown immediate
3、 拷貝D:/oracle/ora92/wh到目標備份目錄E:/bacakupora/wh
數據庫冷備份完成。下面對數據庫中的內容進行更改:
4、啓動數據庫
SQL>startup
5、刪除數據
SQL>delete * from wh.test
此時進行數據庫恢復。
6、SQL>shutdown immediate;
7、拷貝目標備份目錄E:/bacakupora/wh到D:/oracle/ora92/wh
數據庫恢復完畢。通過查詢可以發現數據庫恢復到進行備份時刻的狀態,備份後所進行的所有操作無效。
l 示例二、linux環境下的冷備份與恢復
在本例中,數據庫實例名urpdb,所有數據文件存放在/oradata/urpdb目錄下,所有控制文件和所有聯機REDO LOG 文件都在文件夾opt/ora9/oradata/urpdb中,備份恢復的操作如下:
1、sys/oracle@urpdb as sysdba 進入sql*plus;
2、SQL>shutdown immediate (保持所有數據文件在時間點上的一致性)
3、拷貝/oradata/urpdb和opt/ora9/oradata/urpdb下的所有文件到新的備份目錄。
假設進行如下操作:
4、SQL>startup
5、SQL>create table test(c1 number(5),c2 varcharc(10));
6、SQL>insert into text values(1,’a’);
7、SQL>commit;
此後假設有一個數據文件壞了,然後將備份的所有文件包括聯機重做日誌文件拷貝回來。
8、SQL>shutdown immediate;
9、拷貝文件包括聯機重做日誌文件。
SQL>startup;
數據恢復完畢!但備份後所執行的操作沒有恢復。