近期处理的Oracle数据库问题总结

近期处理的Oracle数据库问题总结

最近帮一些朋友处理了一些Oracle的问题,也从中发现了一些潜在的问题,索性总结出来作为借鉴。为了保证信息的敏感,里面的问题描述可能和真实情况不符,但是问题的处理方式是真实的。

问题1:Oracle备库无法启动

问题2:Oracle备库无法同步

问题3:主库添加数据文件后,备库MRP退出。

问题4:备库数据无法同步

问题1:Oracle备库无法启动

有一个数据库备库无法启动,这个问题听起来蛮有意思,这是一个套11g的数据库,其实可以先把备库置为read only,然后开启日志应用,等状态变为read only with apply之后,就可以了,但是真实的情况还是有一些特别之处。我查看环境里的配置,发现主从复制关系竟然都没有了,但是尽管复制关系没有了,要把数据库置为只读还是可行的,结果尝试了一圈都不行,最后发现是这位同学把system表空间的文件给调换了。

问题2:备库无法同步数据

这个问题在我随后去跟进的时候,发现问题比之前有了很大的改观,备库可以正常启动了,但是现在的问题是主从数据的复制依旧失败,从归档参数可以看到复制关系是存在的,网络配置也没问题,面对这样一个看起来有些奇怪的问题,我的处理思路就很直接,肯定是哪里有一些我们忽略的细节,怎么能够快速定位问题,排查问题呢,DG Broker就是一款神器,主备库几乎不需要做什么额外的配置,就可以很轻松的创建配置,结果不到10分钟,配置的时候,发现问题的原因就是备库的db_unique_name和主库是一样的,修改之后,问题马上迎刃而解。所以问题原因都很简单,但是能够很快从中找到这个原因,有一些技巧就会事半功倍。

问题3:主库添加数据文件后,备库MRP退出。

第3个问题比较特别,是因为主库的表空间不足,导致数据写入阻塞,扩容了表空间之后,发现问题就来了,备库的MRP竟然异常退出,关于数据文件导致的MRP异常退出,印象中比较深是在10.2.0.4里面,add datafile之后drop datafile会导致MRP异常,确切的说,这是一个bug,但是这里碰到的问题是在11g里,只是添加了数据文件而已。

错误大概是这样:

/opt/oradata/u01/app/oracle/diag/rdbms/xxxxx_dg/xxxx/trace/xxxx_dbw0_9328.trc:

ORA-01186: file 6 failed verification tests

ORA-01157: cannot identify/lock data file 6 - see DBWR trace file

ORA-01111: name for data file 6 is unknown - rename to correct file

ORA-01110: data file 6: '/U01/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00006'

这个6号数据文件就是新增的,简单分析之后,就会发现又是一个坑,主要还是参数standby_file_management是manual导致,可以修改下这个文件的路径,然后开启文件管理为auto即可。最后开启日志应用。

  1. alterdatabasecreatedatafile

  2. '/U01/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00006'as'xxxxxx';

  3. altersystem setstandby_file_management=auto;

  4. alterdatabaserecover managed standby databasedisconnect fromsession using currentlogfile;

问题4:备库数据无法同步。

这个问题和问题2是一样的效果,但是问题的原因却有很大的差别。这个问题的愿意就在于闪回去的设置,即归档文件无法正常创建,不是系统层面的空间不足,而是闪回区的大小不足。

所以问题的原因和现象可以归纳为四点建议:

  1. 备库的搭建和同步关系维护建议使用DG Broker,他们的差别就跟自动挡和手动挡差不多,能自动挡干嘛非要手动挡。

  2. 备库的文件路径建议保持一致,建议standby_file_management为auto

  3. 尽可能设置主备库的闪回区为一个较大的值范围,保证数据的写入不会因为逻辑限制而阻塞。

  4. 全方位,细粒度的检查,把问题解决在初始阶段。

单纯说上面的问题,其实不难,但是真实的环境,真实的问题,和你知道结果分析原因是两回事。更何况,把别人的问题当做自己的问题一样来对待,别人也会认真对待你。

原则上,百度谷歌没有答案的问题,可以邮件(jeanrock@126.com)沟通,有些问题可能没有答案或者因为时间,会有延误,敬请谅解,欢迎技术交流。

近期处理的Oracle数据库问题总结

上一篇:RAID组中的“Foreign”状态磁盘


下一篇:NBI可视化集成clickhouse,实现百亿级数据分析能力