2013-02-28 65 views
8

我有一個使用exp命令行實用程序從一個模式user1導出的數據dmp文件。將一個模式導入另一個新模式 - Oracle

我想使用imp命令行實用工具將此轉儲導入另一個新創建的(空)模式用戶2。

我嘗試了一些事情,如:

imp system/[email protected] fromuser=user1 touser=user2 file=E:\Data\user1.dmp log=E:\Data\user1.log 

我得到一個錯誤

IMP-00002: failed to open user1.dmp for read 
Import file: EXPDAT.DMP > 

任何幫助表示讚賞。

+1

錯誤似乎表明問題出在轉儲文件本身。你確定該文件存在於本地機器的e:\ data目錄中嗎?您確定您登錄的Windows用戶有權訪問此文件嗎?其他進程是否有文件被鎖定? – 2013-02-28 18:25:05

+0

如果要重新映射模式,最簡單的解決方案是停止使用'exp' /'imp'並開始使用DataPump實用程序:'expdp'和'impdp' – 2013-02-28 21:36:04

回答

1

的問題是與dmp文件本身。我不得不重新導出文件,命令正常工作。謝謝@Justin Cave

23

在您更正了可能的dmp文件問題後,這是一種確保架構被重新映射並適當導入的方法。這也將確保表空間也將發生變化,如果需要的話:

impdp system/<password> SCHEMAS=user1 remap_schema=user1:user2 \ 
      remap_tablespace=user1:user2 directory=EXPORTDIR \ 
      dumpfile=user1.dmp logfile=E:\Data\user1.log 

EXPORTDIR必須在Oracle中被定義爲一個目錄作爲系統用戶

create or replace directory EXPORTDIR as 'E:\Data'; 
grant read, write on directory EXPORTDIR to user2; 
+1

您無法使用DataPump導入使用'exp'創建的轉儲文件。 – 2013-02-28 21:35:18

+0

糟糕...我錯過了他們使用exp而不是expdp。我會工作,如果它創建使用expdp:P – Adam 2013-02-28 21:43:48

+0

+1,因爲如果轉儲是使用expdp創建的,這將是一個很好的答案。 – Saleika 2013-10-15 09:52:20

相關問題