问题背景:

在对一套两节点Oracle RAC19.18集群进行部署时,出现启动数据库实例就会出现主机出现重启的情况,检查发现主机重启是由于节点集群被驱逐导致​。

问题:

两节点Oracle RAC19.18集群,启动数据库实例会导致主机出现重启。

问题分析:

主机多次出现重启,拿最近一次节点一的重启时间2023-02-23 14:24进行分析

首先查看节点一主机的日志/var/log/messages,只有主机14:24:00的启动日志,除此以外没有明显的错误信息,主机日志没有提供有价值的信息。

查看节点一的集群的alert日志,在14:19:04出现节点一被节点二驱逐的信息this node was evicted by node 2以及出现reboot advisory message text:oracssdagent,这里我们可以确认主机重启的原因是由于节点一被驱逐所导致。

在节点二的集群alert日志,可以看到14:18:53节点二ASM发起kill节点一成员ASM的信息Member kill issued by PID for 1members,group DB:+ASM​。

在14:19:03升级为节点驱逐,节点二发起节点一驱逐"Member kill issued by node 2 is being escalated to evict node 1 。

查看节点一,节点二的ocssd日志ocssd.trc,进一步分析被驱逐的原因,

节点一在14:15:29开始出现检查gipc超时的信息gipcretTimeout。

节点一在14:18:48ocssd出现进程终止Death被隔离以及gipc网络断开的报错。

节点二在14:18:53发起了kill member ASM的操作Kill requested for group DB+ASM。

节点二由于kill member的操作没有在规定时间内完成升级,在14:19:03升级为节点驱逐 node kill。

节点一的ocssd日志显示,在14:19:04,在节点一执行的驱逐操作都出现异常abort,驱逐是通过异常终止的方式。

从节点二的ocssd日志来看,直到14:19:30驱逐节点一的操作还没完成node(1) exceeded graceful shutdown,并且由于配置IPMI管理员用户,IPMI-kill管理口登陆主机的方式进行重启也没法进行Node kill could not beperformed. Admin or connection validation failed。

直到14:19:31,节点一的cssagent/cssmonit监控不到ocssd的本地心跳,发起了主机重启,整个节点驱逐才结束。

所以,整个对节点一的驱逐过程,一开始是从节点二的ASM发起的成员驱逐member kill,由于member kill没有在规定时间内完成,升级为节点驱逐node kill,节点驱逐最终触发了节点一的主机重启,驱逐之前集群的ocssd的网络,存储以及本地心跳正确,可能存在问题的地方在发起驱逐的ASM实例以及gipc进程。

接下来,分析ASM实例的alert日志以及trc文件

节点一ASM的alert日志,在14:18:33出现节点二的驱逐信息Received an instance abort message from instance 2,除此以外没有明显的异常信息。

节点二ASM的alert日志,可以发现14:17:58在节点二LMD与节点一的通信出现问题Communications reconfiguration: instance_number 1 from LMD0。

节点二14:18:33发起了实例驱逐Evicting instance 1 from cluster。

节点二查看LMD的进程trc文件,出现等待节点一ACK返回超时。

问题时间段节点一并没有产生的LMD,LMON日志,只能从LMS进程去分析是否存在其他问题,LMS进程的日志显示出现调用时间过长的信息GSIPC:LOOP: long elapsed time 80092 us,进程可能存在资源不够的问题。

接下来分析节点一的GIPC进程日志,发现存在异常的地方缺失了14:14:47-14:24:54日志,分析到这里,结合之前gipc进程超时、LMD进程超时、进程日志写丢失,严重怀疑操作系统的资源存在问题。

查看问题时间段的OSW监控信息,发现存在内存耗尽的情况,可以看到从14:10:21的剩余内存394G到最后一次记录14:14:22的剩余内存29G,平均每分钟使用内存70G+(这个时间段正在启动数据库实例),按照这个内存使用在14:15分之后主机的内存已经耗尽,这个内存耗尽时间与问题发生时间(14:15:29~14:19:30)一致。

分析主机内存耗尽的原因,当前主机的内存配置为1TB,实例的SGA+PGA内存为650G,其中SGA内存占450G,这个内存配置正常情况下内存还是足够的充裕的。

查看内存的配置情况,发现配置的600GB大页内存完全没有被数据库实例所使用,也就是说实例启动的SGA 450G内存全初始化到非大页内存(424G)里面,所以导致剩余的内存被耗尽。

问题原因:

        综合上述的分析信息,我们可以确认RAC集群主机重启的原因为​:

1 集群节点一被节点二驱逐引发了节点一的ocssd进程异常终止,导致ocssd监控进程cssagent/cssmonit监控不到ocssd的本地心跳,触发了主机重启。

2 集群节点二驱逐节点一的原因为,节点一的主机内存耗尽引发集群GIPC,LMD进程异常,导致节点一无法正常响应节点二的通信,触发了节点驱逐。

​    ​3 节点一主机内存耗尽的原因为,数据库的大页内存没有被使用,导致数据库实例的SGA内存全初始化到非大页内存里面,导致剩余的内存被耗尽。

问题解决:

查看用户大页内存的配置/etc/security/limits.conf,oracle用户当前配置memlock并没有问题。

