你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置 Azure 应用程序一致性快照工具
本文提供了配置数据库和数据库先决条件的指南,以便与可与 Azure NetApp 文件或 Azure 大型实例一起使用的 Azure 应用程序一致性快照工具 (AzAcSnap) 一起使用。
启用与数据库的通信
本部分介绍如何启用与数据库的通信。 使用以下选项卡正确选择你要使用的数据库。
如果要部署到集中式虚拟机,则需要安装和设置 SAP HANA 客户端,以便 AzAcSnap 用户可以运行 hdbsql
和 hdbuserstore
命令。 可以从 SAP 开发工具网站下载 SAP HANA 客户端。
快照工具与 SAP HANA 进行通信,并需要具有相应权限的用户以启动并释放数据库保存点。 下面的示例显示了 SAP HANA 2.0 用户的设置和用于与 SAP HANA 数据库通信的 hdbuserstore
。
下面的示例命令在 SAP HANA 2.0 数据库上的 SYSTEMDB 中设置用户 (AZACSNAP
)。 根据需要更改 IP 地址、用户名和密码。
连接到 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=>
创建用户。 下面的示例在 SYSTEMDB 中创建
AZACSNAP
用户:hdbsql SYSTEMDB=> CREATE USER AZACSNAP PASSWORD <AZACSNAP_PASSWORD_CHANGE_ME> NO FORCE_FIRST_PASSWORD_CHANGE;
授予用户权限。 此示例设置
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;
可选:防止用户的密码过期。
注意
在进行此更改之前,请检查公司策略。
下面的示例禁用
AZACSNAP
用户的密码过期时间。 如果不进行此更改,用户的密码可能会过期并导致无法正确拍摄快照。hdbsql SYSTEMDB=> ALTER USER AZACSNAP DISABLE PASSWORD LIFETIME;
设置 SAP HANA 安全用户存储(更改密码)。 此示例使用 Linux shell 中的
hdbuserstore
命令设置 SAP HANA 安全用户存储:hdbuserstore Set AZACSNAP <IP_address_of_host>:30013 AZACSNAP <AZACSNAP_PASSWORD_CHANGE_ME>
检查是否已正确设置 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 都存在这些值。
- 对于
openssl
:ln $HOME/.ssl/key.pem <securityPath>/<SID>_keystore
- 对于
commoncrypto
:ln $SECUDIR/sapcli.pse <securityPath>/<SID>_keystore
如果使用多个每 SID 具有不同密钥材料的 SID,请复制(或移动并重命名)文件到 SID AzAcSnap 配置文件中定义的 securityPath
位置。
- 对于
openssl
:mv key.pem <securityPath>/<SID>_keystore
- 对于
commoncrypto
:mv sapcli.pse <securityPath>/<SID>_keystore
当 AzAcSnap 调用 hdbsql
时,它将 -sslkeystore=<securityPath>/<SID>_keystore
添加到 hdbsql
命令行。
信任存储文件
如果使用多个具有相同密钥材料的 SID,则可以在 AzAcSnap 配置文件中定义的 securityPath
位置创建硬链接。 请确保使用 SSL 的每个 SID 都存在这些值。
- 对于
openssl
:ln $HOME/.ssl/trust.pem <securityPath>/<SID>_truststore
- 对于
commoncrypto
:ln $SECUDIR/sapcli.pse <securityPath>/<SID>_truststore
如果使用多个每 SID 具有不同密钥材料的 SID,请复制(或移动并重命名)文件到 SID AzAcSnap 配置文件中定义的 securityPath
位置。
- 对于
openssl
:mv trust.pem <securityPath>/<SID>_truststore
- 对于
commoncrypto
:mv sapcli.pse <securityPath>/<SID>_truststore
文件名的 <SID>
组成部分必须是全部大写的 SAP HANA 系统标识符(例如 H80
或 PR1
)。 当 AzAcSnap 调用 hdbsql
时,它将 -ssltruststore=<securityPath>/<SID>_truststore
添加到命令行。
如果运行 azacsnap -c test --test hana --ssl openssl
(其中配置文件中的 SID
是 H80
),则会执行 hdbsql
连接,如下所示:
hdbsql \
-e \
-ssltrustcert \
-sslhostnameincert "*" \
-sslprovider openssl \
-sslkeystore ./security/H80_keystore \
-ssltruststore ./security/H80_truststore
"sql statement"
在前面的代码中,反斜杠 (\
) 字符是命令行换行符,用于提高在命令行上传递的多个参数的清晰度。
配置数据库
本部分介绍如何配置数据库。
配置 SAP HANA
可以向 SAP HANA 应用更改,以帮助保护日志备份和目录。 默认情况下,将设置 basepath_logbackup
和 basepath_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