ORACLE數據庫有兩類備份方法。第一類為物理備份,該方法實現數據庫的完整恢復,但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行),且需要極大的外部存儲設備,例如磁帶庫;第二類備份方式為邏輯備份,業務數據庫采用此種方式,此方法不需要數據庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存儲設備。
數據庫邏輯備份方法
ORACLE數據庫的邏輯備份分為三種模式:表備份、用戶備份和完全備份。
表模式
備份某個用戶模式下指定的對象(表)。業務數據庫通常采用這種備份方式。
若備份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接備份到磁帶設備,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
注:在磁盤空間允許的情況下,應先備份到本地服務器,然後再拷貝到磁帶。出於速度方面的考慮,盡量不要直接備份到磁帶設備。
用戶模式
備份某個用戶模式下的所有對象。業務數據庫通常采用這種備份方式。
若備份到本地文件,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
若直接備份到磁帶設備,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
注:如果磁盤有空間,建議備份到磁盤,然後再拷貝到磁帶。如果數據庫數據量較小,可采用這種辦法備份。
完全模式
備份完整的數據庫。業務數據庫不采用這種備份方式。備份命令為:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
對於數據庫備份,建議采用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
注:關於增量備份必須滿足下列條件:
1.
只對完整數據庫備份有效,且第一次需要full=y參數,以後需要inctype=incremental參數。
2. 用戶必須有EXP_FULL_DATABASE的系統角色。
3. 話務量較小時方可采用數據庫備份。
4. 如果磁盤有空間,建議備份到磁盤,然後再備份到磁帶。
業務數據庫備份方法及周期
用EXP進行備份前,先在SYS用戶下運行CATEXP.SQL文件(如果以前已運行該文件,則不要執行這個腳本)。
沒有特殊說明,不允許在客戶端執行備份命令。
備份命令參照表模式下的備份命令。
從磁盤文件備份到磁帶
如果首先備份到本地磁盤文件,則需要轉儲到磁帶設備上。
1. 若需查看主機上配置的磁帶設備,使用如下命令:
lsdev -Cc tape
顯示的結果如下例所示:
rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drive
rmt1 Defined 30-58-00-0,0 SCSI 4mm Tape Drive
標明Available的設備是可用的磁帶設備。
2. 若需查看磁帶存儲的內容,使用如下命令:
tar -tvf /dev/rmt0
顯示的結果如下例所示:
-rw-r--r-- 300 400 8089600 Jan 11 14:33:57 2001 exp_icdmain_20010111.dmp
如果顯示類似如下內容,則表示該磁帶存儲的備份數據是從數據庫直接備份到磁帶上,而非從本地磁盤轉儲到磁帶的備份文件,因此操作系統無法識別。