Oracle RAC 集群启动顺序 转发:https://www.modb.pro/db/1824295923545612288?utm_source=index_ori

前言

前几天使用脚本在 RockyLinux 9.4 安装 Oracle 11GR2 RAC,安装完之后发现集群无法正常启动,后经过分析发现原来是因为 RHEL9 版本默认安装移除了 initscripts 软件包,需要人为手动安装,在 RHEL8 之前是默认安装的。

在分析问题的过程中,顺便对 Oracle RAC 集群启动顺序进行了更深入的了解,下面简单整理了一下,分享给大家一起看看,本文主要是以 11GR2 为例。

Oracle 11GR2 RAC 集群启动顺序

参考文档: 11GR2 Clusterware 和 Grid Home – 你需要知道的事 (Doc ID 2225748.1)

11GR2 Clusterware 的一些关键特性:

  • 在安装运行 11GR2 的 Real Application Clusters 数据库之前需要先安装 11GR2 Clusterware。
  • GRID HOME 包括 Oracle Clusterware 和 ASM。ASM 不能够放在另外单独的 HOME 下。
  • 11GR2 Clusterware 可以安装为 Standalone 模式(以来支持 ASM)或者 Oracle Restart 模式(单节点)。此时 Clusterware 是完整版 Clusterware 的子集。
  • 11GR2 Clusterware 可以独立运行,也可以运行在第三方 Clusterware 之上。关于支持矩阵请参考文档 Note: 184875.1 “How To Check The Certification Matrix for Real Application Clusters”
  • GRID HOME 和 RAC/DB HOME 必须安装在不同的路径下。
  • 11GR2 Clusterware 的 OCR 和 voting 文件必须是共享的,它们可以放在 ASM 里或者集群文件系统中。
  • OCR 每4个小时自动备份一次,备份文件放在 <GRID_HOME>/cdata/<clustername>/ 目录下,并且可以使用 ocrconfig 工具恢复。
  • 每次配置改变时,voting file 会被备份到 OCR 中,并且可以使用 crsctl 工具恢复。
  • 11GR2 Clusterware 需要最少一个私有网络(为了节点间的通信)和最少一个公共网络(为了和集群外通信)。多个虚拟 IP 需要注册到 DNS 中,包括 node VIPs (每个节点一个), SCAN VIPs (3个)。这可以通过网络管理员手工操作来完成也可以使用 GNS (Grid Naming Service) 来完成。(注意 GNS 也需要一个自己的 VIP)。
  • 客户端通过 SCAN (Single Client Access Name)来访问数据库。关于 SCAN 的更多信息请参照 Note: 887522.1
  • 集群安装后期,root.sh 会启动 clusterware。关于如何处理 root.sh 的相关问题,请参照 Note: 1053970.1
  • 每个节点只允许运行一套集群相关的后台进程。
  • 在 Unix 下,clusterware 是由 init.ohasd 脚本启动的。而 init.ohasd 脚本以 respawn 模式定义在 /etc/inittab 中。
  • 如果某个节点被认定为不健康,那么它会被从集群中驱逐(或者重启),以此来维持整个集群的健康。关于更多信息,请参照文档 Note: 1050693.1 “Troubleshooting 11.2 Clusterware Node Evictions (Reboots)”
  • 可以使用第三方时间同步软件(比如 NTP)来保持节点间的时间同步,也可以不使用第三方时间同步软件,而由 CTSS 来同步节点间时间,关于更多信息,请参照文档 Note: 1054006.1
  • 如果要安装低版本的数据库软件,那么需要在集群中 pin 住节点,否则会碰到 ORA-29702 错误。 更多信息请参照文档 Note 946332.1 以及 Note:948456.1。
  • 可以通过启动节点,或者执行"crsctl start crs"来启动集群。也可以执行"crsctl start cluster"来在所有的节点上启动集群。注意 crsctl 在 <GRID_HOME> 目录,注意 crsctl start cluster 仅在 ohasd 运行的时候才可以工作。
  • 可以通过关闭节点,或者执行"crsctl stop crs"来关闭 clusterware。或者执行""crsctl stop cluster"来关闭所有节点上的 clusterware。注意 crsctl 在 <GRID_HOME> 目录。
  • 手工杀掉(kill)集群的进程是不支持的。
  • 实例现在在 crsctl stat res -t 的输出中是 .db 资源的一部分,在 11GR2 上,没有单独的 .inst 资源。

