2011-09-23 252 views
4

爲了成功將模式從一個數據庫(11g R1)遷移到另一個數據庫(11g R2),目標數據庫是否需要使用表空間和/或用戶(模式)進行準備?使用expdp和impdp遷移Oracle數據庫

目前我只能用11g R1數據庫進行測試。我的測試是導出一個模式並將其導入同一個數據庫中的一個新模式。

expdp system/systempass schemas=oldschema 

之後,我試圖用導入:

impdp system/systempass expdat.dmp remap_schema=oldschema:newschema 

但是這會導致錯誤:

UDI-00014: invalid value for parameter, 'attach' 
  1. 這個錯誤告訴我,newschema沒有定義?
  2. 我必須創建一個新用戶嗎?
  3. 我是否必須爲這樣的新用戶創建表空間?

這些問題還與新PC上新安裝的11g R2數據庫有關。任何將數據庫遷移到全新安裝的數據庫的建議都是值得歡迎的!

回答

5

「目標數據庫是否需要使用表空間和/或用戶(模式)進行準備才能成功將模式從一個數據庫(11g R1)遷移到另一個數據庫(11g R2)?」

表空間 - 是的。用戶 - 不。


UDI-00014: invalid value for parameter, 'attach' 

我想打電話時IMPDP參數的順序不正確。如果是這樣的形式:

impdp username/password DUMPFILE=<filename> [and then whatever other parameters you need for your import] 

既然你做一個「遷移」我認爲它是一個完整的小鬼/ EXP,在這種情況下,你可能想:

impdp username/password DUMPFILE=<filename> FULL=Y 

關於在同一數據庫內的電流測試,我建議你檢查出:

http://psoug.org/reference/datapump.html

的合作多個示例

+0

謝謝,我沒有看到錯誤的參數,我確信其他的原因。 –

+0

以防萬一:我遇到了這個問題,因爲我正在寫轉儲文件的名稱,但在某種程度上丟失了「dumpfile =」。 – Alfabravo

0

如果在導入過程中未使用ATTACH參數,請打開一個新的命令行窗口並運行導入,現在它應該可以工作。對我來說,環境變量是相同的,但是一些現在如何工作。

0

我認爲很多人來到這裏爲: 'UDI-00014:參數錯誤像我這樣的無效值。對於我的情況如下。

我有一個不同的場景,對我來說,它抱怨'remap_schema'參數。看來我需要雙引號增加值如下所示:

以前(失敗)

IMPDP用戶/密碼目錄= dump_dir中轉儲文件= myfile.dmp remap_schema = my_schema:my_schema REMAP_TABLESPACE = my_schema: my_schema日誌文件= mylog.log

(工作)

IMPDP用戶/密碼目錄= dump_dir中轉儲文件= myfile.dmp remap_schema = 「my_schema」: 「my_schema」 REMAP_TABLESPACE = 「my_schema」: 「my_schema」羅gfile = mylog.log