第一步:首先使用DBA權限的用戶創建directory,我使用system ,可以在服務器本地創建,也可以遠程連接sqlplus進行創建,使用的將是服務器上面的路徑。要確保創建directory時,操作系統層面的路徑已經存在。如果不存在,可以刪除directory后,再重新建立directory。
1 create directory data_pump_dir as '\exphd\datapump';
此處注意,即便操作系統層面不存在相應的目錄,也會顯示創建成功,但是在執行expdp的時候會出現錯誤:
ORA-39002: 操作無效
ORA-39070: 無法打開日志文件。
ORA-39087: directory name DUMPDIR is invalid
第二步:連接到其它dba權限的用戶,授權給要使用expdp的用戶,,也可遠程執行,即expdp 中的userid中的用戶,而不是schemas=后面的用戶:
1 grant read,write on directory DUMPDIR to system;
如果沒有授權使用,也會出相應的錯誤
第三步:查看管理理員目錄,也可遠程執行:
1 select * from dba_directories;
建立的directory 都是隸屬於sys用戶的,列出的路徑也都是指服務器上面的,可以在此對照下物理目錄是否存在問題。
注意事項:
1、需要注意的是,雖然可以遠程建立目錄、授權和查詢,expdp只能在服務器端執行,在客戶端執行會出現:
連接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Pr
With the Partitioning, OLAP, Data Mining and Real Application Testing
ORA-39002: 操作無效
ORA-39070: 無法打開日志文件。
ORA-29283: 文件操作無效
ORA-06512: 在 "SYS.UTL_FILE", line 488
ORA-29283: 文件操作無效等類似的錯誤。
2、使用expdp導出的11g的數據可以使用 10g的impdp導入到10g的數據庫里面,需要在兩個命令里面都添加一個version =10.2.0.1.0 指定相應的版本號。userid可以這樣寫,看幫助同樣是help=y ;
3、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
4.使用impdp 和expdp 的時候 最后面不能有分號 ;負責也有會有 找不到方案的錯誤 !