關於expdp和impdp
exp和imp是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。
expdp和impdp是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用。
imp只適用於exp導出的文件,不適用於expdp導出文件;impdp只適用於expdp導出的文件,而不適用於exp導出文件。
expdp或impdp命令時,可暫不指出用戶名/密碼@實例名 as 身份,然后根據提示再輸入。
一、創建管理員目錄
該目錄在此處用於指定dump文件所在父目錄,好處是在導入導出的時候只需要directory=dump_dir就可以指定父目錄了,使語句結構清晰。
該命令不會在操作系統創建真正的目錄,最好以system等管理員創建。
create directory dump_dir as '/data/oracle/my_dump_dir/';
二、查看管理員目錄
在此處意為查看剛建立的dump文件所在父目錄是,而Oracle並不關心該目錄是否存在,如果不存在,只是在導入導出時報錯。
select * from dba_directories;
三、給scott用戶賦予在指定目錄的操作權限,最好以system等管理員賦予。
grant read,write on directory dump_dir to scott;
四、導出數據
--1)按用戶導 expdp scott/tiger@1.2.3.4:1521/orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dump_dir; --2)並行進程parallel expdp scott/tiger@1.2.3.4:1521/orcl directory=dump_dir dumpfile=scott3.dmp parallel=40 job_name=scott3 --3)按表名導 expdp scott/tiger@1.2.3.4:1521/orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dump_dir; --4)按查詢條件導 expdp scott/tiger@1.2.3.4:1521/orcl directory=dump_dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20'; --5)按表空間導 expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example; --6)導整個數據庫 expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
我的真實樣例
expdp bobo/123456@192.168.1.234:1521/orcl dumpfile=backup.dmp DIRECTORY=dump_dir TABLES=student,teacher
五、導入數據
--1)導到指定用戶下 impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=scott; --2)改變表的owner impdp system/manager DIRECTORY=dump_dir DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system; --3)導入表空間 impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=example; --4)導入數據庫 impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y; --5)追加數據 impdp system/manager DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION
我的真實導入樣例
impdp "xixi/123456@192.168.1.234:1521/orcl" dumpfile=backup.dmp directory=dump_dir remap_schema=bobo:xixi remap_tablespace=TBS_BOBO:TBS_XIXI table_exists_action=SKIP TRANSFORM=segment_attributes:n
附加說明 並行操作(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 用法詳解
其它參考
Oracle dmp文件導入(還原)到不同的表空間和不同的用戶下
