Oracle schema 级别的数据迁移


最近一段时间,跟着FALABELLA和FM两个项目组,做Oracle DB相关的支持工作,因为项目属于开发阶段,总有一些数据库的复制工作,比较了几种方法,感觉用EXPDP/IMPDP还不错,能顺利实现开发人员的需求。

    需求:实现user/schema级别的数据迁移。
    版本:Oracle Enterprise 11g R2

   总体来说分为以下几步:  

1.查看原库和目标库的DUMP目录。

  1. SQL> select * from dba_directories;  
  2. SYS        SUBDIR                /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/order_entry/2002/Sep  
  3. SYS        SS_OE_XMLDIR          /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/order_entry/  
  4. SYS        LOG_FILE_DIR          /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/log/  
  5. SYS        DATA_FILE_DIR         /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/sales_history/  
  6. SYS        XMLDIR                /ade/b/2125410156/oracle/rdbms/xml  
  7. SYS        MEDIA_DIR             /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/product_media/  
  8. SYS        DATA_PUMP_DIR         /opt/oracle/app/oracle/admin/oracle/dpdump/  
  9. SYS        ORACLE_OCM_CONFIG_DIR /opt/oracle/app/oracle/product/11.2.0/dbhome_1/ccr/state  
  10. rows selected.  

上面 DATA_PUMP_DIR就是直接可以用的DUMP目录,导出文件和导入文件就放在上面的路径下,如果没有,则需要手动创建并赋给读/写权限。

  1. SQL>CONN sys /as sysdba  
  2. SQL>CREATE DIRECTORY DATA_PUMP_DIR AS '/opt/oracle/app/oracle/admin/oracle/dpdump/';  
  3. SQL>GRANT READ,WRITE ON DIRECTORY TO TEST;  

2.对比原库和目标库的username和tablespace

如果目标库中没有需要导入的username和tablespace,则需要在目标库中创建username和tablespace。

  1. SQL> select username,default_tablespace from dba_users; --查看原库中的用户和对应的默认表空间   
  2. SQL> create tablespace test_tbs datafile '/opt/oracle/oradata/test/TEST_TBS01.DBF' size 1024m autoextend on;  
  3. SQL> create user test identified by test default tablespace test_tbs;  

3.导出脚本 

  1. expdp system/oracle@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_20111014.DMP SCHEMAS=FALABELLA_CL_CATA,FALABELLA_CL_CATB,FALABELLA_CL_PUB logfile=falabella_expdp_20111014.log status=10 parallel=4 CONTENT=ALL  

4. 导入脚本

  1. --需要从一个schema导入到另一个schema   
  2.   
  3. impdp system/oracle@TEST DIRECTORY=dump_dir DUMPFILE=ATG_12OCT11.dmp LOGFILE=impdp_mf_20111013_2.log  SCHEMAS=QA2_ATGPUB_MF,QA2_ATGCATALOGA_MF REMAP_SCHEMA=QA2_ATGPUB_MF:QA2_ATGPUB_MF,QA2_ATGCATALOGA_MF:QA2_ATGCATALOGB_MF CONTENT=ALL PARALLEL=4 STATUS=10 TABLE_EXISTS_ACTION=REPLACE  
  4.   
  5. --不需要更名schema   
  6.   

相关内容