你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

配置 Azure 应用程序一致性快照工具

本文提供了配置数据库和数据库先决条件的指南,以便与可与 Azure NetApp 文件或 Azure 大型实例一起使用的 Azure 应用程序一致性快照工具 (AzAcSnap) 一起使用。

启用与数据库的通信

本部分介绍如何启用与数据库的通信。 使用以下选项卡正确选择你要使用的数据库。

如果要部署到集中式虚拟机,则需要安装和设置 SAP HANA 客户端,以便 AzAcSnap 用户可以运行 hdbsqlhdbuserstore 命令。 可以从 SAP 开发工具网站下载 SAP HANA 客户端。

快照工具与 SAP HANA 进行通信,并需要具有相应权限的用户以启动并释放数据库保存点。 下面的示例显示了 SAP HANA 2.0 用户的设置和用于与 SAP HANA 数据库通信的 hdbuserstore

下面的示例命令在 SAP HANA 2.0 数据库上的 SYSTEMDB 中设置用户 (AZACSNAP)。 根据需要更改 IP 地址、用户名和密码。

  1. 连接到 SYSTEMDB:

    hdbsql -n <IP_address_of_host>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD>
    
    Welcome to the SAP HANA Database interactive terminal.
    
    Type: \h for help with commands
    \q to quit
    
    hdbsql SYSTEMDB=>
    
  2. 创建用户。 下面的示例在 SYSTEMDB 中创建 AZACSNAP 用户:

    hdbsql SYSTEMDB=> CREATE USER AZACSNAP PASSWORD <AZACSNAP_PASSWORD_CHANGE_ME> NO FORCE_FIRST_PASSWORD_CHANGE;
    
  3. 授予用户权限。 此示例设置 AZACSNAP 用户的权限,以允许执行数据库一致的存储快照:

    • 对于最高版本 2.0 SPS 03 的 SAP HANA:

      hdbsql SYSTEMDB=> GRANT BACKUP ADMIN, CATALOG READ TO AZACSNAP;
      
    • 从 SAP HANA 版本 2.0 SPS 04 开始,SAP 添加了新的细粒度权限:

      hdbsql SYSTEMDB=> GRANT BACKUP ADMIN, DATABASE BACKUP ADMIN, CATALOG READ TO AZACSNAP;
      
  4. 可选:防止用户的密码过期

    注意

    在进行此更改之前,请检查公司策略。

    下面的示例禁用 AZACSNAP 用户的密码过期时间。 如果不进行此更改,用户的密码可能会过期并导致无法正确拍摄快照。

    hdbsql SYSTEMDB=> ALTER USER AZACSNAP DISABLE PASSWORD LIFETIME;
    
  5. 设置 SAP HANA 安全用户存储(更改密码)。 此示例使用 Linux shell 中的 hdbuserstore 命令设置 SAP HANA 安全用户存储:

    hdbuserstore Set AZACSNAP <IP_address_of_host>:30013 AZACSNAP <AZACSNAP_PASSWORD_CHANGE_ME>
    
  6. 检查是否已正确设置 SAP HANA 安全用户存储。 使用 hdbuserstore 命令将列出类似于以下示例的输出。 SAP 网站上提供了有关使用 hdbuserstore 的更多详细信息。

    hdbuserstore List
    
    DATA FILE : /home/azacsnap/.hdb/sapprdhdb80/SSFS_HDB.DAT
    KEY FILE : /home/azacsnap/.hdb/sapprdhdb80/SSFS_HDB.KEY
    
    KEY AZACSNAP
    ENV : <IP_address_of_host>:
    USER: AZACSNAP
    

使用 SSL 与 SAP HANA 通信

AzAcSnap 使用 SAP HANA 的 hdbsql 命令与 SAP HANA 通信。 使用 hdbsql 可以在加密与 SAP HANA 通信时使用 SSL 选项。

使用 azacsnap --ssl 选项时,AzAcSnap 始终使用以下选项:

  • -e:启用 TLS/SSL 加密。 服务器选择可用的最高级别。
  • -ssltrustcert:指定是否验证服务器的证书。
  • -sslhostnameincert "*":指定验证服务器标识的主机名。 将 "*" 指定为主机名时,不验证服务器的主机名。

SSL 通信还要求密钥存储和信任存储文件。 这些文件可以存储在 Linux 安装上的默认位置。 但是,为了确保将正确的密钥材料用于各种 SAP HANA 系统(即,在不同的密钥存储和信任存储文件用于每个 SAP HANA 系统的情况下),AzAcSnap 期望在 securityPath 位置存储密钥存储和信任存储文件。 AzAcSnap 配置文件指定此位置。

密钥存储文件

如果使用多个具有相同密钥材料的系统标识符 (SID),则可以更轻松地在 AzAcSnap 配置文件中定义的 securityPath 位置创建链接。 请确保使用 SSL 的每个 SID 都存在这些值。

  • 对于 opensslln $HOME/.ssl/key.pem <securityPath>/<SID>_keystore
  • 对于 commoncryptoln $SECUDIR/sapcli.pse <securityPath>/<SID>_keystore

如果使用多个每 SID 具有不同密钥材料的 SID,请复制(或移动并重命名)文件到 SID AzAcSnap 配置文件中定义的 securityPath 位置。

  • 对于 opensslmv key.pem <securityPath>/<SID>_keystore
  • 对于 commoncryptomv sapcli.pse <securityPath>/<SID>_keystore

当 AzAcSnap 调用 hdbsql 时,它将 -sslkeystore=<securityPath>/<SID>_keystore 添加到 hdbsql 命令行。

信任存储文件

如果使用多个具有相同密钥材料的 SID,则可以在 AzAcSnap 配置文件中定义的 securityPath 位置创建硬链接。 请确保使用 SSL 的每个 SID 都存在这些值。

  • 对于 opensslln $HOME/.ssl/trust.pem <securityPath>/<SID>_truststore
  • 对于 commoncryptoln $SECUDIR/sapcli.pse <securityPath>/<SID>_truststore

如果使用多个每 SID 具有不同密钥材料的 SID,请复制(或移动并重命名)文件到 SID AzAcSnap 配置文件中定义的 securityPath 位置。

  • 对于 opensslmv trust.pem <securityPath>/<SID>_truststore
  • 对于 commoncryptomv sapcli.pse <securityPath>/<SID>_truststore

文件名的 <SID> 组成部分必须是全部大写的 SAP HANA 系统标识符(例如 H80PR1)。 当 AzAcSnap 调用 hdbsql 时,它将 -ssltruststore=<securityPath>/<SID>_truststore 添加到命令行。

如果运行 azacsnap -c test --test hana --ssl openssl(其中配置文件中的 SIDH80),则会执行 hdbsql 连接,如下所示:

hdbsql \
    -e \
    -ssltrustcert \
    -sslhostnameincert "*" \
    -sslprovider openssl \
    -sslkeystore ./security/H80_keystore \
    -ssltruststore ./security/H80_truststore
    "sql statement"

在前面的代码中,反斜杠 (\) 字符是命令行换行符,用于提高在命令行上传递的多个参数的清晰度。

配置数据库

本部分介绍如何配置数据库。

配置 SAP HANA

可以向 SAP HANA 应用更改,以帮助保护日志备份和目录。 默认情况下,将设置 basepath_logbackupbasepath_catalogbackup,以便 SAP HANA 将相关文件放入 $(DIR_INSTANCE)/backup/log 目录中。 此位置不太可能位于 AzAcSnap 配置为快照的卷上,因此存储快照不会保护这些文件。

以下 hdbsql 命令示例显示如何将日志和目录路径设置为 AzAcSnap 可以拍摄快照的存储卷上的位置。 请确保检查命令行上的值与本地 SAP HANA 配置匹配。

