暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【Oracle】RAC单节点使用数据泵expdp命令,你有两种选择

IT技术佳肴 2018-11-29
2456

故事背景



在单实例环境下可以执行的expdp命令,拿到RAC集群的某个节点下执行,报错了。不要担心,这是正常现象,只需要分析、处理、验证即可,完事数据库处理技能+1。



错误信息



错误信息看着也很简单,就是ORA-31693 ORA-31617 ORA-19505 ORA-27037错误。


问题分析



MOS是一个很好的问题搜索渠道,80%以上的数据库问题都可以在里面找到。


在MOS上找到参考文章:

DataPump Export (EXPDP) Fails With Errors ORA-31693 ORA-31617 ORA-19505 ORA-27037 In a RAC Environment (文档 ID 1597395.1)


按照MOS文章的说法,问题的原因如下:

The problem occurs when Datapump Export is being performed on a multi-node RAC where the dumpfile destination is not shared to all nodes for access.  Since multiple nodes will be running the Datapump job, ALL nodes must have access to the mount point where the dump file will be written. 


解决方案有两种:

1. Share/mount the dumpfile destination with all RAC nodes performing the expdp 


- OR - 


2. Use CLUSTER=N during Datapump so it will only run on the node which has the mount point and permissions to write to it.


显然,问题是因为在单个节点备份的路径对RAC集群的其他节点不可见而导致的,所以需要通过修改备份路径为所有nodes可以访问的路径或者增加CLUSTER=N参数进行解决。这里由于路径已经固定,所以选择增加CLUSTER=N参数的方法进行处理。


问题处理



修改备份命令,增加CLUSTER=N参数后重新执行:

问题顺利解决。


问题总结



在RAC单节点执行expdp命令,你有两种选择:

1.directory是所有节点的共享路径,无论是NFS,DNFS,共享存储等,都是可以的。(读写权限必须要有

2.使用CLUSTER=N参数,在任意一个节点执行,前提是可以访问到directory。

文章转载自IT技术佳肴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论