當我們使用一個資料庫時,總希望資料庫的內容是可靠的、正確的,但由於電腦系統的故障(包括機器故障、介質故障、誤操作等),資料庫有時也可能遭到破壞,這時如何儘快恢複資料就成為當務之急。如果平時對資料庫做了備份,那麼此時恢複資料就顯得很容易。由此可見,做好資料庫的備份是多麼的重要,下面筆者就以ORACLE7為例,來講述一下資料庫的備份和恢複。ORACLE 資料庫有三種標準的備份方法,它們分別為匯出/匯入(EXPORT/IMPORT)、冷備份、熱備份。匯出備份是一種邏輯備份,冷備份和熱備份是物理備份。
一、 匯出/匯入(Export/Import)
利用Export可將資料從資料庫中提取出來,利用Import則可將提取出來的資料送回Oracle資料庫中去。
1. 簡單匯出資料(Export)和匯入資料(Import)
Oracle支援三種類型的輸出:
(1)表方式(T方式),將指定表的資料匯出。
(2)使用者方式(U方式),將指定使用者的所有對象及資料匯出。
(3)全庫方式(Full方式),將資料庫中的所有對象匯出。
資料匯出(Import)的過程是資料匯入(Export)的逆過程,它們的資料流向不同。
2. 增量匯出/匯入
增量匯出是一種常用的資料備份方法,它只能對整個資料庫來實施,並且必須作為SYSTEM來匯出。在進行此種匯出時,系統不要求回答任何問題。匯出檔案名稱預設為export.dmp,如果不希望自己的輸出檔案定名為export.dmp,必須在命令列中指出要用的檔案名稱。
增量匯出包括三個類型:
(1)“完全”增量匯出(Complete)
即備份整個資料庫,比如:
$exp system/manager inctype=complete file=990702.dmp
(2) “增量型”增量匯出
備份上一次備份後改變的資料。比如:
$exp system/manager inctype=incremental file=990702.dmp
(3) “累計型”增量匯出(Cumulative)
累計型匯出方式只是匯出自上次“完全” 匯出之後資料庫中變化了的資訊。比如:
$exp system/manager inctype=cumulative file=990702.dmp
資料庫管理員可以排定一個備份議程表,用資料匯出的三個不同方式合理高效地完成。
比如資料庫的備份任務可作如下安排:
星期一:完全匯出(A)
星期二:增量匯出(B)
星期三:增量匯出(C)
星期四:增量匯出(D)
星期五:累計匯出(E)
星期六:增量匯出(F)
星期日:增量匯出(G)
如果在星期日,資料庫遭到意外破壞,資料庫管理員可按以下步驟來恢複資料庫:
第一步:用命令CREATE DATABASE重建資料庫結構;
第二步:建立一個足夠大的附加回段。
第三步:完全增量匯入A:
$imp system./manager inctype= RECTORE FULL=Y FILE=A
第四步:累計增量匯入E:
$imp system/manager inctype= RECTORE FULL=Y FILE =E
第五步:最近增量匯入F:
$imp system/manager inctype=RESTORE FULL=Y FILE=F