当前位置: 首页 > news >正文

故障处理:一次由于盘符变化导致的Oracle 19.7集群无法启动

故障描述

近日,由于一套承载着20个pdb的Oracle 19.7 RAC节点1由于硬件故障导致服务器宕机,在服务器更换完主板后发现映射的分布式存储磁盘盘符发生了变化,导致集群在自动启动时找不到voting disk启动失败。报错如下:

图片

故障分析思路

  1. 查看磁盘是否已经映射

图片

通过比对两边磁盘数量及大小一致。

进一步查看两个节点udev规则,内容如下:

图片

通过查看绑定规则发现,有绑定磁盘名称的也有绑定磁盘分区的,集群的ocr磁盘组对应的盘正是使用的分区名绑定,进一步推断是由于绑定了具体磁盘名称,故障节点磁盘名称发生变化,导致asm无法识别ocr磁盘组对应的磁盘。

故障解决思路

方案1:修改故障节点存储映射磁盘的磁盘名称,通过uuid比对,使名称和正常节点保持一致。

方案2:重新修改故障节点的磁盘udev绑定规则,生成新的磁盘名称。

方案验证

方案1:经过咨询多位资深系统工程师,该方案执行起来较为复杂,修改完重启系统后可能还会变化,需要打相关内核补丁进行固定,最终改方案被否定。

方案2:由于手头有19c RAC测试环境,首先在测试环境进行了验证,验证过程略,验证结果如下:

1.查看asm_disk参数

图片

2.查看原来磁盘名称(两节点一致)

图片

3.停止集群并修改udev绑定规则

图片

4.启动集群并进行磁盘检查

节点2 asm磁盘信息

图片

5.集群状态检查正常(节点1集群也进行了重启测试)

图片

经过验证,该方案可行。

生产环境调整

1.修改udev绑定规则

图片

2.执行udevadmin trigger使规则生效

3.启动集群并查看集群状态

图片

4.启动后该节点磁盘组状态及数据库状态正常,pdb都为读写模式:

图片

图片

5.查看该节点数据库告警日志

图片

通过告警日志发现,数据库hung住了,而此时该节点异常卡顿,命令都无法正常执行,同时发现asm实例已经重启。通过和硬件工程师沟通,该主机4颗CPU,坏了两颗,考虑到硬件故障还未完全解决,当即停掉该节点集群,等待硬件问题解决后再进行启动。

结语

至此,本次故障就处理结束,后续还需要等硬件修复后进行集群启动,另一个正常节点需要寻找停机维护时间,更改原来的udev绑定规则,使两个节点保持一致。

相关文章:

  • 一次由于SQL Server BUG引起的数据库AlwaysOn主从切换故障分析处理
  • Linux(centos)中使用源码安装PostGIS
  • SQL Server Always ON 数据同步原理
  • RFS(一)就从这里开始吧
  • 谈谈安装MYSQL ODBC遇到的报错(Error 1918)
  • RFS( 二 )----一些常用的快捷键
  • RFS(三)----解决x64机器上IE11版本使用IEDriverServer在输入英文/数字很慢的问题
  • RFS(四)${EMPTY}参数
  • RFS(五)AutoItLibrary库RUN关键字的用法及附加的其他关键字
  • LoadRunner(一)LR文件整个读取和计算长度
  • LoadRunner(二)LR参数文件多列的使用和局部变量超长的问题解决方法
  • 文件批量Base64编码工具
  • Windows下批处理方式压缩文件夹为tar.gz的方法
  • RFS(六)Open Browser后,页面显示This is the initial start page for the WebDriver server.的解决办法
  • 解决在Windows server 2012R2上无法安装Intel I219-V,I211,I217-V,I218-V网卡驱动的问题
  • 【mysql】环境安装、服务启动、密码设置
  • 03Go 类型总结
  • 0x05 Python数据分析,Anaconda八斩刀
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • DataBase in Android
  • ESLint简单操作
  • k8s 面向应用开发者的基础命令
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mysql数据库的条件查询语句
  • SAP云平台里Global Account和Sub Account的关系
  • Vue 2.3、2.4 知识点小结
  • vue学习系列(二)vue-cli
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 那些年我们用过的显示性能指标
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • C# - 为值类型重定义相等性
  • postgresql行列转换函数
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (4) PIVOT 和 UPIVOT 的使用
  • (BFS)hdoj2377-Bus Pass
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • ./configure,make,make install的作用
  • .Net 高效开发之不可错过的实用工具
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net与java建立WebService再互相调用
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Bean, @Component, @Configuration简析
  • [20180224]expdp query 写法问题.txt
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [asp.net core]project.json(2)
  • [C++]类和对象【上篇】
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [C语言]——C语言常见概念(1)