標籤:解決辦法 gbk data imp use cto 匯出 users 提示
Oracle dmp檔案匯入(還原)到不同的資料表空間和不同的使用者下
一、exp/imp解決方案:
1、可以用sed修改dmp檔案,正常匯入
sed -i 's/TEST_TS/USERS/g' a.dmp
2、dmp檔案包含匯出時候資料表空間的資訊,匯入時候如果沒有建立相應的資料表空間會提示資料表空間不存在
3、如果幾個表匯出,匯入時將錯誤忽略 ignore=y即可
4、用transport_tablespace參數,transport tablespace將一個資料表空間下的資料移到另一個資料表空間
4.1、使用transport_tablespace匯出資料 exp 使用者名稱 transport_tablespace=y tablespaces=(TEST_TS) file=/opt/b.dmp exp test1 file=test1.dmp(匯出不加transport_tablespace參數也可以的)4.2、在另外一台伺服器上將資料移到test1相同使用者下 imp test1 transport_tablespace=y file=a.dmp datafiles=/u01/app/oracle/ oradata/gbksl/a01.dbf ignore=y full=y;4.3、在另外一台伺服器上將test1匯出dmp檔案資料移到test2使用者下 imp test1 transport_tablespace=y file=/opt/test1.dmp fromuser=test1 touser=test2 datafiles='/u01/app/oracle/oradata/gbksl/a01.dbf' ignore=y full=y;
二、impdp解決辦法:
使用impdp命令進行匯入
impdp test1/test123 dumpfile=XXX.dmp directory=dpdata1 remap_schema=testl:test2 remap_tablespace=ts_test1_prod:test2_data
參數說明
dumpfile:需要匯入的dmp檔案名稱
directory:dmp檔案所在的目錄檔案夾
REMAP_SCHEMA: 該選項用於將源方案的所有對象裝載到目標方案中。 REMAP_SCHEMA=source_schema:target_schema
REMAP_TABLESPACE: 將源資料表空間的所有對象匯入到目標資料表空間中。 REMAP_TABLESPACE=source_tablespace:target:tablespace
其中:ts_test1_prod:原先dmp檔案的資料表空間名稱
test2_data:需要匯入到的資料表空間的名稱
Oracle dmp檔案匯入(還原)到不同的資料表空間和不同的使用者下