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

一次意想不到的ADG中断

原创 薛晓刚 2025-07-07
303

背景很特殊

  • 非我所负责的范围。别人求助我有一套Oracle数据库的ADG中断了。
  • 这个背景是十几年前这个Oracle数据库的高可用采用了阵列复制的存储层解决方案。这个方案虽然也能做容灾,但是不是Oracle官方的解决方案。这个技术完全依赖底层存储复制技术,其原理是主数据的磁盘变化,同步到灾备磁盘上进行文件块的改写来实现。
  • 这种技术其实可以用到很多数据库上。因为这根本不是数据库技术。(这点涉及到现在的问题)对一般DBA来说不透明,至少不是数据库层面的高可用架构。阵列复制的灾备端是关闭不可以任何应用读写访问的。
  • 2015年的时候银行曾经发过案例,在主生产上有数据块和数据文件的损坏。在灾备端也同样坏了。所以数据库切换不切换都是无法启动的。所以这种解决方案应该属于淘汰的。
  • 当然在上世纪这种方案可能还有一定的作用。那时候数据库的高可用方案没那么成熟。至少在Oracle8的时候可能有用。
  • 正式因为这个背景,所以求助方也是考虑到这个问题。又增加了ADG的一个只读备库。至少现在备库可以读,比起原来不能访问好太多了。

从节点无法收到主库传来日志

  • 先说一个正常ADG的从节点的运行状态是什么样子的
  • image.png
  • 出问题是的时候,从节点是这样的
  • 1d5d41f003478888f1ce9d60e17bea1c.png
  • ADG的原理是主库送日志过来,那么就去主库看看。

主节点检查

  • 先检查主库参数。发现主从同步的参数没有了。例举一个
  • show parameter log_archive_config

NAME TYPE VALUE


log_archive_config string

  • 再看看spfile,发现非spfile启动。也就是说可能以前是写入spfile了。但是现在不是以spfile启动。难道说数据库重启了?还是人为重启的。

  • image.png

  • 检查日志,果然是发生过重启。但是没人告知求助者。最后问下来,有人承认重启过。按说重启也没问题,但是就是因为不是spfile启动(所以配置的参数没有了,这才引起的主从中断)
    image.png

从现象推断,现在是以pfile文件启动(甚至以前也是)

  • 由于运维方不会做ADG,采用了阵列复制。
  • 但是这种复制只复制data目录。
  • 而数据库所在的软件目录在本地硬盘不在阵列上,复制不过去。
  • 可能原因1:基于以上spfile文件没有通过过来。数据库切换启动后,无法以修改过的spfile启动。
  • 可能原因2:之前可能是pfile文件启动,之前所有命令在内存中。重启后丢失。

重新执行配置ADG的命令

  • ALTER SYSTEM SET LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(adg1,adg2)’;
  • ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/app/oracle/recovery_area/ADGL LGWR VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=adg1’;
  • ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=‘SERVICE=adg2 SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=adg2’;
  • ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=‘ENABLE’;
  • ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=‘ENABLE’;
  • ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=‘AUTO’;
  • ALTER SYSTEM SET FAL_SERVER=adg2;
  • ALTER SYSTEM SET FAL_client=adg1;
  • 这些命令都是标准格式,实际数据库名字替换了。
  • 然后日志开始补齐,用了一个多小时,那边反馈补完了。
  • 有两个参数,因为绝对路径一致不用改。因为如果要改也要写到spfile中重启数据库DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT不现实。

遗留隐患

  • 当这个数据库再次重启的话,依然会主从中断

小结

  • 实在没想到现在还有用pfile启动的数据库。
  • 都2025年了,数据库的问题能用原厂的技术就用原厂的技术,不要用第三方的。
最后修改时间:2025-08-26 14:46:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论