重启主机以及数据库实例,大页内存也没有得到使用,之后在MOS上查到大页内存未被使用的文章Not Able To Start The Database, fails with ORA-27125: unable to create shared memory segment (Doc ID 2242978.1)

文章里面说到大页内存有可能需要配置操作系统权限来创建部分共享大页,通过为Oracle用户配置参数vm.hugetlb_shm_group=<gid>以分配权限。​

为Oracle用户配置创建大页内存权限后,大页内存终于被实例加载使用,此后,集群主机重启问题再也没有发生,问题得到了解决。

---在/etc/sysctl.conf里面配置
vm.hugetlb_shm_group=54321

最后,还剩下一点待解决的疑问,那就是hugetlb_shm_group参数是否一定需要配置,因为在其他服务器上,通常不需要单独去设置hugetlb_shm_group参数,Oracle实例也可以使用到巨页内存,但本案例,的确是需要去配置参数才能使用到大页内存​...

Oracle-RAC集群主机重启问题分析相关推荐

  1. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(续)

    DBA:Linux    下载  Oracle 数据库 11g    标签 linux, rac, clustering, 全部 在 Oracle Enterprise Linux 和 iSCSI 上 ...

  2. 【DB宝44】Oracle rac集群中的IP类型简介

    文章目录 Oracle rac集群中的IP类型简介 (一)Public IP (二)Private IP (三)Virtual IP(VIP) (四)SCAN IP (五)GNS VIP (六)HAI ...

  3. 资源放送丨《Oracle RAC 集群安装部署》PPT视频

    点击上方"蓝字" 关注我们,享更多干货! 前段时间,墨天轮邀请数据库资深专家 邦德 老师分享了<Oracle RAC 集群安装部署>,在这里我们将课件PPT和实况录像分 ...

  4. 今晚8点直播(内含福利)丨 Oracle RAC集群安装部署

    Oracle RAC集群安装部署-9月16日20:00 Oracle RAC真正的应用集群,它可以多个主机共同分散业务,来达到负载均衡和高可用,目前企业也大规模应用,具有稳定,很好的扩展性等特点. 作 ...

  5. 本周四直播预告(内含福利)丨 Oracle RAC集群安装部署

    Oracle RAC集群安装部署-9月16日20:00 Oracle RAC真正的应用集群,它可以多个主机共同分散业务,来达到负载均衡和高可用,目前企业也大规模应用,具有稳定,很好的扩展性等特点. 作 ...

  6. 浅谈Oracle RAC --集群管理软件GI

    浅谈Oracle RAC --集群管理软件GI基本架构 今天周五,想想可以过周末,心情大好.一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊.趁着现在心情愉悦,赶 ...

  7. Oracle Dataguard(主库为 Oracle rac 集群)配置教程(01)—— dataguard 服务器安装 Oracle 软件

    Oracle Dataguard(主库为 Oracle rac 集群)配置教程(01)-- dataguard 服务器安装 Oracle 软件 / 本专栏详细讲解 Oracle Dataguard(O ...

  8. linux下安装oracle集群,【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)...

    目录 数据库安装 继oracle集群安装之后,接下来也是最重要的数据库安装,整个数据库安装难度不大,用户以oracle用户身份登录RAC1主节点,对解压后的文件安装.主节点下安装后,其他所有结点自动安 ...

  9. oracle rac数据库特点,Oracle RAC集群结构的特点和缺点

    Oracle RAC,全称是Oracle Real Application Cluster,顾名思义即为真正的应用集群,整个集群系统由Oracle Clusterware (集群就绪软件)和 Real ...

最新文章

  1. ASP.NET完整打包卸载更新攻略(By Installshield 2010)【转】
  2. Android activity之间的滑入切换
  3. 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界:光照与材质专场...
  4. Windows运行命令收集
  5. ftp 速度_如何评价我的骑行功率(FTP)?
  6. sublime text3常用的一些快捷键
  7. visual studio code(vs code) 编译、运行、调试程序(调用g++)
  8. 在 RHEL 和 CentOS 上检查或列出已安装的安全更新的两种方法
  9. 多语言在线翻译工具Translatium for Mac
  10. c语言RePutDate用法,C语言 栈的使用
  11. idea将项目上传到SVN
  12. 初次编译cximage遇到的一些错误
  13. vue下载文件常用的几种方式
  14. python中pytz库用法详解
  15. 1.CPU体系架构-RISC指令集和CISC指令集
  16. 世界星载SAR发展5——SIR-C(1994,美国)
  17. ppt中如何合并流程图_PPT中流程图如何分支?
  18. “血战”户用光伏之一:市场需求在哪里?
  19. 前端学习CSS篇(三)
  20. 1.网络变成操作系统详解

热门文章

  1. 生活的苦 VS 学习的苦
  2. 数据接口异常中的错误
  3. Linux 日志分析工具之awstats详解
  4. H5小程序中实现emoji表情
  5. Access中创建含有OLE对象列的表
  6. DIC技术在煤矿土木结构研究的应用
  7. Nuget 401 Unauthorized 错误
  8. 【无标题】Vue项目添加网页背景图片
  9. 无限制生成,个人转账二维码的解决方案
  10. 2018-06-06-markdown-推荐markdown编辑器