3.5. 创建 Promotable SAPHana 资源
SAPHana
资源代理管理 SAP HANA 实例,它们是 SAP HANA Scale-Up System Replication 的一部分,同时监控 SAP HANA 系统复制的状态。如果 SAP HANA 主复制实例失败,SAPHana
资源代理可以根据资源代理参数的设置方式触发 SAP HANA 系统复制。
SAPHana
资源代理具有以下属性:
属性名称 | 必需? | 默认值 | 描述 |
---|---|---|---|
SID | 是 | null | SAP HANA 安装的 SAP System Identifier (SID) (所有节点必须相同)。示例:RH1 |
InstanceNumber | 是 | null | SAP HANA 安装的实例号(所有节点必须相同)。示例: 02 |
PREFER_SITE_TAKEOVER | 否 | null | 资源代理是否希望切换到二级实例,而不是在本地重启主实例?true: 优先使用二级站点;false: do prefer restart local; never: 不发生其他节点。 |
AUTOMATED_REGISTER | 否 | false | 如果发生接管事件,如果以前的主实例应注册为 secondary?"false": no,则需要手动干预;"true": yes,则前者主要由资源代理注册为次要实例。 |
DUPLICATE_PRIMARY_TIMEOUT | 否 | 7200 | 如果在集群响应之前出现双主要情况,则需要两个主时间戳之间的时间区别。如果时间差小于时间差距,集群在"WAITING"状态中包含一个或两个实例。这是为了让管理员有机会响应故障转移。如果以前的主崩溃的完整节点会崩溃,则前者主节点将在经过时间差后注册。如果"仅" SAP HANA 实例崩溃,则前者主要将立即注册。在此注册新主后,所有数据都会被系统复制覆盖。 |
PREFER_SITE_TAKEOVER
,AUTOMATED_REGISTER
和 DUPLICATE_PIMARY_TIMEOUT
参数必须根据 HA 集群管理的 SAP HANA 系统复制的要求来设置。
通常,PREFER_SITE_TAKEOVER
应设为 true,以允许 HA 集群在检测到主 SAP HANA 实例失败时触发接管,因为新 SAP HANA 主实例通常要花费的时间比原始 SAP HANA 主实例完全激活,而将原始 SAP HANA 主实例重新重新加载到内存中。
为了能够在 HA 集群触发后验证新主 SAP HANA 实例上的所有数据是否正确,AUTOM ATED_REGISTER
应设置为 false。这将让操作员能够切回到旧的主 SAP HANA 实例,以防意外发生;或者,如果接管正确,旧的主 SAP HANA 实例可以注册为新的次要 SAP HANA 实例,从而再次获得 SAP HANA 系统复制工作。
如果 AUTOMATED_REGISTER
设为 true,则在发生 HA 集群后,旧的 SAP HANA 实例将自动注册为新的二级 SAP HANA 实例。这将提高 SAP HANA 系统复制设置的可用性,并防止 SAP HANA 系统复制环境中的"最终"情况。但是,它可能会增加数据表/数据破坏的风险,因为如果 HA 集群触发了接管,即使次要 SAP HANA 实例上的数据没有完全同步,那么旧的主 SAP HANA 实例的自动化注册,因为新的次要 SAP HANA 实例将导致此实例上的所有数据被删除,因此,在发生接管之前没有同步的任何数据。
可以按照以下示例创建用于管理 SAP HANA 实例和 SAP HANA 系统复制的可升级 SAPHana
集群资源,如下例所示:
[root]# pcs resource create SAPHana_RH1_02 SAPHana SID=RH1 InstanceNumber=02 \ PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true \ op start timeout=3600 \ op stop timeout=3600 \ op monitor interval=61 role="Slave" timeout=700 \ op monitor interval=59 role="Master" timeout=700 \ op promote timeout=3600 \ op demote timeout=3600 \ promotable notify=true clone-max=2 clone-node-max=1 interleave=true
生成的 HA 集群资源应类似如下:
[root]# pcs resource config SAPHana_RH1_02-clone Clone: SAPHana_RH1_02-clone Meta Attrs: clone-max=2 clone-node-max=1 interleave=true notify=true promotable=true Resource: SAPHana_RH1_02 (class=ocf provider=heartbeat type=SAPHana) Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=180 InstanceNumber=02 PREFER_SITE_TAKEOVER=true SID=RH1 Operations: methods interval=0s timeout=5 (SAPHana_RH1_02-methods-interval-0s) monitor interval=61 role=Slave timeout=700 (SAPHana_RH1_02-monitor-interval-61) monitor interval=59 role=Master timeout=700 (SAPHana_RH1_02-monitor-interval-59) promote interval=0s timeout=3600 (SAPHana_RH1_02-promote-interval-0s) demote interval=0s timeout=3600 (SAPHana_RH1_02-demote-interval-0s) start interval=0s timeout=3600 (SAPHana_RH1_02-start-interval-0s) stop interval=0s timeout=3600 (SAPHana_RH1_02-stop-interval-0s)
资源操作的超时时间只是示例,可能需要根据实际的 SAP HANA 设置进行调整(例如,大型 SAP HANA 数据库可能需要更长的时间才能启动,因此可能需要增加启动超时)。
启动资源并且 HA 集群执行第一个 monitor 操作后,它会添加额外的节点属性来描述节点上 SAP HANA 数据库的当前状态,如下所示:
[root]# pcs status --full ... Node Attributes: * Node node1: + hana_rh1_clone_state : PROMOTED + hana_rh1_op_mode : delta_datashipping + hana_rh1_remoteHost : node2 + hana_rh1_roles : 4:P:master1:master:worker:master + hana_rh1_site : DC1 + hana_rh1_sync_state : PRIM + hana_rh1_srmode : syncmem + hana_rh1_version : 2.00.064.00.1660047502 + hana_rh1_vhost : node1 + lpa_rh1_lpt : 1495204085 + master-SAPHana_RH1_02 : 150 * Node node2: + hana_r12_clone_state : DEMOTED + hana_rh1_op_mode : delta_datashipping + hana_rh1_remoteHost : node1 + hana_rh1_roles : 4:S:master1:master:worker:master + hana_rh1_site : DC2 + hana_rh1_srmode : syncmem + hana_rh1_sync_state : SOK + hana_rh1_version : 2.00.064.00.1660047502 + hana_rh1_vhost : node2 + lpa_rh1_lpt : 30 + master-SAPHana_RH1_02 : -INFINITY ...