首页 > 数据库 >Oracle RAC如何优雅停机维护?使用srvctl停止实例与集群

Oracle RAC如何优雅停机维护?使用srvctl停止实例与集群

来源:互联网 2026-04-17 20:07:32

Oracle RAC单节点停机操作:顺序错误可能引发集群灾难 在Oracle RAC环境中进行单节点维护时,操作顺序至关重要。一个看似简单的关机步骤,如果顺序错乱,轻则导致服务中断与连接异常,重则可能破坏集群核心的一致性,致使整个系统无法启动。以下指南旨在帮助您规避这些可能带来高昂代价的风险。 必须

Oracle RAC单节点停机操作:顺序错误可能引发集群灾难

在Oracle RAC环境中进行单节点维护时,操作顺序至关重要。一个看似简单的关机步骤,如果顺序错乱,轻则导致服务中断与连接异常,重则可能破坏集群核心的一致性,致使整个系统无法启动。以下指南旨在帮助您规避这些可能带来高昂代价的风险。

必须严格按顺序执行:srvctl stop instance → srvctl stop nodeapps → srvctl stop asm → crsctl stop cluster。错误顺序可能导致OCR/Voting Disk不一致、监听器/VIP未释放等故障。

请务必注意,绝不能仅使用 srvctl stop instance 停止单个实例后就直接关闭服务器。此命令不会自动停止监听器、VIP、ASM或集群件(Clusterware)。若强行断电或重启,很可能破坏OCR(Oracle集群注册表)和Voting Disk(表决磁盘)的一致性,导致集群后续无法启动。

长期稳定更新的攒劲资源: >>>点此立即查看<<<

srvctl stop instance:仅停止数据库,不管理底层资源

该命令职责明确:仅终止指定的Oracle实例(例如 orcl1),在默认情况下会将实例上运行的服务迁移至其他存活节点(未使用 -force 参数时)。但它完全不涉及以下关键底层资源:

  • 节点上的 listener(监听器持续监听端口,可能导致新连接被错误路由至已下线实例)
  • VIP(虚拟IP未被释放,客户端重连时可能遭遇超时或失败)
  • ONSGSD(集群事件通知服务和管理服务仍在运行)
  • ASM 实例(若该节点是ASM主节点,可能导致磁盘组无法被集群其他节点正常访问)

典型错误场景:执行 srvctl stop instance -d orcl -i orcl1 后,通过 crs_stat -t 查看发现 ora.orcl.db 状态变为 INTERMEDIATE,但 ora.rac1.vipora.C1.lsnr 仍显示为 ONLINE——此时若贸然关机,风险极高。

正确操作链:nodeapps → ASM → cluster,步骤不可或缺

Oracle官方推荐的单节点停机顺序如下(以节点 rac1 为例):

  • 第一步:停止数据库实例srvctl stop instance -d orcl -i orcl1
  • 第二步:停止节点应用服务srvctl stop nodeapps -n rac1(此命令将依次停止 VIPlistenerONSGSD
  • 第三步:停止ASM实例srvctl stop asm -n rac1(确保磁盘组可安全卸载)
  • 第四步:由root用户停止集群栈/u01/app/19.3.0/grid/bin/crsctl stop cluster -n rac1

关键注意事项:自12c版本起,srvctl stop nodeapps 命令已被弃用。若执行时报错 CRS-4013: This command is not supported,需改用 crsctl stop res “ora..vip” “ora..ons” “ora..listener” 手动停止关键资源。此外,crsctl stop cluster 是安全关闭本地CRS进程树的唯一可靠方式,传统的 /etc/init.d/init.crs stop 方法已过时且不可靠。

常见误区:-force参数并非“强制关机”快捷键

许多用户对 srvctl stop instance -d orcl -i orcl1 -force 中的 -force 参数存在误解。其真实作用如下:

  • 跳过服务的优雅关闭流程,使该实例承载的服务立即故障转移至其他可用实例,而非等待服务自身清理。
  • 不会改变停机顺序——后续的nodeapps、ASM及cluster停止步骤仍需手动执行。
  • 在RAC One Node等特殊环境中,使用该参数可能被拒绝并报错(如 ORA-15032: not all alterations performed)。此时必须使用 srvctl stop database -d orcl 停止整个数据库。

常见误用场景:误以为添加 -force 可跳过 srvctl stop nodeapps。实际上,-force 对VIP、监听器、OCR写入锁等资源无任何影响。若漏停nodeapps,下次执行 crsctl start cluster 时,集群很可能卡在 Waiting for VIP to be online 步骤而无法启动。

维护前必备检查:验证OCR与Voting Disk状态

即使严格遵循上述命令顺序,仍非绝对安全。若OCR备份已损坏或Voting Disk处于不可写状态,crsctl stop cluster 命令可能静默失败——表面返回成功,但后台CRS进程仍在运行。因此,停机前务必确认:

  • 执行 ocrcheck,输出应为 Status of Oracle Cluster Registry is as follows... 且无任何ERROR信息。
  • 执行 crsctl query css votedisk,确认所有voting disk状态均显示为 online
  • 检查 ls -l /dev/oracleasm/disks/(或相应ASMFD路径),确保磁盘权限未被意外修改。

最易被忽略的一点:在停机维护期间忘记为OCR备份。每次执行 crsctl stop cluster 前,都应手动执行 ocrconfig -manualbackup。否则,若维护过程中发生OCR损坏,恢复难度将急剧增加。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。