生产RAC数据库expdp导出报错?原来是并行度设置问题

概述先说一下背景,最近在对某个RAC数据库做瘦身,需要对历史数据做迁移。当在RAC数据库执行EXPDP并行导出时出现了这个错误信息–ORA-3

概述

先说一下背景,最近在对某个RAC数据库做瘦身,需要对历史数据做迁移,当在RAC数据库执行EXPDP并行导出时出现了这个错误信息–ORA-31617,下面记录下解决的整体思路。


具体报错

导出的命令如下:

expdp rfuser/"xxx" directory=dp_hwb dumpfile=TAB_SP_OTMSHIPMENT.dmp LOGFILE=TAB_SP_OTMSHIPMENT.log TABLES=TAB_SP_OTMSHIPMENT QUERY=TAB_SP_OTMSHIPMENT:\"WHERE INSERT_TIME\<= TO_DATE\(\'20181230 00:00:00\',\'yyyymmdd hh24:mi:ss\'\)\" exclude=statistics parallel=4 
生产RAC数据库expdp导出报错?原来是并行度设置问题

从提示看一开始以为是权限问题,但是重新授权后还是有这个报错。查了下资料才发现是:

数据泵的并行度设置为4,同时向4个DUMPFILE中写入数据。在写入时出现ORA-31693、ORA-29913和ORA-31617错误。


解决

这里发现对于RAC环境而言,Oracle会尝试将并行导出放到两个节点上,而由于DIRECTORY是本地磁盘,且在另外一个节点上没有建立同样的目录,因此打开文件报错的信息。

那么如果想要使用RAC上的并行导出,确保相同的目录在两个节点上同时存在。如果只想在一个节点上执行数据泵的导出那么就不要使用并行方式。

去掉并行参数测试:

 expdp rfuser/"xxx" directory=dp_hwb dumpfile=TAB_SP_OTMSHIPMENT.dmp LOGFILE=TAB_SP_OTMSHIPMENT.log TABLES=TAB_SP_OTMSHIPMENT QUERY=TAB_SP_OTMSHIPMENT:\"WHERE INSERT_TIME\<= TO_DATE\(\'20181230 00:00:00\',\'yyyymmdd hh24:mi:ss\'\)\" exclude=statistics 
生产RAC数据库expdp导出报错?原来是并行度设置问题

可以看到成功导出来了。

生产RAC数据库expdp导出报错?原来是并行度设置问题


这里主要提个醒,parallel虽然能加快速度,但在有些场景还是得慎用的。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

生产RAC数据库expdp导出报错?原来是并行度设置问题

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/81989.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信