我在Oracle 11gR2利用impdb匯入資料,語法如下:
$ imp user_a/xxx REMAP_SCHEMA=user_b:user_a directory=DUMP_DATA dumpfile=temp.dmp logfile=impdp.log
結果出現下列的訊息:
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 434
ORA-29283: invalid file operation
看訊息好像跟log file有關,最後發現是資料夾的權限不足,記錄一下檢查的步驟。
檢查是否有建立Directory
SQL> select directory_name,directory_path from all_directories where directory_name='DUMP_DATA';
DIRECTORY_NAME DIRECTORY_PATH
--------------------------- -------------------
DUMP_DATA /testora/mes_data
確定有建立Directory後也檢查OS是否存在/test/ora/mes_data目錄,因為就算該目錄不存在,建立Directory也會成功
重新授予Directory的讀寫權限
SQL> grant read, write ON DIRECTORY DUMP_DATA TO user_a;
重新impdp也是一樣的問題,最後是修改/test/ora/mes_data目錄的權限才解決,換句話說,如果無此目錄、目錄名稱錯誤、目錄權限錯誤都會出現上述的問題