2016年12月12日 星期一

[ORACLE]導出入工具exp/imp/expdp/impdp(未整理)

相關使用參數
dmp導出語法:(加條件參數query=\"WHERE send_date between TO_DATE\(\'20151201\',\'yyyymmdd\'\) AND TO_DATE\(\'20151202\',\'yyyymmdd\'\)\")
expdp account/pwd tables=MA_STORE_M_F directory=AP_EXP_DIR dumpfile=TORE_M_F_1224.dmp logfile=STORE_M_F_1224.log
dmp導入語法:(TABLE_EXISTS_ACTION參數可下APEND或TRUNCATE)
impdp account/pwd tables=STORE_M_F directory=DATA_PUMP_DIR dumpfile=STORE_M_F_1224.dmp CONTENT=DATA_ONLY TABLE_EXISTS_ACTION=APEND


來源-http://fecbob.pixnet.net/blog/post/38083113-oracle-%E8%B3%87%E6%96%99%E5%BA%AB%E5%8C%AF%E5%87%BA(exp)--%E5%B0%8E%E5%85%A5(imp)
exp
將資料庫內的各物件以二進位方式下載成dmp 檔,方便資料移轉。
buffer :下載資料緩衝區,以位元組為單位,缺省依賴作業系統
consistent :下載期間所涉及的資料保持read only,缺省為n
direct :使用直通方式,缺省為n
feeback :顯示處理記錄條數,缺省為0,即不顯示
file:輸出檔案,缺省為expdat.dmp
filesize:輸出檔案大小,缺省為作業系統最大值
indexes:是否下載索引,缺省為n,這是指索引的定義而非資料,exp 不下載索引資料
log:log 檔,缺省為無,在標準輸出顯示
owner:指明下載的使用者名
query:選擇記錄的一個子集
rows:是否下載表記錄
tables:輸出的表名清單
匯出整個實例
exp dbuser/oracle file=oradb.dmp log=oradb.log full=y consistent=y direct=y
user 應具有dba 許可權
匯出某個使用者所有物件
exp dbuser/oracle file=dbuser.dmp log=dbuser.log owner=dbuser buffer=4096000 feedback=10000
匯出一張或幾張表
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1,table2 buffer=4096000
feedback=10000
匯出某張表的部分資料
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1 buffer=4096000 feedback=10000
query=\」where col1=\’...\’ and col2 \<...\」
不可用於巢狀表格
以多個固定大小檔方式匯出某張表
exp dbuser/oracle file=1.dmp,2.dmp,3.dmp,... filesize=1000m tables=emp buffer=4096000
feedback=10000
這種做法通常用在:表資料量較大,單個dump 檔可能會超出檔案系統的限制
直通路徑方式
direct=y,取代buffer 選項,query 選項不可用
有利於提高下載速度
consistent 選項
自export 啟動後,consistent=y 凍結來自其它會話的對export 操作的資料物件的更新,這樣可以保證
dump 結果的一致性。但這個過程不能太長,以免回滾段和連線日誌消耗完
imp
將exp 下載的dmp 檔上載到資料庫內。
buffer:上載資料緩衝區,以位元組為單位,缺省依賴作業系統
commit:上載資料緩衝區中的記錄上載後是否執行提交
feeback :顯示處理記錄條數,缺省為0,即不顯示
file:輸入檔,缺省為expdat.dmp
filesize:輸入檔案大小,缺省為作業系統最大值
fromuser:指明來源使用者方
ignore:是否忽略物件創建錯誤,缺省為n,在上載前物件已被建立往往是一個正常現象,所以此選項建
議設為y
indexes:是否上載索引,缺省為n,這是指索引的定義而非資料,如果上載時索引已建立,此選項即使為
n 也無效,imp 自動更新索引資料
log:log 檔,缺省為無,在標準輸出顯示
rows:是否上載表記錄
tables:輸入的表名清單
touser:指明目的使用者方
導入整個實例
imp dbuser/oracle file=oradb.dmp log=oradb.log full=y buffer=4096000 commit=y ignore=y
feedback=10000
導入某個使用者所有物件
imp dbuser/oracle file=dbuser.dmp log=dbuser.log fromuser=dbuser touser=dbuser2 buffer=2048000
commit=y ignore=y feedback=10000
導入一張或幾張表
imp dbuser2/oracle file=user.dmp log=user.log tables=table1,table2 fromuser=dbuser
touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000
以多個固定大小檔方式導入某張表
imp dbuser/oracle file=\(1.dmp,2.dmp,3.dmp,...\) filesize=1000m tables=emp fromuser=dbuser
touser=dbuser2 buffer=4096000 commit=y ignore=y feedback=10000

Oracle 資料庫的備份與恢復


oracle資料庫有三種標準的備份方法,它們分別是匯出/導入(exp/imp).熱備份與冷備份.匯出備件是一種邏輯備份,冷備份與熱備份是物理備份.

利用export可將資料從資料庫中提取出來,利用import則可將提取出來的資料送回到oracle資料庫中去.
一. 匯出/導入(export/import)
oracle支援三種方式類型的輸出:
1. 簡單匯出資料(export)與導入資料(import)

(1).表方式(t方式),將指定表的資料匯出.
(2).使用者方式(u方式),將指定使用者的所有物件及資料匯出.

(3).全庫方式(full方式),瘵資料庫中的所有物件匯出.


資料導入(import)的過程是資料匯出(export)的逆過程,分別將資料檔案導入資料庫與將資料庫資料匯出到資料檔案.

2. 增量匯出/導入

增量匯出是一種常用的資料備份方法,它只能對整個資料庫來實施,並且必須作為system來匯出.在進行此種匯出時,系統不要求回答任何問題.匯出檔案名缺省為export.dmp,如果不希望自己的輸出檔案定名為export.dmp,必須在命令列中指出要用的檔案名.

增量匯出包括三種類型:

(1).“完全」增量匯出(complete)exp system/manager inctype=complete file=040731.dmp
即備份三個資料庫,比如:

備份上一次備份後改變的資料,比如:

(2).“增量型」增量匯出

exp system/manager inctype=incremental file=040731.dmp

(3).“累積型」增量匯出

累計型匯出方式是匯出自上次「完全」匯出之後資料庫中變化了的資訊.比如:

exp system/manager inctype=cumulative file=040731.dmp

資料庫管理員可以排定一個備份時間表,用資料匯出的三個不同方式合理高效的完成.

比如資料庫的被封任務可以做如下安排:


星期一:完全備份(a)
星期二:增量匯出(b)

星期三:增量匯出(c)

星期四:增量匯出(d)

星期五:累計匯出(e)

星期六:增量匯出(f)

星期日:增量匯出(g)

沒有留言: