1. 程式人生 > >Oracle dmp文件導入(還原)到不同的表空間和不同的用戶下

Oracle dmp文件導入(還原)到不同的表空間和不同的用戶下

map 文件的 schema 導出數據 esp ans 進行 taf 修改

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文件導入(還原)到不同的表空間和不同的用戶下