一 關於expdp和impdp 使用expdp和impdp時應該注意的事項:
exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。
expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在客戶端使用。
imp只適用於exp匯出的檔案,不適用於expdp匯出檔案;impdp只適用於expdp匯出的檔案,而不適用於exp匯出檔案。
expdp或impdp命令時,可暫不指出使用者名稱/密碼@例項名 as 身份,然後根據提示再輸入,如:
expdp schemas=scott dumpfile=expdp.dmp directory=dpdata1;
一、建立邏輯目錄,該命令不會在作業系統建立真正的目錄,最好以system等管理員建立。
create directory dpdata1 as 'd:\test\dump';
二、檢視管理理員目錄(同時檢視作業系統是否存在,因為oracle並不關心該目錄是否存在,如果不存在,則出錯)
select * from dba_directories;
三、給scott使用者賦予在指定目錄的操作許可權,最好以system等管理員賦予。
grant read,write on directory dpdata1 to scott;
四、匯出資料
1)按使用者導
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dpdata1;
2)並行程序parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名導
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dpdata1;
4)按查詢條件導
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp tables=emp query='where deptno=20';
5)按表空間導
expdp system/manager directory=dpdata1 dumpfile=tablespace.dmp tablespaces=temp,example;
6)導整個資料庫
expdp system/manager directory=dpdata1 dumpfile=full.dmp full=y;
五、還原資料
1)導到指定使用者下
impdp scott/tiger directory=dpdata1 dumpfile=expdp.dmp schemas=scott;
2)改變表的owner
impdp system/manager directory=dpdata1 dumpfile=expdp.dmp tables=scott.dept remap_schema=scott:system;
3)匯入表空間
impdp system/manager directory=dpdata1 dumpfile=tablespace.dmp tablespaces=example;
4)匯入資料庫
impdb system/manager directory=dump_dir dumpfile=full.dmp full=y;
5)追加資料
impdp system/manager directory=dpdata1 dumpfile=expdp.dmp schemas=system table_exists_action
二 附加說明 並行操作(parallel)
您可以通過 parallel 引數為匯出使用乙個以上的執行緒來顯著地加速作業。每個執行緒建立乙個單獨的轉儲檔案,因此引數 dumpfile 應當擁有和並行度一樣多的專案。您可以指定萬用字元作為檔名,而不是顯式地輸入各個檔名,例如:
expdp ananda/abc123 tables=cases directory=dpdata1 dumpfile=expcases_%u.dmp parallel=4 job_name=cases_export
注意:dumpfile 引數擁有乙個萬用字元 %u,它指示檔案將按需要建立,格式將為expcases_nn.dmp,其中nn 從 01 開始,然後按需要向上增加。
在並行模式下,狀態螢幕將顯示四個工作程序。(在預設模式下,只有乙個程序是可見的)所有的工作程序同步取出資料,並在狀態螢幕上顯示它們的進度。
分離訪問資料檔案和轉儲目錄檔案系統的輸入/輸出通道是很重要的。否則,與維護 data pump 作業相關的開銷可能超過並行執行緒的效益,並因此而降低效能。並行方式只有在表的數量多於並行值並且表很大時才是有效的。
資料庫監控
您還可以從資料庫檢視獲得關於執行的 data pump 作業的更多資訊。監控作業的主檢視是 dba_datapump_jobs,它將告訴您在作業上有多少個工作程序(列 degree)在工作。
另乙個重要的檢視是 dba_datapump_sessions,當它與上述檢視和 v$session 結合時將給出主前台程序的會話 sid。
select sid, serial# from v$session s, dba_datapump_sessions d where s.saddr = d.saddr;
這條指令顯示前台程序的會話。更多有用的資訊可以從警報日誌中獲得。當程序啟動時,mcp 和工作程序在警報日誌中顯示如下:
kupprdp:master process dm00 started with pid=23, os id=20530 to execute - sys.kupm$mcp.main('cases_export', 'ananda'); kupprdp:worker process dw01 started with worker id=1, pid=24, os id=20532 to execute - sys.kupw$worker.main('cases_export', 'ananda'); kupprdp:worker process dw03 started with worker id=2, pid=25, os id=20534 to execute - sys.kupw$worker.main('cases_export', 'ananda');
它顯示為資料幫浦操作啟動的會話的 pid。您可以用以下查詢找到實際的 sid:
select sid, program from v$session where paddr in (select addr from v$process where pid in (23,24,25));
program 列將對應警報日誌檔案中的名稱顯示程序 dm (為主程序)或 dw (為工作程序)。如果乙個工作程序使用了並行查詢,比如說 sid 23,您可以在檢視 v$px_session 中看到它,並把它找出來。它將為您顯示從 sid 23 代表的工作程序中執行的所有並行查詢會話:
select sid from v$px_session where qcsid = 23;
從檢視 v$session_longops 中可以獲得其它的有用資訊來**完成作業將花費的時間。
select sid, serial#, sofar, totalwork from v$session_longops where opname = 'cases_export' and sofar != totalwork;
列 totalwork 顯示總工作量,該列的 sofar 數量被加和到當前的時刻 — 因而您可以用它來估計還要花多長時間。
三 oracle 10g 和11g的互相匯入和匯出 1) 可以用10g的client連線11個匯出11g的資料庫,即可匯入10g 2)用expdp,impdp,如:
在11g伺服器上,使用expdp命令備份資料
expdp userid='sys/cuc2009@cuc as sysdba' schemas=sybj directory=data_pump_dir dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0
在10g伺服器上,使用impdp命令恢復資料
準備工作:1.建庫2.建表空間3.建使用者並授權4.將aa.dmp拷貝到10g的dpdump目錄下
impdp userid='sys/cuc2009@cucf as sysdba' schemas=sybj directory=data_pump_dir dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0
expdp impdp 用法詳解
注 本文全部摘自 對相關概念講解的非常詳細,所以儲存以備日後查閱。一 關於expdp和impdp 使用expdp和impdp時應該注意的事項 exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在...
exp imp與expdp impdp的用法區別
1 把使用者usera的物件導到使用者userb,用法區別在於fromuser usera touser userb remap schema usera usera 例如 imp system passwd fromuser usera touser userb file oracle exp.d...
expdp impdp匯出匯入資料
expdp匯出資料步驟 1 建立目錄 create directory dir expdp as syjkccs dir expdp 2 授權 grant read,write on directory dir expdp to tpl 3 檢視目錄及許可權 select from dba dire...