杨建荣的学习笔记

每天坚持一点点,个人微信公众号: jianrong-notes, 个人邮箱:jeanrock@126.com

  • 博客访问: 12798921
  • 博文数量: 1365
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-14 23:24
  • 认证徽章:
个人简介

每日发文,或技术、或总结,偶有日间小事也以为记,谓之学习笔记,成年累月1300多天,中间几乎没有间断,要旨只有一个:学习交流,共同进步 。 学习笔记精华整理,个人新书《Oracle DBA工作笔记》已开售,在京东,当当,亚马逊,淘宝,天猫均有售,欢迎选购。

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类

全部博文(1365)

文章存档

2017年(299)

2016年(358)

2015年(360)

2014年(278)

2013年(48)

2012年(21)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题

分类: 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)沟通,有些问题可能没有答案或者因为时间,会有延误,敬请谅解,欢迎技术交流。

阅读(41) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册