用EXP進(jìn)行備份前,先在SYS用戶(hù)下運行CATEXP.SQL文件(如果以前已運行該文件,則不
要執行這個(gè)腳本)。
沒(méi)有特殊說(shuō)明,不允許在客戶(hù)端執行備份命令。
==============
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
對于數據庫備份,建議采用增量備份,即只備份上一次備份以來(lái)更改的數據。增量備份
命令:
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
===========
A. 恢復備份數據的全部?jì)热?
若從本地文件恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_cs
d_yyyymmdd.dmp
log=imp_icdmain_csd_yyyymmdd.log
若從磁帶設備恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_csd_yyyymmdd.log
B. 恢復備份數據中的指定表
若從本地文件恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_cs
d_yyyymmdd.dmp
log=imp_icdmain_csd_yyyymmdd.log
tables=commoninformation,serviceinfo
若從磁帶設備恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=/dev/rmt0
log=imp_icdmain_csd_yyyymmdd.log
tables=commoninformation,serviceinfo
用戶(hù)模式
此方式將根據按照用戶(hù)模式備份的數據進(jìn)行恢復。
A. 恢復備份數據的全部?jì)热?
若從本地文件恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_yy
yymmdd.dmp
log=imp_icdmain_yyyymmdd.log
若從磁帶設備恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_yyyymmdd.log
B. 恢復備份數據中的指定表
若從本地文件恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_yy
yymmdd.dmp
log=imp_icdmain_yyyymmdd.log
tables=commoninformation,serviceinfo
若從磁帶設備恢復,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_yyyymmdd.log
tables=commoninformation,serviceinfo
完全模式
如果備份方式為完全模式,采用下列恢復方法:
若從本地文件恢復,使用如下命令:
imp system/manager rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 full=y
file=exp_icdmain_yyyymmdd.dmp
log=imp_icdmain_yyyymmdd.log
若從磁帶設備恢復,使用如下命令:
imp system/manager rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 full=y
file=/dev/rmt0
log=imp_icdmain_yyyymmdd.log
參數說(shuō)明
1. ignore參數
Oracle在恢復數據的過(guò)程中,當恢復某個(gè)表時(shí),該表已經(jīng)存在,
就要根據ignore參數的設置來(lái)決定如何操作。
若ignore=y,Oracle不執行CREATE TABLE語(yǔ)句,直接將數據
插入到表中,如果插入的記錄違背了約束條件,比如主鍵約束,
則出錯的記錄不會(huì )插入,但合法的記錄會(huì )添加到表中。
若ignore=n,Oracle不執行CREATE TABLE語(yǔ)句,同時(shí)也不會(huì )
將數據插入到表中,而是忽略該表的錯誤,繼續恢復下一個(gè)表。
2. indexes參數
在恢復數據的過(guò)程中,若indexes=n,則表上的索引不會(huì )被恢復
,但是主鍵對應的唯一索引將無(wú)條件恢復,這是為了保證數據
的完整性。
字符集轉換
對于單字節字符集(例如US7ASCII),恢復時(shí),數據庫自動(dòng)轉
換為該會(huì )話(huà)的字符集(NLS_LANG參數);對于多字節字符集
(例如ZHS16CGB231280),恢復時(shí),應盡量使字符集相同
(避免轉換),如果要轉換,目標數據庫的字符集應是輸出數
據庫字符集的超集。
恢復方法
業(yè)務(wù)數據庫采用表恢復方案。在用IMP進(jìn)行恢復前,先在SYS
用戶(hù)下運行CATEXP.SQL文件(如果以前已運行該文件,則
不要執行這個(gè)腳本),然后執行下列命令:
IMP ICDMAIN/ICD FILE=文件名 LOG=LOG文件名 ROWS=Y
COMMIT=Y BUFFER=Y IGNORE=Y TABLES=表名
注:要恢復的表名參照備份的表名
?;謴褪窃谠砘A上累加數據
。沒(méi)有特殊說(shuō)明,不允許在客戶(hù)端執行恢復命令
將一個(gè)數據庫的某用戶(hù)的所有表導到另外數據庫的一個(gè)用戶(hù)下面的例子
exp userid=system/manager owner=username1 file=expfile.dmp
imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp