

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SAP HANA 设置和 HSR
<a name="sap-hana-pacemaker-sles-hana-setup-hsr"></a>

通过配置参数和创建所需备份，使 SAP HANA 做好系统复制（HSR）准备。

**Topics**
+ [查看 AWS 和 SAP 安装指南](#review_guides)
+ [检查 global.ini 参数](#global_ini)
+ [在主系统上创建 SAP HANA 备份](#pre_setup_backup)
+ [在主系统和辅助系统上配置系统复制](#register_hsr)
+ [检查 SAP 主机代理版本](#sap_host_agent)

**重要**  
本指南假设 SAP HANA Platform 已按照和 SAP 的指导作为扩展配置进行安装，其中两个 EC2 实例位于不同的可用区，或者作为横向扩展配置，在两个可用区中安装了多个 EC2 实例。 AWS 

## 查看 AWS 和 SAP 安装指南
<a name="review_guides"></a>
+  AWS 文档-开[启 SAP HANA 环境设置 AWS](https://docs.aws.amazon.com/sap/latest/sap-hana/std-sap-hana-environment-setup.html) 
+ SAP 文档：[SAP HANA Server Installation and Update Guide](https://help.sap.com/docs/SAP_HANA_PLATFORM/2c1988d620e04368aa4103bf26f17727/7eb0167eb35e4e2885415205b8383584.html) 

SAP 制作了文档，讲解如何使用 SAP HANA Cockpit、SAP HANA Studio 或命令行中的 `hdbnsutil` 来配置 SAP HANA 系统复制。请查看该文档中适合您的 SAP HANA 版本的内容，确保该指南没有变化，或者使用命令行以外的方法。
+ SAP 文档：[Configuring SAP HANA System Replication](https://help.sap.com/docs/SAP_HANA_PLATFORM/4e9b18c116aa42fc84c7dbfd02111aba/442bf027937746248f69701aa9b94112.html) 

## 检查 global.ini 参数
<a name="global_ini"></a>

以 <sid>adm 的身份运行以下命令。这些命令将提示输入 SYSTEMDB 数据库的系统密码。

**检查 log\$1mode 是否设置为 normal**  
确保在 global.ini 文件的 persistence 部分中，将配置参数 log\$1mode 设置为 `normal`：

```
hdbsql -jx -i <hana_sys_nr> -u system -d SYSTEMDB "SELECT VALUE FROM M_INIFILE_CONTENTS WHERE FILE_NAME = 'global.ini' AND SECTION = 'persistence' AND KEY = 'log_mode';"
```

例如：

```
hdbadm> hdbsql -jx -i 00 -u system -d SYSTEMDB "SELECT VALUE FROM M_INIFILE_CONTENTS WHERE FILE_NAME = 'global.ini' AND SECTION = 'persistence' AND KEY = 'log_mode';"
VALUE
"normal"
```

**查看 global.ini 文件复制**  
SAP HANA 系统复制功能需要在主系统和辅助系统之间采用一致的配置来确保正常运行，尤其是在失效转移场景中。global.ini 中的 `inifile_checker/replicate` 参数为满足该要求而提供了自动化解决方案。在主系统上启用该参数后，对主系统上的 ini 文件所做的任何配置更改都会自动同步到辅助站点。这样就无需手动复制配置，并有助于防止可能影响系统可用性的配置不匹配。该参数只需在主系统上配置，因为辅助系统将通过正常的系统复制过程接收这些配置更改。

将以下内容添加到 `global.ini` 中：

```
[inifile_checker]
replicate = true
```

请参阅 SAP Note [2978895 - Changing parameters on Primary and Secondary site of SAP HANA system](https://me.sap.com/notes/2978895) 

## 在主系统上创建 SAP HANA 备份
<a name="pre_setup_backup"></a>

 **获取所有活动数据库的列表：**

```
hdbsql -jx -i <hana_sys_nr> -u system -d SYSTEMDB "SELECT DATABASE_NAME,ACTIVE_STATUS from M_DATABASES"
```

例如：

```
hdbadm> hdbsql -jx -i 00 -u system -d SYSTEMDB "SELECT DATABASE_NAME,ACTIVE_STATUS from M_DATABASES"
Password:
DATABASE_NAME,ACTIVE_STATUS
"SYSTEMDB","YES"
"HDB","YES"
```

**创建 SYSTEMDB 和每个租户数据库的备份：**  
以下命令是针对基于文件的备份的示例。您可以使用首选工具和位置执行备份。如果使用文件系统（例如 /backup），请确保有足够的空间进行完整备份。

------
#### [ Backint ]

对于 SystemDB

```
hdbsql -i 00 -u SYSTEM  -d SYSTEMDB "BACKUP DATA USING BACKINT ('initial_hsr_db_SYSTEMDB') COMMENT 'Initial backup for HSR'";
```

对于每个租户数据库

```
hdbsql -i 00 -u SYSTEM  -d <TENANT_DB> "BACKUP DATA USING BACKINT ('initial_hsr_db_<TENANT_DB>') COMMENT 'Initial backup for HSR'";
```
+ 以 <sid>adm 的身份运行
+ 确保已正确配置 backint
+ 系统将提示您提供密码，您也可以使用 `-p password` 

------
#### [ File ]

对于 SystemDB

```
hdbsql -i <hana_sys_nr> -u system -d SYSTEMDB "BACKUP DATA USING FILE ('/<backup location>/initial_hsr_db_SYSTEMDB') COMMENT 'Initial backup for HSR'";
```

对于每个租户数据库

```
hdbsql -i <hana_sys_nr> -u system -d <TENANT_DB> "BACKUP DATA USING FILE ('/<backup location>/initial_hsr_db_<TENANT_DB>') COMMENT 'Initial backup for HSR'";
```
+ 以 <sid>adm 的身份运行
+ 确保备份位置有足够的空间和正确的文件权限
+ 系统将提示您提供密码，您也可以使用 `-p password` 

------

### 停止辅助系统并复制系统 PKI 密钥
<a name="copy_keys"></a>

**停止辅助系统**  
以 <sid>adm 的身份在辅助系统上停止 HANA 应用程序

```
sapcontrol -nr <hana_sys_nr> -function StopSystem <SID>
```

**复制系统 PKI 密钥**  
使用 scp、共享文件系统或 S3 存储桶，将以下 PKI SSFS 系统密钥和数据文件从主系统复制到辅助系统上的相同位置：

```
/usr/sap/<SID>/SYS/global/security/rsecssfs/data/SSFS_<SID>.DAT
/usr/sap/<SID>/SYS/global/security/rsecssfs/key/SSFS_<SID>.KEY
```

例如，可以使用 scp：

```
hdbadm>scp -p /usr/sap/HDB/SYS/global/security/rsecssfs/data/SSFS_HDB.DAT hdbadm@hanahost02:/usr/sap/HDB/SYS/global/security/rsecssfs/data/SSFS_HDB.DAT
hdbadm>scp -p /usr/sap/HDB/SYS/global/security/rsecssfs/key/SSFS_HDB.KEY hdbadm@hanahost02:/usr/sap/HDB/SYS/global/security/rsecssfs/key/SSFS_HDB.KEY
```

## 在主系统和辅助系统上配置系统复制
<a name="register_hsr"></a>

**在主系统上启用系统复制**  
确保主 SAP HANA 系统已**启动**，然后以 <sid>adm 的身份，使用唯一的站点名称启用系统复制：

```
hdbnsutil -sr_enable --name=<site_1>
```

例如：

```
hdbadm> hdbnsutil -sr_enable --name=siteA
```

**在辅助系统上注册系统复制**  
确保辅助 SAP HANA 系统**已停止**，然后以 <sid>adm 的身份，使用唯一的站点名称、主系统的连接详细信息和首选复制选项来启用系统复制。

```
hdbnsutil -sr_register \
 --name=<site_2> \
 --remoteHost=<hostname_1> \
 --remoteInstance=<hana_sys_nr> \
 --replicationMode=[sync|syncmem] \
 --operationMode=[logreplay|logreplay_readenabled]
```

例如：

```
hdbadm> hdbnsutil -sr_register --name=siteB --remoteHost=hanahost01 --remoteInstance=00 --replicationMode=syncmem --operationMode=logreplay
```

或者，如果您的设置要求对辅助服务器进行 active/active 读取访问权限，请执行以下操作：

```
hdbadm> hdbnsutil -sr_register --name=siteB --remoteHost=hanahost01 --remoteInstance=00 --replicationMode=syncmem --operationMode=logreplay_readenabled
```
+  `hostname_1` 是用于安装 SAP HANA 的主机名，可能是虚拟名称。
+ 复制模式可以是 `sync` 或 `syncmem`。
+ 要使复制支持集群系统和热备用系统，操作模式必须为 `logreplay` 或 `logreplay_readenabled`。
+ 有关更多信息，请参阅 SAP 文档。
  + SAP 文档：[Replication Modes for SAP HANA System Replication](https://help.sap.com/docs/SAP_HANA_PLATFORM/6b94445c94ae495c83a19646e7c3fd56/c039a1a5b8824ecfa754b55e0caffc01.html) 
  + SAP 文档：[Operaton Modes for SAP HANA System Replication](https://help.sap.com/docs/SAP_HANA_PLATFORM/6b94445c94ae495c83a19646e7c3fd56/627bd11e86c84ec2b9fcdf585d24011c.html) 
  + SAP 文档：[SAP HANA 系统复制- Active/Active （已启用读取）](https://help.sap.com/docs/SAP_HANA_PLATFORM/6b94445c94ae495c83a19646e7c3fd56/fe5fc53706a34048bf4a3a93a5d7c866.html) 

## 检查 SAP 主机代理版本
<a name="sap_host_agent"></a>

SAP 主机代理用于 SAP 实例的控制和监控。此代理由 SAP 集群资源代理和钩子使用。建议您在所有实例上安装主机代理的最新版本。有关更多详细信息，请参阅 [SAP Note 2219592 – Upgrade Strategy of SAP Host Agent](https://me.sap.com/notes/2219592)。

使用以下命令检查主机代理的版本，在所有 SAP HANA 节点上重复此操作：

```
# /usr/sap/hostctrl/exe/saphostexec -version
```