如何使用DataPump迁移Oracle数据库

89次阅读
没有评论

共计 1707 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要介绍如何使用 DataPump 迁移 Oracle 数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

之前测试过使用 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 增量备份也是可以一试的。

以上是“如何使用 DataPump 迁移 Oracle 数据库”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计1707字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)