一、expdp/impdp和exp/imp的差別
1、exp和imp是用戶端工具程式,它們既可以在用戶端使用,也可以在服務端使用。
2、expdp和impdp是服務端的工具程式,他們隻能在oracle服務端使用,不能在用戶端使用。
3、imp隻适用于exp導出的檔案,不适用于expdp導出檔案;impdp隻适用于expdp導出的檔案,而不适用于exp導出檔案。
4、對于10g以上的伺服器,使用exp通常不能導出0行資料的空表,而此時必須使用expdp導出。
二、expdp導出步驟
(1)建立邏輯目錄:
第一步:在伺服器上建立真實的目錄;(注意:第三步建立邏輯目錄的指令不會在OS上建立真正的目錄,是以要先在伺服器上建立真實的目錄。如下圖:)
第二步:用sys管理者登入sqlplus;
第三步:建立邏輯目錄;
SQL> create directory data_dir as '/home/oracle/dmp/user';
Directory created.
第四步:檢視管理者目錄,檢查是否存在;
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME
DIRECTORY_PATH
SYS DATA_DIR
/home/oracle/dmp/user
第五步:用sys管理者給你的指定使用者賦予在該目錄的操作權限。
SQL> grant read,write on directory data_dir to user;
Grant succeeded.
(2)用expdp導出dmp,有五種導出方式:
第一種:“full=y”,全量導出資料庫;
expdp user/passwd@orcl dumpfile=expdp.dmp directory=data_dir full=y logfile=expdp.log;
第二種:schemas按使用者導出;
expdp user/passwd@orcl schemas=user dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
第三種:按表空間導出;
expdp sys/passwd@orcl tablespace=tbs1,tbs2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
第四種:導出表;
expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
第五種:按查詢條件導;
expdp user/passwd@orcl tables=table1='where number=1234' dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;