Oracle OS備份是一種常見的備份方法,下面就為您介紹兩種Oracle OS備份的方式--冷備份(Cold backup)與熱備份(Hot backup)。
Oracle OS備份:
Oracle OS備份有兩類,冷備份(Cold backup)與熱備份(Hot backup),操作系統備份與以上的邏輯備份有本質的區別。邏輯備份提取數據庫的數據內容,而不備份物理數據塊。而操作系統備份則是拷貝整個的數據文件。
i、冷備份
在文件級備份開始前數據庫必須徹底關閉。關閉操作必須用帶有normal、immediate、transaction選項的shutdown來執行。 數據庫使用的每個文件都被備份下來,這些文件包括:
☆所有數據文件
☆所有控制文件
☆所有聯機REDO LOG 文件
☆INIT.ORA文件(可選)
作冷備份一般步驟是:
a.正常關閉要備份的實例(instance);
b.備份整個數據庫到一個目錄
c.啟動數據庫
如
SVRMGRL>connect internal
SVRMGRL >shutdown immediate
SVRMGRL >! cp <file> <backup directory>
或
SVRMGRL >!tar cvf /dev/rmt/0 /u01/oradata/prod
SVRMGRL >startup
注意:如果利用腳本對數據庫進行冷備份,必須對關閉數據庫的命令進行邏輯檢查,如果發生關閉數據庫的命令不能正常執行而導致數據庫沒有正常關閉,那麼,所有的冷備份將回是無效的。
ii、熱備份
熱備份是當數據庫打開並對用戶有效是的OS級的數據備份。熱備份只能用於ARCHIVELOG方式的數據庫。在數據文件備份之前,對應的表空間必須通過使用ALTER TABLESPACE …… BEGIN BACKUP以備份方式放置。然後組成表空間的數據文件可以使用類似冷備份的操作系統命令進行拷貝。在數據文件用操作系統命令拷貝後,應使用ALTER TABLESPACE …… END BACKUP命令使表空間脫離熱備份方式。
熱備份沒有必要備份聯機日志,但必須是歸檔狀態,在實例恢復的時候,可能需要用到歸檔日志。當前聯機日志一定要保護好或是處於鏡相狀態,當前聯機日志的損壞,對於數據庫的損壞是巨大的,只能以數據的丟失來進行數據庫的恢復工作。
對於臨時表空間,存放的是臨時信息,在熱備份是也可以考慮不用備份,如果臨時文件發生故障,可以刪除該數據文件與表空間,重建一個臨時表空間。熱備份的優點是顯而易見的
---- a.可在表空間或數據文件級備份,備份時間短。
---- b.備份時數據庫仍可使用。
---- c.可達到秒級恢復(恢復到某一時間點上)。
---- d.可對幾乎所有數據庫實體作恢復。
---- e.恢復是快速的,在大多數情況下在數據庫仍工作時恢復。
操作系統作熱備份的一般步驟為:
①連接數據庫 SVRMGRL>connect internal;
②將需要備份的表空間(如User)設置為備份方式 SVRMGRL>Alter tablespace User begin backup;
③拷貝數據文件 SVRMGRL>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora Or $cp cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
④在數據文件拷貝完成後,將表空間拖體備份方式 SVRMGRL>Alter tablespace User end backup;
⑤對所有需要備份的表空間重復2,3,4
⑥使用如下的命令備份控制文件ALTER DATABSE …… BACKUP CONTROLFILE
如備份成二進制文件 alter database backup controlfile to ‘new fIElname’;
備份成文本文件 alter database backup controlfile to trace;
因為熱備份的時候,用戶還在操作數據庫,所以,最好是每個表空間處於備份狀態的時間最短,這樣就要求一個表空間一個表空間的備份,不要一起使表空間處於備份狀態而同時拷貝數據文件。
注意:如果在熱備份的時候如果數據庫中斷(如斷電),那麼在重新啟動數據庫的時候,數據庫將提示有數據文件需要恢復,你需要把正在斷電時候的處於備份狀態的數據文件通過ALTER TABLESPACE …… END BACKUP結束備份方式。具體哪個數據文件或表空間處於備份狀態,可以通過v$backup與v$datafile來獲得。