最近一段时间,跟着FALABELLA和FM两个项目组,做Oracle DB相关的支持工作,因为项目属于开发阶段,总有一些数据库的复制工作,比较了几种方法,感觉用EXPDP/IMPDP还不错,能顺利实现开发人员的需求。 需求:实现user/schema级别的数据迁移。
版本:Oracle Enterprise 11g R2
总体来说分为以下几步:
1.查看原库和目标库的DUMP目录。
- SQL> select * from dba_directories;
- SYS SUBDIR /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/order_entry/2002/Sep
- SYS SS_OE_XMLDIR /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/order_entry/
- SYS LOG_FILE_DIR /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/log/
- SYS DATA_FILE_DIR /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/sales_history/
- SYS XMLDIR /ade/b/2125410156/oracle/rdbms/xml
- SYS MEDIA_DIR /opt/oracle/app/oracle/product/11.2.0/dbhome_1/demo/schema/product_media/
- SYS DATA_PUMP_DIR /opt/oracle/app/oracle/admin/oracle/dpdump/
- SYS ORACLE_OCM_CONFIG_DIR /opt/oracle/app/oracle/product/11.2.0/dbhome_1/ccr/state
- 8 rows selected.
上面
DATA_PUMP_DIR就是直接可以用的DUMP目录,导出文件和导入文件就放在上面的路径下,如果没有,则需要手动创建并赋给读/写权限。
- SQL>CONN sys /as sysdba
- SQL>CREATE DIRECTORY DATA_PUMP_DIR AS "/opt/oracle/app/oracle/admin/oracle/dpdump/";
- SQL>GRANT READ,WRITE ON DIRECTORY TO TEST;
2.对比原库和目标库的username和tablespace
如果目标库中没有需要导入的username和tablespace,则需要在目标库中创建username和tablespace。
- SQL> select username,default_tablespace from dba_users; --查看原库中的用户和对应的默认表空间
- SQL> create tablespace test_tbs datafile "/opt/oracle/oradata/test/TEST_TBS01.DBF" size 1024m autoextend on;
- SQL> create user test identified by test default tablespace test_tbs;
3.导出脚本
- 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. 导入脚本
- --需要从一个schema导入到另一个schema
-
- 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
-
- --不需要更名schema
-
Oracle查询某个表的参照关系修改Oracle XE Listener 占用的1521、8080端口相关资讯 Oracle数据库 Oracle入门教程 oracle数据库教程
- Oracle数据库全球化 (03月01日)
- Oracle数据库日期过滤方法性能比较 (02/02/2015 13:20:26)
- Oracle数据库安装中端口被占用问题 (10/29/2014 07:42:24)
| - 在CentOS 6.6上搭建C++运行环境并 (10/10/2015 19:44:40)
- Oracle数据库无法使用localhost和 (11/14/2014 16:39:10)
- 使用SQLT来构建Oracle测试用例 (08/28/2014 06:17:41)
|
本文评论 查看全部评论 (0)