8.4. 在 SAP HANA 实例上执行维护
对于 HA 集群管理的任何类型的应用程序或其他组件,您必须启用集群 维护模式,以防止集群在维护期间出现任何干扰。
在更新 HANA 实例期间,集群将保持运行,但不主动监控资源或执行任何操作。完成 HANA 实例的更改后,刷新集群资源状态并验证检测到的资源状态是否正确。然后才能再次禁用维护模式,而无需意外的集群操作。
如果您需要停止集群进行维护活动,请确保先设置 维护模式,然后根据 HANA 维护的要求,在节点上停止并启动集群。
先决条件
- 您已配置了 Pacemaker 集群来管理 HANA 系统复制。
流程
为整个集群设置维护模式:[root]# pcs property set maintenance-mode=true为整个集群设置维护可确保维护阶段没有活动,可以触发集群操作并影响 HANA 更新过程。
验证集群资源管理是否已完全禁用:
[root]# pcs status ... *** Resource management is DISABLED *** The cluster will not attempt to start, stop or recover services Node List: * Online: [ node1 node2 ] Full List of Resources: * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02] (maintenance): * rsc_SAPHanaTop_RH1_HDB02 (ocf:heartbeat:SAPHanaTopology): Started node2 (maintenance) * rsc_SAPHanaTop_RH1_HDB02 (ocf:heartbeat:SAPHanaTopology): Started node1 (maintenance) * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable, maintenance): * rsc_SAPHanaCon_RH1_HDB02 (ocf:heartbeat:SAPHanaController): Unpromoted node2 (maintenance) * rsc_SAPHanaCon_RH1_HDB02 (ocf:heartbeat:SAPHanaController): Promoted node1 (maintenance) * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02] (maintenance): * rsc_SAPHanaFil_RH1_HDB02 (ocf:heartbeat:SAPHanaFilesystem): Started node2 (maintenance) * rsc_SAPHanaFil_RH1_HDB02 (ocf:heartbeat:SAPHanaFilesystem): Started node1 (maintenance) * rsc_vip_RH1_HDB02_primary (ocf:heartbeat:IPaddr2): Started node1 (maintenance) * rsc_vip_RH1_HDB02_readonly (ocf:heartbeat:IPaddr2): Started node2 (maintenance) ...使用 SAP 过程更新 HANA 实例。如果需要在 HANA 更新过程中执行接管,您可以使用带有 Handshake 选项的 SAP HANA Takeover。如需更多信息,请参阅 HA 解决方案 来管理 HANA System Replication 的 HA 解决方案是否能够使用 SAP HANA "接管 Handshake" 选项?
如果您在此步骤中停止集群,请确保在继续执行后续步骤前再次启动它。保持维护模式启用。
在 HANA 更新后,验证 HANA 系统复制是否正常工作。使用
systemReplicationStatus.py脚本显示主实例上 HANA 系统复制的状态。以下是在维护期间手动接管 node2 的示例:[root]# su - <sid>adm rh1adm $ cdpy; python systemReplicationStatus.py --sapcontrol=1 | grep -i replication_status= service/node2/30201/REPLICATION_STATUS=ACTIVE service/node2/30207/REPLICATION_STATUS=ACTIVE service/node2/30203/REPLICATION_STATUS=ACTIVE site/1/REPLICATION_STATUS=ACTIVE overall_replication_status=ACTIVE在继续操作前,请确保系统复制处于健康状态,并报告为
ACTIVE。刷新所有集群资源来执行一个 monitor 操作并更新其状态:
[root]# pcs resource refresh Waiting for 1 reply from the controller ... got reply (done)HANA 资源更新集群和节点属性至关重要,以反映新的 HANA 系统复制状态。它确保集群具有正确的信息,且不会在维护停止后因为状态信息而触发恢复操作。
检查集群状态,并验证资源状态和 main HANA 资源 score 属性。所有资源都必须显示为
Started,可升级的资源必须在所有节点上显示为Unpromoted:[root]# pcs status ... Full List of Resources: * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02] (maintenance): * rsc_SAPHanaTop_RH1_HDB02 (ocf:heartbeat:SAPHanaTopology): Started node2 (maintenance) * rsc_SAPHanaTop_RH1_HDB02 (ocf:heartbeat:SAPHanaTopology): Started node1 (maintenance) * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable, maintenance): * rsc_SAPHanaCon_RH1_HDB02 (ocf:heartbeat:SAPHanaController): Unpromoted node2 (maintenance) * rsc_SAPHanaCon_RH1_HDB02 (ocf:heartbeat:SAPHanaController): Unpromoted node1 (maintenance) * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02] (maintenance): * rsc_SAPHanaFil_RH1_HDB02 (ocf:heartbeat:SAPHanaFilesystem): Started node2 (maintenance) * rsc_SAPHanaFil_RH1_HDB02 (ocf:heartbeat:SAPHanaFilesystem): Started node1 (maintenance) * rsc_vip_RH1_HDB02_primary (ocf:heartbeat:IPaddr2): Started node1 (maintenance) * rsc_vip_RH1_HDB02_readonly (ocf:heartbeat:IPaddr2): Started node2 (maintenance) ...检查集群属性,并验证
srHook、role和score属性是否处于正确的新状态:[root]# SAPHanaSR-showAttr ... Site lpt lss mns opMode srHook srMode srPoll srr ------------------------------------------------------------- DC2 1746793335 4 node2 logreplay PRIM sync SOK S DC1 30 4 node1 logreplay SOK sync PRIM P Host clone_state roles score site sra srah version vhost ------------------------------------------------------------------------------------- node1 DEMOTED master1:master:worker:master 100 DC1 - - 2.00.078.00 node1 node2 DEMOTED master1:master:worker:master 150 DC2 - - 2.00.078.00 node2-
在运行主实例的节点上,
srHook是PRIM,它在正确的次要实例上显示SOK。 -
对于运行主的节点,
分数为150,在另一个地方是100。
-
在运行主实例的节点上,
当检查步骤 6 和 7 时,在预期的健康状态中会显示环境,您可以再次删除集群的维护模式:
[root]# pcs property set maintenance-mode=当您修补维护时,它会触发监控再次运行所有资源。集群将可升级资源的状态更新为
Promoted和Unpromoted,对应于主实例和次要实例的位置。现在,资源还会再次更新srPoll属性,以匹配srHook属性值。