记一次生产数据库Oracle数据泵导出报ORA
浏览量: 次 发布日期:2023-10-06 23:15:20
记一次生产数据库Oracle数据泵导出报ORA
先说一下背景,最近在对某个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
从提示看一开始以为是权限问题,但是重新授权后还是有这个报错。查了下资料才发现是:
数据泵的并行度设置为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
可以看到成功导出来了。
这里主要提个醒,parallel虽然能加快速度,但在有些场景还是得慎用的。镇江数据恢复后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~