4.3. 在第三个站点上设置 SAP HANA 系统复制
在现有安装中,已在主站点和次要 SAP HANA 站点之间配置了 SAP HANA 系统复制。SAP HANA 系统复制在启动并运行的主 SAP HANA 数据库上启用。
本章论述了如何在节点 az3n1 和 az3n2 上注册第三个 SAP HANA 数据库作为额外的辅助 HANA 系统复制站点。此步骤与第二个站点上原始辅助 HANA 实例(DC2)的注册类似。以下章节将更详细地阐述。如果需要更多信息,还可以查阅 配置 SAP HANA System Replication 的常规前提条件。
4.3.1. 检查主数据库 复制链接链接已复制到粘贴板!
您必须检查其他数据库是否正在运行,系统复制是否正常工作。请参阅:
您可以使用以下方法发现主 HANA 实例:
az1n1:rh2adm> hdbnsutil -sr_state | egrep -e "primary masters|^mode"
mode: primary
4.3.2. 复制数据库密钥 复制链接链接已复制到粘贴板!
在能够注册新的辅助 HANA 实例之前,主 HANA 实例的数据库密钥需要复制到新的额外 HANA 复制站点。在我们的示例中,第三个站点的主机名为 az3n1。
例如,在主节点上 az1n1 运行:
az1n1:rh2adm> scp -rp
/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT az3n1:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT
az1n1:rh2adm> scp -rp
/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY az3n1:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY
4.3.3. 将第三个站点注册为次要站点 复制链接链接已复制到粘贴板!
您需要知道运行主数据库的节点的名称。详情请参考 发现主数据库。
要监控注册,您可以在主节点上的独立终端中运行以下命令:
az1n1:rh2adm> watch python
/usr/sap/${SAPSYSTEMNAME}/HDB${TINSTANCE}/python_support/systemReplicationStatus.py
这将为您显示进度以及任何错误(如果发生了错误)。
要在第三个站点(DC3)上注册 HANA 实例作为额外的辅助 SAP HANA 实例,请在第三个站点主机 az3n1 上运行以下命令:
az3n1:rh2adm> hdbnsutil -sr_register --name=DC3
--remoteHost=az1n1 --remoteInstance=${TINSTANCE}
--replicationMode=async --operationMode=logreplay --online
在本例中,DC3 是第三个站点的名称,az1n1 是主节点的名称。
如果数据库实例已在运行,您不必停止它,您可以使用 option-- online,它会在实例在线时注册实例。hdbnsutil 本身启动实例所需的重启(停止和启动)。
在任何情况下,option- online 都可以在 HANA 实例在线和离线的情况下工作(此选项可用于 SAP HANA 2.0 SPS04 及更高版本)。
如果 HANA 实例离线,则必须在第三个节点注册后启动它。您可以在 验证安装 中找到其他信息。
4.3.4. 添加 SAP HANA 多目标系统复制自动注册支持 复制链接链接已复制到粘贴板!
我们使用名为 register_secondaries_on_takeover = true 的 SAP HANA 系统复制选项。如果上一个主站点和其它次要站点之间的故障转移,这会自动重新注册到新的主站点。这个选项必须添加到所有潜在的主站点的 global.ini 文件中,它们是所有数据库节点。因为 global.ini 存储在 /hana/shared 中,因此您必须为每个站点编辑 global.ini 文件一次。
所有 HANA 实例都应在其 global.ini 中拥有此条目:
[system_replication]
register_secondaries_on_takeover = true
以下两章节将详细介绍 global.ini 配置。
虽然该参数,如果启动故障转移时第三个数据库 停机,则需要手动将第三个实例重新注册到新的主站点。
4.3.5. 在 pacemaker 节点上配置 global.ini 复制链接链接已复制到粘贴板!
将选项 register_secondaries_on_takeover = true 添加到站点 1 和站点 2 的 global.ini 中的 [system_replication] 部分。pacemaker 集群管理它们。编辑对应节点上的 global.ini 文件,不要从另一节点复制文件。
只有站点的 HANA 实例停止处理时,才应编辑 global.ini 文件。
以 rh2adm 用户身份编辑 global.ini :
az1n1:rh2adm> vi
/usr/sap/${SAPSYSTEMNAME}/SYS/global/hdb/custom/config/global.ini
Example:
# global.ini last modified 2023-07-14 16:31:14.120444 by hdbnsutil -sr_register --remoteHost=hana07 --remoteInstance=02 --replicationMode=syncmem --operationMode=logreplay --name=DC2
[multidb]
mode = multidb
database_isolation = low
singletenant = yes
[ha_dr_provider_SAPHanaSR]
provider = SAPHanaSR
path = /usr/share/SAPHanaSR/srhook
execution_order = 1
[persistence]
basepath_datavolumes = /hana/data/RH2
basepath_logvolumes = /hana/log/RH2
log_mode = normal
enable_auto_log_backup = true
[system_replication]
register_secondaries_on_takeover = true
timetravel_logreplay_mode = auto
operation_mode = logreplay
mode = primary
actual_mode = syncmem
site_id = 1
site_name = DC2
[system_replication_site_masters]
2 = az1n1:30201
[trace]
ha_dr_saphanasr = info
当 SAP HANA 数据库实例启动后,此选项就会生效。
4.3.6. 在 site3 上配置 global.ini 复制链接链接已复制到粘贴板!
以 < sid>adm 用户身份编辑 global.ini :
az3n1:rh2adm>% vi /usr/sap/${SAPSYSTEMNAME}/SYS/global/hdb/custom/config/global.ini
在站点 3 (az3n1 和 az3n2)上,不使用 ha_dr_provider_SAPHanaSR 部分。
az3n1 上的 global.ini 示例:
# global.ini last modified 2023-06-22 17:22:54.154508 by hdbnameserver
[multidb]
mode = multidb
database_isolation = low
singletenant = yes
[persistence]
basepath_datavolumes = /hana/data/RH2
basepath_logvolumes = /hana/log/RH2
log_mode = normal
enable_auto_log_backup = true
[system_replication]
operation_mode = logreplay
register_secondaries_on_takeover = true
reconnect_time_interval = 5
timetravel_logreplay_mode = auto
site_id = 3
mode = syncmem
actual_mode = syncmem
site_name = DC3
[system_replication_site_masters]
2 = az1n1:30201
4.3.7. 验证安装 复制链接链接已复制到粘贴板!
安装后,您必须检查所有 HANA 实例是否已结束并在它们之间正常工作。最简单的方法是检查主数据库节点上的 systemReplicationStatus,如 检查系统复制状态 中所述。如需更多信息,请参阅 检查数据库。
要使 HANA 系统复制正常工作,请确保将 "log_mode" 参数设置为 "normal"。如需更多信息,请参阅 检查 SAP HANA 数据库的 log_mode。
要验证 setout 是否按预期工作,
run the xref:asmb_test_cases_configuring-hana-scale-out-multitarget-system-replication-disaster-recovery[Test cases] as described in the following chapter.