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

Oracle RAC 集群启动顺序

大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。

目录

  • 前言
  • Oracle 11GR2 RAC 集群启动顺序
  • 官方文档
    • 11GR2
    • 12CR2
    • 18C
    • 19C
    • 21C
    • 23ai
  • 往期精彩文章推荐

前言

前几天使用脚本在 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

Figure 1-2 Cluster Startup

12CR2

Figure 1-2 Cluster Startup

18C

Figure 1-2 Cluster Startup

19C

Figure 1-2 Cluster Startup

21C

Figure 1-1 Cluster Startup

23ai

Figure 1-1 Cluster Startup


往期精彩文章推荐

Oracle 监控 EMCC 13.5 安装部署超详细教程 🔥
一篇文章让你彻底掌握 Shell 🔥
Oracle 一键巡检自动生成 Word 报告 🔥
Oracle一键安装脚本的 21 个疑问与解答 🔥
Oracle一键巡检脚本的 21 个疑问与解答 🔥
全网首发:Oracle 23ai 一键安装脚本 🔥
Oracle 19C 最新 RU 补丁 19.24 ,一键安装! 🔥
Oracle Linux 6 一键安装 Oracle 11GR2 RAC
Oracle Linux 7.9 一键安装 Oracle 19C
Oracle Linux 8.9 一键安装 Oracle 19C RAC
Oracle Linux 9.4(aarch64) 一键安装 Oracle 19C 🔥
openEuler 20.03 LTS SP4 一键安装 Oracle 19C 🔥
openEuler 22.03 LTS SP4 一键安装 Oracle 19C RAC
RHEL 7.9 一键安装 Oracle 19C 19.23 RAC
Redhat 8.4 一键安装 Oracle 11GR2
RedHat 9.4(aarch64) 一键安装 Oracle 19C
龙蜥 Anolis 7.9 一键安装 Oracle 19C 19.23
龙蜥 Anolis OS 8.8 一键安装 Oracle 19C
SUSE 15 SP5 一键安装 Oracle 19C
统信 UOS V20 1070(a) 一键安装 Oracle 11GR2
Ubuntu 22.04 一键安装 Oracle 19C
Ubuntu 14.04 一键安装 Oracle 19C
银河麒麟 Kylin V10 SP3 一键安装 Oracle 19C 🔥
银河麒麟 Kylin V10 SP3 一键安装 Oracle 11GR2 RAC
Oracle DataGuard GAP 修复手册 🔥
优化 Oracle:最佳实践与开发规范
DBA 必备:Linux 软件源配置全攻略 🔥
Linux 一键配置时钟同步全攻略 🔥
Starwind 配置 ISCSI 共享存储
SUSE 15 SP3 安装 Oracle 19C RAC 数据库
达梦 8 数据库安装手册 🔥
Oracle 12CR2 RAC 安装避坑宝典
Linux7 安装 Oracle 19C RAC 详细图文教程 🔥
Oracle ADG 搭建 RAC to Single 详细教程
Oracle DataGuard GAP 修复手册 🔥
Oracle 分区表之在线重定义
AutoUpgrade 快速升级 Oracle 数据库
Oracle 数据库巡检命令手册 🔥
Oracle 数据坏块的 N 种修复方式 🔥
数据库 SQL 开发入门教程
超全 Linux 基础命令总结 🔥
VMware 虚拟机安装 Linux 系统
Linux 安装 MySQL 详细教程
教你玩转 SQLPLUS,工作效率提升 200%


感谢您的阅读,这里是 Lucifer三思而后行,欢迎 点赞+关注,我会持续分享数据库知识、运维技巧。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言——位运算
  • linux系统使用 docker 来部署web环境 nginx+php7.4 并配置称 docker-compose-mysql.yml 文件
  • 【第一章概述—计算机中的数制】非十进制数到十进制数的转换,八进制转十进制,16进制转十进制。十进制转8进制,十进制转16进制
  • SSRF漏洞实现
  • Flask返回Json格式字符,中文导致unicode乱码问题
  • Unity URP Shader 修改深度让人物不再被地面遮挡
  • 数论之组合数
  • git cherry-pick 合并多个提交
  • Go 调用Rust函数
  • 浅谈线性表——链表
  • AI编程简介
  • 【第69课】Java安全JWT攻防Swagger自动化算法签名密匙Druid未授权
  • java-Mybatis框架
  • MFC程序设计(一) MFC框架
  • 23种设计模式详细知识点(软件设计师)
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Git初体验
  • JavaScript函数式编程(一)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Redis学习笔记 - pipline(流水线、管道)
  • webpack入门学习手记(二)
  • Windows Containers 大冒险: 容器网络
  • 回顾 Swift 多平台移植进度 #2
  • 浅谈web中前端模板引擎的使用
  • 入口文件开始,分析Vue源码实现
  • 算法系列——算法入门之递归分而治之思想的实现
  • 问题之ssh中Host key verification failed的解决
  • 小程序01:wepy框架整合iview webapp UI
  • 云大使推广中的常见热门问题
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​第20课 在Android Native开发中加入新的C++类
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • ###C语言程序设计-----C语言学习(6)#
  • #1014 : Trie树
  • #php的pecl工具#
  • (C语言)二分查找 超详细
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (ros//EnvironmentVariables)ros环境变量
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (论文阅读40-45)图像描述1
  • (四)c52学习之旅-流水LED灯
  • (一) storm的集群安装与配置
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转) 深度模型优化性能 调参
  • (转)【Hibernate总结系列】使用举例
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .env.development、.env.production、.env.staging
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .NET大文件上传知识整理