ITPub博客

首页 > 数据库 > Oracle > 【DATAPUMP】使用DataPump迁移Oracle数据库

【DATAPUMP】使用DataPump迁移Oracle数据库

原创 Oracle 作者:xysoul_云龙 时间:2017-11-01 23:17:14 0 删除 编辑

<1div style="margin:0px;padding:0px;font-family:" font-size:16px;"="">

前几天测试过使用RMAN迁移Oracle数据库(Oracle11.2.0.1-Oracle11.2.0.4,Windows to Linux) 下面简单说下使用数据泵的方式如何迁移。


相对来说,确实比较简单,导出导入,但也可以分为两种方式,一个是按照业务用户来做导出,再个全库导出,不只是多了一个full=y,其他也有一些不同的,好,我们来看看


环境介绍,源端Windows2008 x64+Oracle11.2.0.1

                  目标端:Redhat6.7 x64+Oracle11.2.0.4


首先环境准备,也就是目标端环境准备,Linux下Oracle数据库安装及打最新补丁,此处忽略。

不管是全库导出导入还是按照业务用户方式,都需要提前创建表空间,尤其数据量比较大的,都需要提前创建好,这样也节约时间。 那么我们如何获取源库创建表空间的ddl呢?

如下语句会列出所有表空间的创建语句,请注意系统相关表空间大小,例如SYSTEM、USERS,有可能表空间比较大,会有多个数据文件。

set long 1000000

set pages 9999

select dbms_metadata.get_ddl('TABLESPACE',tablespace_name) from dba_tablespaces;


查询某一个表空间的DDL语句

select dbms_metadata.get_ddl('TABLESPACE','MYDB') from dual;


源端可以执行全库导出操作了,首先我们需要创建directory

create directory exp as 'd:\datapump'; --导出使用sys用户,无需赋权

expdp '/ as sysdba' directory=my_exp dumpfile=myexpdb%U.dmp logfile=myexpdb.log parallel=2 EXCLUDE=STATISTICS parfile=mypar.par


#mypar.par m注意可以排除系统用户及非OPEN用户  全库导出无需创建用户

FULL=Y
EXCLUDE=SCHEMA:"in (select username from dba_users where account_status<>'OPEN' or username in('SYS','SYSTEM'))"


下面就简单了,目标端就可以导入

注意:全库导出,导入时会导入role、DIRECTORY、TABLESPACE、CONTEXT等,我们可以选择排除


impdp \'/ as sysdba\' directory=exp dumpfile=myexpdb%U.dmp logfile=myimpdb01.log parallel=2 exclude=DIRECTORY exclude=role exclude=CONTEXT exclude=TABLESPACE


导入完成,收集统计信息

exec dbms_stats.GATHER_DATABASE_STATS(estimate_percent=>null);


那么如果只导出业务用户呢,我们需要创建用户,并且赋予相关权限

通过以下语句生成创建用户的语句(Oracle11g)


通过以下语句生成赋权限语句


导出语句类似如下:

expdp '/ as sysdba' directory=my_exp dumpfile=myexpdb%U.dmp logfile=myexpdb.log parallel=2 EXCLUDE=STATISTICS schema=mydb,test


导入语句:

impdp \'/ as sysdba\' directory=exp dumpfile=myexpdb%U.dmp logfile=myimpdb01.log parallel=2


收集数据库统计信息


当然,这需要停机时间,如果对于停机时间要求特别严格,建议使用OGG相关同步软件,rman增量备份也是可以一试的。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29487349/viewspace-2146706/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
主要从事Oracle数据库 DBA相关工作,其他操作系统、中间件等也有涉及,热衷分享。岁月老将至,如有幸在江湖中留点踪迹,也是欣慰。 【文盲筱烨】好读书爱运动的IT技术爱好者 微博:文盲筱烨 微信公众号:筱烨视点

注册时间:2014-02-15

  • 博文量
    412
  • 访问量
    1104603