Oracle dmp檔案匯入(還原)到不同的資料表空間和不同的使用者下
從生產環境拷貝一個dmp備份檔案,在另外一台電腦上搭建測試環境,用imp命令匯入dmp檔案時提示如下錯誤:
問題描述:
IMP-00038:無法轉換為環境字元集控制代碼
IMP-00000:未成功終止匯入
解決方案:
使用impdp命令進行匯入。
參考匯入命令
impdp onlinecolzs/onlinecozs dumpfile=XXX.dmp directory=dpdata1 remap_schema=onlinecol:onlinecolzs remap_tablespace=ts_onlinecol_prod:zaixianzs_data
參數說明
dumpfile:需要匯入的dmp檔案名稱
directory:dmp檔案所在的目錄檔案夾
REMAP_SCHEMA: 該選項用於將源方案的所有對象裝載到目標方案中。 REMAP_SCHEMA=source_schema:target_schema
REMAP_TABLESPACE: 將源資料表空間的所有對象匯入到目標資料表空間中。 REMAP_TABLESPACE=source_tablespace:target:tablespace
-----------------------------------------
具體步驟:
1、建立資料表空間和使用者。
2、建立目錄
create directory dpdata1 as 'D:\tempdmp'
把dmp檔案複製到剛才建立的目錄檔案夾下(D:\tempdmp),這個檔案夾需要自己手動建立。
3、執行impdp匯入命令:
impdp onlinecolzs/onlinecozs dumpfile=XXX.dmp directory=dpdata1 remap_schema=onlinecol:onlinecolzs remap_tablespace=ts_onlinecol_prod:zaixianzs_data
其中:ts_onlinecol_prod:原先dmp檔案的資料表空間名稱,如果不知道原先的資料表空間名稱是什麼,先隨便寫個,到時候匯入的時候會提示資料表空間不存在,把提示不存在的資料表空間名稱寫上去就可以。
zaixianzs_data:需要匯入到的資料表空間的名稱(第一步建立的資料表空間名稱)