expdp/impdp 使用總結
1. 使用expdp要先在資料庫中建立directory,並給相應的使用者read,write許可權.
SQL>create directory dmpdir as '/u01/dmdir';
SQL>grant read,write on directory to test;
2. 最常用匯出方法
$expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=test
$expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY=dmpdir TABLES=(tmp_test:p1,tmp_test:p2) JOB_NAME=tmp_dump LOGFILE=tmp_dump.log
$expdp scott/tiger DUMPFILE=full.dmp DIRECTORY=dmpdir FULL=Y JOB_NAME=full
$expdp scott/timer DUMPFILE=tmp_200703.dmp DIRECTORY=dmpdir TABLES=tmp QUERY=\"where to_char\(create_time,\'yyyy-mm-dd\'\)\
常用一些引數說明:
--------------------------------------------------------------------------------
SCOTT/TIGER:使用者/密碼(*)
DUMPFILE:匯出後的檔名(*)
DIRECTORY:匯出檔案存放位置(位於伺服器端)(*)
CONTENT:匯出檔案中包含的內容(預設為:ALL,可選DATA_ONLY/METADATA_ONLY)
FILESIZE:指定匯出檔案大小(單位為bytes).
JOB_NAME:此次匯出程式使用的名稱,方便跟蹤查詢(可選)
LOGFILE:日誌檔名(預設為:export.log)
--------------------------------------------------------------------------------
INCLUDE:匯出時包含指定的型別
(例:INCLUDE=TABLE_DATA,
INCLUDE=TABLE:"LIKE 'TAB%'"
INCLUDE=TABLE:”NOT LIKE ‘TAB%’”…)
EXCLUDE:匯出時排除的資料型別(例:EXCLUDE=TABLE:EMP)
--------------------------------------------------------------------------------
FULL:全庫匯出時使用(同EXP的FULL,預設為N)
SCHEMA:匯出某一個SCHEMA下的所有資料
TABLES:按表匯出(這裡的方法和EXP一樣)
TABLESPACE:指定一個表空間匯出.
QUERY:按表匯出時,使用條件語句限定匯出範圍(同exp中的QUERY)
--------------------------------------------------------------------------------
TRANSPORT_FULL_CHECK:
TRANSPORT_TABLESPACES:
--------------------------------------------------------------------------------
FLASHBACK_SCN:
FLASHBACK_TIME:
PARALLEL:並行操作
PARFILE:
NETWORK_LINK:
--------------------------------------------------------------------------------
3. 匯出過程中的監控
當 Data Pump Export (DPE) 執行時,按 Control-C;它將阻止訊息在螢幕上顯示,但不停止匯出程式本身。相反,它將顯示 DPE 提示符(如下所示)。程式現在被認為處於“互動式”模式:
Export>
這種方法允許在這個 DPE 作業上輸入命令查詢及控制當前作業。
4. 並行操作(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 作業相關的開銷可能超過並行執行緒的效益,並因此而降低效能。並行方式只有在表的數量多於並行值並且表很大時才是有效的。
5. 資料庫監控
您還可以從資料庫檢視獲得關於執行的 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 pname = 'CASES_EXPORT'
and sofar != totalwork;
列 totalwork 顯示總工作量,該列的 sofar 數量被加和到當前的時刻 — 因而您可以用它來估計還要花多長時間。
6. 處理特定物件
l Data Pump 允許您只匯出特定型別的物件。
例如,以下命令只匯出過程,而不匯出其它任何東西(不匯出表、檢視、甚至函式):
expdp scott/tiger directory=dmpdir dumpfile=procedure.dmp include=PROCEDURE
l 要只匯出一些特定的物件(比如說,函式 FUNC1 和過程 PROC1)
expdp scott/tiger directory=dmpdir dumpfile=test.dmp
include=PROCEDURE:\"=\'PROC1\'\",FUNCTION:\"=\'FUNC1\'\"
l 可以用匯出的dmp檔案來建立dmp檔案中包含物件的 DDL 指令碼,以供之後使用。
一個稱為 SQLFILE(impdp引數)引數允許建立 DDL 指令碼檔案。
impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=expprocs.dmp SQLFILE=aa.sql
使用這種方法的impdp,可以從dp出來的dmp檔案中提取物件的DDL語句,這樣的impdp並不把資料匯入資料庫中,只是建立DDL語句檔案
--------------------------------------------------------------------------------------------------------------------------
exp/imp和expdp/impdp的區別
A: exp/imp的使用 (伺服器端和客戶端都可以執行。並且備份檔案可以在客戶端產生。)
exp file=dump.dmp
imp fromuser=fuser touser=tuser file=dump.dmp
2: expdp/impdp的使用 (只能在伺服器端執行。備份檔案只能存在伺服器裡面。)
I:在使用expdp匯出時在Oracle需要定義目錄變數,在匯出的時候需要制定這個變數。如果可以,你可以為每個使用者都建立一個單獨的備份目錄。
SQL>create directory dmpdir_user1 as '/home/oracle/backup';
SQL>grant read,write on directory dmpdir_user1 to user1;
對了,作業系統內必須建立這個目錄。在SQL命令列下,並不會產生這個目錄的。
[oracle@kook ~]$ mkdir backup
如果你沒有制定這個目錄的話,預設exp匯出存放的目錄是$HOME/rdbms/log裡面。至少我的是這樣。很奇怪,為什麼在這裡。
II:執行匯出匯入命令
expdp schemas=user1 directory=dmpdir_user1 dumpfile=user1.dmp
impdp directory=dmpdir_user1 dumpfile=user1.dmp remap_schema=user1:user2 remap_tablespace=user1ts:user2ts
使用expdp/impdp最大的好處可以讓我轉換表空間。而exp/imp這個是不支援的。處理起來非常麻煩
速度方面,expdp/impdp 明顯快與exp/imp 好幾倍,及時exp採用direct=y 速度也明顯慢於expdp .
http://hi.baidu.com/yyk0720/blog/item/ede8fc2b9052819d023bf650.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-614823/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- expdp/impdp的使用總結 (供查詢使用)
- impdp和expdp的總結
- 我的一個expdp/impdp任務總結
- 【EXPDP/IMPDP】使用 EXPDP/IMPDP工具“模糊”匯出和匯入
- EXPDP/IMPDP工具的使用
- Expdp,impdp工具的使用
- Oracle expdp/impdp 使用示例Oracle
- expdp/impdp跨版本升級遷移問題總結
- expdp impdp 使用命令解析
- oracle expdp和impdp使用例子Oracle
- impdp/expdp 示例
- oracle expdp and impdpOracle
- expdp/impdp的原理及使用(轉)
- 使用expdp、impdp遷移資料庫資料庫
- expdp和impdp自動使用resumable特性
- oracle實驗記錄 (expdp/impdp使用)Oracle
- Expdp Impdp詳解
- oracle expdp/impdp用法Oracle
- expdp,impdp的多使用者遷移
- expdp impdp Data Pump(資料泵)使用解析
- EXPDP 和 IMPDP 資料泵的使用_1
- EXPDP 和 IMPDP 資料泵的使用_2
- expdp/impdp 用法詳解
- expdp/impdp操作例項
- expdp, impdp characteristic 特性--索引索引
- ORACLE expdp/impdp詳解Oracle
- 將partition expdp後impdp
- expdp/impdp用法詳解
- oracle dblink用法總結和expdp和impdp利用dblink倒入匯出到本地Oracle
- exp/expdp imp/impdp的使用【實戰實用】
- exp/imp expdp/impdp Tables 萬用字元 % 的使用字元
- ORACLE 10G expdp/impdpOracle 10g
- Oracle10g expdp & impdpOracle
- [zt] expdp / impdp 用法詳解
- Oracle使用資料泵 (expdp/impdp)實施遷移Oracle
- expdp/impdp使用sysdba許可權遷移資料
- ORACLE中impdp的總結Oracle
- ORACLE中的EXPDP總結Oracle