配置日志备份位置

下面的示例显示了对 basepath_logbackup 参数的更改:

hdbsql -jaxC -n <HANA_ip_address>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD> "ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_logbackup') = '/hana/logbackups/H80' WITH RECONFIGURE"

配置目录备份位置

此示例显示了对 basepath_catalogbackup 参数的更改。 首先,确保文件系统上存在 basepath_catalogbackup 路径。 否则,请创建与目录具有相同所有权的路径。

ls -ld /hana/logbackups/H80/catalog
drwxr-x--- 4 h80adm sapsys 4096 Jan 17 06:55 /hana/logbackups/H80/catalog

如果需要创建路径,以下示例将创建路径并设置正确的所有权和权限。 需要以 root 身份运行这些命令。

mkdir /hana/logbackups/H80/catalog
chown --reference=/hana/shared/H80/HDB00 /hana/logbackups/H80/catalog
chmod --reference=/hana/shared/H80/HDB00 /hana/logbackups/H80/catalog
ls -ld /hana/logbackups/H80/catalog
drwxr-x--- 4 h80adm sapsys 4096 Jan 17 06:55 /hana/logbackups/H80/catalog

下面的示例将更改 SAP HANA 设置:

hdbsql -jaxC -n <HANA_ip_address>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD> "ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_catalogbackup') = '/hana/logbackups/H80/catalog' WITH RECONFIGURE"

检查日志和目录备份位置

更改日志和目录备份位置后,请使用以下命令确认设置是否正确。

在此示例中,设置显示为 SYSTEM 设置。 此查询还返回 DEFAULT 设置以用于比较。

hdbsql -jaxC -n <HANA_ip_address> - i 00 -U AZACSNAP "select * from sys.m_inifile_contents where (key = 'basepath_databackup' or key ='basepath_datavolumes' or key = 'basepath_logbackup' or key = 'basepath_logvolumes' or key = 'basepath_catalogbackup')"
global.ini,DEFAULT,,,persistence,basepath_catalogbackup,$(DIR_INSTANCE)/backup/log
global.ini,DEFAULT,,,persistence,basepath_databackup,$(DIR_INSTANCE)/backup/data
global.ini,DEFAULT,,,persistence,basepath_datavolumes,$(DIR_GLOBAL)/hdb/data
global.ini,DEFAULT,,,persistence,basepath_logbackup,$(DIR_INSTANCE)/backup/log
global.ini,DEFAULT,,,persistence,basepath_logvolumes,$(DIR_GLOBAL)/hdb/log
global.ini,SYSTEM,,,persistence,basepath_catalogbackup,/hana/logbackups/H80/catalog
global.ini,SYSTEM,,,persistence,basepath_datavolumes,/hana/data/H80
global.ini,SYSTEM,,,persistence,basepath_logbackup,/hana/logbackups/H80
global.ini,SYSTEM,,,persistence,basepath_logvolumes,/hana/log/H80

配置日志备份超时

SAP HANA 执行日志备份的默认设置为 900(15 分钟)。 建议将此值减小为 300 秒(5 分钟)。 然后可以运行这些文件的定期备份(例如,每 10 分钟)。 可以通过将 log_backup 卷添加到配置文件的 OTHER 卷部分来执行这些备份。

hdbsql -jaxC -n <HANA_ip_address>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD> "ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'log_backup_timeout_s') = '300' WITH RECONFIGURE"

检查日志备份超时

更改日志备份超时后,请确保使用以下命令设置超时。

在此示例中,设置显示为 SYSTEM 设置。 此查询还返回 DEFAULT 设置以用于比较。

hdbsql -jaxC -n <HANA_ip_address> - i 00 -U AZACSNAP "select * from sys.m_inifile_contents where key like '%log_backup_timeout%' "
global.ini,DEFAULT,,,persistence,log_backup_timeout_s,900
global.ini,SYSTEM,,,persistence,log_backup_timeout_s,300

后续步骤