资讯专栏INFORMATION COLUMN

性能优化之Oracle 19C数据泵数据迁移问题集锦

IT那活儿 / 3666人阅读
性能优化之Oracle 19C数据泵数据迁移问题集锦

亲爱滴伙伴们!本萎专家又来了,掌声响起来。哈哈哈。。。。。。咋感觉那么别扭啊。


好了,下面开始咱今天的分享。


由于12C版本不是很稳定,本萎大湿所在客户现场后续安装的数据库都集成19C版本。这就涉及频繁的数据迁移、同步等工作。


本篇就本萎大湿遇到的几个数据导出导入(EXPDP/IMPDP)遇到的问题进行一个分享。希望对各位看官有所借鉴。


场景一:

源端:12.2.0.1

目标端:19.3

在目标端通过imdp走dblink方式导入时,报ORA-39097,ORA-39065,ORA-03150

报错截图如下:


从图中我们可以看到JOB由于通道关闭导致导入失败,最开始本萎大湿怀疑是网络问题,通过ping,traceroute等各种姿势确认网络没问题。


心烦意燥之下,本萎大湿自我安慰任务报错是偶发的,并再次尝试,在成功导入几个表之后又出现通道关闭报错。多次尝试之后,本萎大湿放弃了。


他丫的就一个导数而已,难道又遇上了19C数据泵走dblink方式的兼容性BUG?!去MOS撸撸吧,MOS上发现很多关于ORA-39097,ORA-39065报错的文章,但没一篇跟本萎大湿情况是类似的。


困难面前,大湿都是坚挺的,于是尝试在源端导出dmp文件,然后SCP到目标端再导入。人品大爆发啊,终于导入成功了。


说到这里本萎大湿要感慨下,impdp走dblink方式数据导入一直都有不少BUG,无论哪个版本都是这个命运。根据本萎大湿多年夜观天象得出的结论,这种问题都有一个最终的万全解决办法,那就是:


导出DMP文件到本地,然后SCP至目标端再impdp导入,保证啥报错都不会出。


附上本次走Dblink导入的脚本:


场景二:

源端:19.3

目标端:12.2.0.1

将dmp文件从源端导出并已传至目标端,在目标端进行导入的时候,发现impdp卡在连接数据库这一步,定住,不动了。我滴个乖乖,真的是见了锤子了。


导入日志如下:


在标注这里就没有日志输出了。就像两个互相钦慕已久的年轻人,好不容易疫情下开个房,良辰美景之际,坐床上聊天到天亮,没有进一步动作,脑袋被驴踢了吧。。。


查看impdp进程,发现并没有派生sqlplus进程,证明还没到连接数据库那步


是不是主机资源有什么异常,查看后发现内存紧张,swap都使用了85%了



那到底跟内存有没有关系呢?决定尝试释放内存试试。由于是测试库,只要确认应用没用即可重启实例。重启实例之后内存及swap均释放不少,再次导入成功。


场景三:

源端:19.3

目标端:12.2.0.1

将dmp文件从源端导出并传至目标端,在目标端进行导入的时候,报19C导出的dmp文件不兼容12C:




解决办法:

在19C expdp导出时加入参数version=12.2.0.1.0即可



最后,很多看官可能会问,萎大湿啊,你这些脚本都是可以直接copy使用的,但你用的是图片,你是啥居心啊?



本萎大湿只想说,年轻人,我是为你好,用这种方式来锻炼你的手速。


好了,本次分享到此结束,咱们下回分解再见,周末愉快。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130231.html

相关文章

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<