下面的图片清晰的列出了各个层级:

关于启动顺序的简述:INIT 启动 init.ohasd (以 respawn 参数),而 init.ohasd 启动 OHASD 进程(Oracle High Availability Services Daemon),而 OHASD 又启动其它 4 个进程。

第一层:OHASD 启动:

  • cssdagent - 负责启动 CSSD 的 Agent。
  • cssdmonitor - 监控 CSSD 以及节点健康(和 cssdagent 一起)。
  • orarootagent - 负责启动所有 root 用户下的 ohasd 资源 的 Agent。
  • oraagent - 负责启动所有 oracle 用户下的 ohasd 资源的 Agent。

第二层:OHASD rootagent 启动:

  • CRSD - 管理集群资源的主要后台进程。
  • CTSSD - Cluster Time Synchronization Services Daemon
  • Diskmon
  • ACFS (ASM Cluster File System)驱动

第二层:OHASD oraagent 启动:

  • MDNSD - 用来实现 DNS 查询
  • GIPCD - 用来做节点间通信
  • GPNPD - Grid Plug & Play Profile Daemon
  • EVMD - Event Monitor Daemon
  • ASM - ASM 资源

第三层:CRSD 启动:

  • orarootagent - 负责启动所有 root 用户下的 crsd 资源的 Agent。
  • oraagent - 负责启动所有 oracle 用户下的 crsd 资源的 Agent。

第四层:CRSD rootagent 启动:

  • Network resource - 监控公共网络
  • SCAN VIP(s) - Single Client Access Name Virtual IPs
  • Node VIPs - 每个节点1个
  • ACFS Registery - 挂载 ASM Cluster File System
  • GNS VIP (optional) - VIP for GNS

第四层:CRSD oraagent 启动:

  • ASM Resouce - ASM 资源
  • Diskgroup - 用来管理/监控 ASM 磁盘组
  • DB Resource - 用来管理/监控数据库和实例
  • SCAN Listener - SCAN 监听,监听在 SCAN VIP 上
  • Listener - 节点监听,监听在 Node VIP 上
  • Services - 用来管理/监控 services
  • ONS - Oracle Notification Service
  • eONS - 加强版 Oracle Notification Service
  • GSD - 为了向下兼容 9i
  • GNS (optional) - Grid Naming Service - 处理域名解析

重要日志的路径

11GR2 Clusterware 后台进程日志都放在 <GRID_HOME>/log/<nodename>。 <GRID_HOME>/log/<nodename> 下的结构:

  • alert<NODENAME>.log(📢 注意:对于 clusterware 的问题,可以先检查这个文件)
  • ./admin:
  • ./agent:
  • ./agent/crsd:
  • ./agent/crsd/oraagent_oracle:
  • ./agent/crsd/ora_oc4j_type_oracle:
  • ./agent/crsd/orarootagent_root:
  • ./agent/ohasd:
  • ./agent/ohasd/oraagent_oracle:
  • ./agent/ohasd/oracssdagent_root:
  • ./agent/ohasd/oracssdmonitor_root:
  • ./agent/ohasd/orarootagent_root:
  • ./client:
  • ./crsd:
  • ./cssd:
  • ./ctssd:
  • ./diskmon:
  • ./evmd:
  • ./gipcd:
  • ./gnsd:
  • ./gpnpd:
  • ./mdnsd:
  • ./ohasd:
  • ./racg:
  • ./racg/racgeut:
  • ./racg/racgevtf:
  • ./racg/racgmain:
  • ./srvm:

<GRID_HOME> 和 $ORACLE_BASE 目录下的 cfgtoollogs 目录存放了一些其它的重要日志。比如 rootcrs.pl 以及其它配置工具,比如 ASMCA 等等。

ASM 日志存放在 $ORACLE_BASE/diag/asm/+asm/<ASM Instance Name>/trace

<GRID_HOME>/bin 目录下的 diagcollection.pl 可以自动收集重要的日志。以 root 用户执行它。

官方文档

以下列出官方文档中关于 Cluster Startup 的示例图:

11GR2

 

 

 

12CR2

 

 

 

18C

 

 

 

19C

 

 

 

21C

 

 

 

23ai

 

 

 

posted @ 2024-08-20 11:14  Libra_bai  阅读(2)  评论(0编辑  收藏  举报