2012-02-13 30 views
3

我試圖從Oracle 10g的數據泵工具創建轉儲文件導入數據。 ,我發出命令是甲骨文IMPDP拋出ORA-39088錯誤

IMPDP \ 「用戶名/密碼@ DB作爲SYSDBA \」 remap_schema = SRC_SCHEMA:TARGET_SCHEMA REMAP_TABLESPACE = source_tablespace:target_tablespace DUMPFILE = db.dmp

我收到以下錯誤消息:

ORA - 39001: Invalid argument value 
ORA - 39000: Bad dump file spcification 
ORA - 39088: file name cannot contain a path specification 

這個錯誤的原因是什麼?

+1

你沒有一個'directory'參數,那麼您的實際命令試圖給的完整路徑,其中'db.dmp'文件所在?如果屏蔽該問題,更改發佈命令中的詳細信息並不總是有幫助的。 – 2012-02-13 09:07:17

回答

6

the documentation

ORA-39088:文件名不能包含路徑規範
原因:轉儲文件的名稱,日誌文件,或SQL文件包含一個路徑規範。
行動:使用目錄對象的名稱,表示該文件應該被保存。

這表明您顯示爲DUMPFILE=db.dmp的參數確實類似於DUMPFILE=C:\some\dir\path\db.dmp,這是不允許的。您必須使用數據庫識別的目錄,並使用DIRECTORY參數進行指定。


由於從該目錄參數鏈接@ruffin筆記,你可以把轉儲文件在默認目錄DATA_PUMP_DIR,您可以從dba_directories視圖中找到,或者,如果您有權使用該對象時,all_directories視圖。您正在導入的用戶必須已被授予讀寫權限才能使用它。您還需要能夠將轉儲文件移動到操作系統目錄中,因此權限也可能成爲問題。

如果您沒有合適的具有數據庫權限和操作系統訪問權限的目錄對象,則需要創建一個並授予適當的權限。這需要由人來完成的適當權限,通常爲SYS

create directory my_data_pump_dir as 'C:\some\dir\path'; 
grant read, write on directory my_data_pump_dir to <username>; 

然後導入修改有:

... DUMPFILE=db.dmp DIRECTORY=my_data_pump_dir 

注意,操作系統目錄必須是可用到數據庫服務器上的Oracle用戶帳戶(正在運行數據庫進程的人員,pmon等)。除非本地目錄以某種方式安裝在遠程服務器上,否則無法使用本地文件導入到遠程數據庫。舊的imp命令是一個客戶端應用程序,通常在服務器上運行,但不必; impdp是一個服務器端應用程序。

+0

'DIRECTORY'參數頁說,_ directory_object是數據庫目錄對象的名稱(不是實際目錄的文件路徑)。在安裝時,特權用戶可以訪問名爲DATA_PUMP_DIR_的默認目錄對象,如果我只是想加載一個dmp文件並進行一些取證,這不是最有用的。有沒有比將dmp文件粘貼到[適當的'dpdump'文件夾]更好的答案(http://stackoverflow.com/questions/6463614/how-to-import-an-oracle-database-from-dmp-file - 和日誌文件)?也就是說,我如何指向C:\ myDir? – ruffin 2012-10-02 17:43:23

+0

@ruffin - 作爲DBA,您需要[創建目錄](http://docs.oracle.com/cd/E14072_01/server.112/e10592/statements_5007.htm)參考該操作系統的位置,並將該新目錄對象的權限授予您正在運行'impdp'的任何人。希望您知道O/S目錄必須位於數據庫服務器上,而不是客戶端計算機上。您不能在命令行中指定O/S目錄;從鏈接到'默認位置':'需要目錄對象的原因是爲了確保數據的安全性和完整性'。但這應該是一個新問題,無論是在這裏還是在[dba.se]。 – 2012-10-02 18:07:22

+0

夠公平 - 我認爲自從我們假設OP正在嘗試一些固定的路徑,我們可以繼續重新解釋並將其擴展到答案,所以我們已經在同一個地方得到了它。 2¢,fwiw等。我相信應用程序開發人員(他們通常會通過dbas獲得連接字符串,然後代碼消失)也通常會獲得遺留轉儲,並且預計會比dbas期望的更頻繁地執行本地計算機取證/原型設計(I'我的第四次這樣的要求),所以這是一個有趣的問題和有用的技能。謝謝! – ruffin 2012-10-03 13:13:39