本指南介绍了如何使用 Google Cloud的 Agent for SAP 的磁盘快照功能备份和恢复 SAP HANA 数据库。
如需了解此功能,请参阅使用磁盘快照为 SAP HANA 执行备份和恢复。
准备工作
- 验证 Google Cloud的 Agent for SAP 的安装情况。如需查看相关说明,请参阅在 Compute Engine 实例上安装和配置 Google Cloud的 Agent for SAP。
按如下所示验证您的 SAP HANA 系统是否已部署在 Compute Engine 实例上:
- 它不会与主机自动故障切换解决方案一起部署。如需了解详情,请参阅将快照与横向扩容部署搭配使用。
- 它使用经 SAP 认证的操作系统 (OS)。如需了解详情,请参阅对 Google Cloud上的 SAP HANA 的操作系统支持
/hana/data
卷独立托管在一个或多个基于 SSD 的 Persistent Disk 卷或 Hyperdisk 卷上。这些磁盘不得托管任何其他 SAP HANA 卷。如 SAP 说明 2039883 - 常见问题解答:SAP HANA 数据库和数据快照(存储快照)中所述,如需能够恢复 SAP HANA 数据库,存储快照不得包含该数据库的日志区域。
如果您使用多个磁盘来托管
/hana/data
卷,则只有在底层磁盘是 Hyperdisk 卷的情况下,您才能使用代理的磁盘快照功能。/hana/data
卷映射到逻辑卷。这样,代理便可在基于磁盘快照的备份或恢复操作期间正确处理装载点。- 未使用基础架构即代码 (IaC) 工具(如 Terraform)部署底层基础架构。如需了解详情,请参阅将快照与基于 IaC 工具的部署搭配使用。
设置权限
如需使用 Google Cloud的 Agent for SAP 的磁盘快照功能备份和恢复 SAP HANA 数据库,您必须设置以下权限:
如需创建磁盘快照,请授予以下 IAM 权限:
使用一个数据磁盘进行扩容
如果您的
/hana/data
卷托管在一个 Persistent Disk 或 Hyperdisk 卷上,请向您的 Compute Engine 实例授予以下权限:compute.disks.create compute.disks.createSnapshot compute.disks.get compute.disks.setLabels compute.disks.use compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.snapshots.create compute.snapshots.get compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
使用带区数据磁盘进行扩容
如果您的
/hana/data
卷托管在多个 Persistent Disk 或 Hyperdisk 卷上,请向 Compute Engine 实例授予以下权限:compute.disks.addResourcePolicies compute.disks.create compute.disks.get compute.disks.list compute.disks.removeResourcePolicies compute.disks.use compute.disks.useReadOnly compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.instantSnapshotGroups.create compute.instantSnapshotGroups.delete compute.instantSnapshotGroups.get compute.instantSnapshotGroups.list compute.instantSnapshots.list compute.instantSnapshots.useReadOnly compute.resourcePolicies.create compute.resourcePolicies.use compute.resourcePolicies.useReadOnly compute.snapshots.create compute.snapshots.get compute.snapshots.list compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
横向扩容(不含主机自动故障切换)
对于扩容型部署,请向您的 Compute Engine 实例授予以下权限:
compute.disks.addResourcePolicies compute.disks.create compute.disks.get compute.disks.list compute.disks.removeResourcePolicies compute.disks.use compute.disks.useReadOnly compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.instantSnapshotGroups.create compute.instantSnapshotGroups.delete compute.instantSnapshotGroups.get compute.instantSnapshotGroups.list compute.instantSnapshots.list compute.instantSnapshots.useReadOnly compute.resourcePolicies.create compute.resourcePolicies.use compute.resourcePolicies.useReadOnly compute.resourcePolicies.delete compute.snapshots.create compute.snapshots.get compute.snapshots.list compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
如需创建基于磁盘快照的备份,代理使用的 SAP HANA 数据库用户必须具有
BACKUP OPERATOR
或BACKUP ADMIN
权限。如需了解详情,请参阅 SAP 文档备份和恢复所需的授权如需备份和恢复 SAP HANA 数据库,运行代理命令的操作系统用户必须是
root
用户,或者具有sudo
访问权限才能运行以下命令。您还可以通过在/etc/sudoers.d
目录中创建群组来提供sudo
访问权限,例如:%sapagent_snapshot_sudoers ALL=(ALL:ALL) NOPASSWD:/sbin/lvdisplay, /sbin/vgscan, /sbin/dmsetup, /sbin/lvscan, /usr/sbin/xfs_freeze, /usr/bin/google_cloud_sap_agent
验证基于磁盘快照的备份和恢复的设置
您可以验证是否已正确 Google Cloud 设置代理,以便使用该代理为 SAP HANA 系统执行基于磁盘快照的备份和恢复操作。为此,您可以运行代理的 status
命令,该命令从代理版本 3.7 开始受支持。
为此,请完成以下步骤:
- 与 Compute Engine 实例或裸金属解决方案服务器建立 SSH 连接。
运行以下命令:
sudo /usr/bin/google_cloud_sap_agent status
如果您基于磁盘快照的备份和恢复设置正确无误,则输出将包含以下内容。您的配置可能包含
default
以外的值。Agent Status: ... Systemd Service Enabled: True Systemd Service Running: True Cloud API Full Scopes: True Configuration File: /etc/google-cloud-sap-agent/configuration.json Configuration Valid: True ... ---------------------------------------------------------------------------- Disk Snapshot: Enabled Status: Fully Functional IAM Permissions: All granted ...
创建磁盘一致性组
如果您的 /hana/data
卷托管在一个磁盘上,请跳过本部分。
如果您的 /hana/data
卷托管在多个磁盘上,则必须创建一个一致性组,并将托管 /hana/data
卷的磁盘添加到该一致性组。您必须在磁盘所在的区域中创建一致性组。
如需了解如何执行此操作,请参阅创建一致性组。
记下一致性组名称。代理会在创建基于快照的备份时使用该参数。
创建基于磁盘快照的备份
如需为 SAP HANA 数据库的 /hana/data
卷创建基于磁盘快照的备份,请运行 Google Cloud的 Agent for SAP 的 hanadiskbackup
命令:
使用一个数据磁盘进行扩容
如需为 SAP HANA 数据库的 /hana/data
卷创建基于磁盘快照的备份,请运行 Google Cloud的 Agent for SAP 的 hanadiskbackup
命令:
从 3.3 版开始,-source-disk
和 -source-disk-zone
参数是可与 hanadiskbackup
命令搭配使用的可选参数。这是因为该代理可以自动检测托管您的 /hana/data
目录的磁盘。不过,如果您指定了这些参数,它们会覆盖代理的自动检测。
- 如果您想使用
hdbuserstore
密钥进行 SAP HANA 身份验证,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY
- 如果您想使用用户名和 Secret Manager Secret 进行 SAP HANA 身份验证,请运行以下命令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME
- 如果您想使用用户名和密码进行 SAP HANA 身份验证,请运行以下命令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD
替换以下内容:
DESTINATION_PROJECT_ID
:您要在其中创建磁盘快照的 Google Cloud 项目的 IDHANA_HOST_ADDRESS
:托管 SAP HANA 数据库的 Compute Engine 实例的主机名或 IP 地址在高可用性 (HA) 系统中,指定 SAP HANA 主节点中本地主机的主机名或 IP 地址。请勿使用集群中所用的虚拟 IP (VIP) 来标识主节点。在灾难恢复 (DR) 部署中,指定 SAP HANA 主实例中本地主机的主机名或 IP 地址。
HANA_PORT_NUMBER
:接受备份和恢复请求的 SAP HANA 端口SID
:SAP HANA 系统的 SAP 系统标识符 (SID)HANA_USERNAME
:要用于创建备份的 SAP HANA 数据库用户名HDB_USERSTORE_KEY
:如果您已创建hdbuserstore
密钥以对指定的 SAP HANA 用户进行身份验证,请指定该密钥HANA_USER_PWD_SECRET_NAME
:如果您使用 Secret Manager 存储 SAP HANA 数据库用户的密码,请指定相应的 Secret 名称HANA_PASSWORD
:如果您要使用纯文本密码进行 SAP HANA 身份验证,请指定该密码中托管/hana/data
卷的磁盘名称的英文逗号分隔列表
下表介绍了 hanadiskbackup
命令支持的参数:
参数 | 说明 |
---|---|
-port |
指定接受备份和恢复请求的 SAP HANA 端口。 |
-sid |
指定 SAP HANA 系统的 SAP 系统标识符 (SID)。 |
-hana-db-user |
指定要用于创建备份的 SAP HANA 数据库用户名。 如果您指定 |
-password |
指定用于创建备份的 SAP HANA 数据库用户的密码。 如果您使用了 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-password-secret |
可选。如果您使用 Secret Manager 存储 SAP HANA 数据库用户的密码,请指定相应的 Secret 名称。 在 Secret Manager 中,请确保 Secret 值(即密码)至少包含 8 个字符,并且至少包含 1 个大写字母、1 个小写字母和 1 个数字。 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-hdbuserstore-key |
如需安全地连接到 SAP HANA 系统,请指定您为该系统创建的安全用户存储区 ( 如需使用
此配置参数从代理版本 3.3 开始受支持。 如果您指定 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-host |
可选。指定托管 SAP HANA 系统的 Compute Engine 实例的 IP 地址。默认值为 localhost 。 |
-project |
可选。指定运行 SAP HANA 实例的 Google Cloud 项目的 ID。 |
-abandon-prepared |
可选。指定是否忽略任何现有的基于快照的备份。默认值为 false 。 |
-snapshot-name |
可选。指定您要创建的磁盘快照的名称。仅当您的 默认情况下,快照按以下格式命名: |
-snapshot-description |
可选。指定磁盘快照的说明。只有当您的 /hana/data 卷托管在一块磁盘上时,此参数才适用。 |
-snapshot-type |
可选。指定要为托管 默认情况下,代理会创建标准快照。此参数支持的值: 此参数从代理版本 3.6 开始受支持。 |
-group-snapshot-name |
可选。为托管 默认情况下,快照组名称采用以下格式设置: 此参数从代理版本 3.6 开始受支持。 |
-labels |
可选。指定要与您创建的磁盘快照关联的一个或多个标签值对。例如:-labels="label1=value1,label2=value2" 。 |
-storage-location |
可选。指定您要用于存储磁盘快照的 Cloud Storage 多区域或 Cloud Storage 区域。 |
-freeze-file-system |
可选。指定代理是否要冻结 SAP HANA 数据库的文件系统。默认值为 此参数从代理版本 3.2 开始受支持。 |
-send-metrics-to-monitoring |
可选。指定快照创建的执行状态是否发送到 Cloud Monitoring。默认值为 TRUE 。 |
-loglevel |
可选。指定快照创建操作的日志记录级别。默认日志记录级别为 info 。可用的日志级别包括:debug 、info 、warn 和 error 。 |
-confirm-data-snapshot-after-create |
可选。如果您希望在快照创建完成后立即确认快照创建情况,但不确认快照是否已上传到为 默认值为 此参数从代理版本 3.4 开始受支持。 |
使用带区数据磁盘进行扩容
如需为 SAP HANA 数据库的 /hana/data
卷创建基于磁盘快照的备份,请运行 Google Cloud的 Agent for SAP 的 hanadiskbackup
命令:
从 3.3 版开始,-source-disk
和 -source-disk-zone
参数是可与 hanadiskbackup
命令搭配使用的可选参数。这是因为该代理可以自动检测托管您的 /hana/data
目录的磁盘。不过,如果您指定了这些参数,它们会覆盖代理的自动检测。
- 如果您想使用
hdbuserstore
密钥进行 SAP HANA 身份验证,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY
- 如果您想使用用户名和 Secret Manager Secret 进行 SAP HANA 身份验证,请运行以下命令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME
- 如果您想使用用户名和密码进行 SAP HANA 身份验证,请运行以下命令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD
替换以下内容:
DESTINATION_PROJECT_ID
:您要在其中创建磁盘快照的 Google Cloud 项目的 IDHANA_HOST_ADDRESS
:托管 SAP HANA 数据库的 Compute Engine 实例的主机名或 IP 地址在高可用性 (HA) 系统中,指定 SAP HANA 主节点中本地主机的主机名或 IP 地址。请勿使用集群中所用的虚拟 IP (VIP) 来标识主节点。在灾难恢复 (DR) 部署中,指定 SAP HANA 主实例中本地主机的主机名或 IP 地址。
HANA_PORT_NUMBER
:接受备份和恢复请求的 SAP HANA 端口SID
:SAP HANA 系统的 SAP 系统标识符 (SID)HANA_USERNAME
:要用于创建备份的 SAP HANA 数据库用户名HDB_USERSTORE_KEY
:如果您已创建hdbuserstore
密钥以对指定的 SAP HANA 用户进行身份验证,请指定该密钥HANA_USER_PWD_SECRET_NAME
:如果您使用 Secret Manager 存储 SAP HANA 数据库用户的密码,请指定相应的 Secret 名称HANA_PASSWORD
:如果您要使用纯文本密码进行 SAP HANA 身份验证,请指定该密码中托管/hana/data
卷的磁盘名称的英文逗号分隔列表
下表介绍了 hanadiskbackup
命令支持的参数:
参数 | 说明 |
---|---|
-port |
指定接受备份和恢复请求的 SAP HANA 端口。 |
-sid |
指定 SAP HANA 系统的 SAP 系统标识符 (SID)。 |
-hana-db-user |
指定要用于创建备份的 SAP HANA 数据库用户名。 如果您指定 |
-password |
指定用于创建备份的 SAP HANA 数据库用户的密码。 如果您使用了 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-password-secret |
可选。如果您使用 Secret Manager 存储 SAP HANA 数据库用户的密码,请指定相应的 Secret 名称。 在 Secret Manager 中,请确保 Secret 值(即密码)至少包含 8 个字符,并且至少包含 1 个大写字母、1 个小写字母和 1 个数字。 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-hdbuserstore-key |
如需安全地连接到 SAP HANA 系统,请指定您为该系统创建的安全用户存储区 ( 如需使用
此配置参数从代理版本 3.3 开始受支持。 如果您指定 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-host |
可选。指定托管 SAP HANA 系统的 Compute Engine 实例的 IP 地址。默认值为 localhost 。 |
-project |
可选。指定运行 SAP HANA 实例的 Google Cloud 项目的 ID。 |
-abandon-prepared |
可选。指定是否忽略任何现有的基于快照的备份。默认值为 false 。 |
-snapshot-name |
可选。指定您要创建的磁盘快照的名称。仅当您的 默认情况下,快照按以下格式命名: |
-snapshot-description |
可选。指定磁盘快照的说明。只有当您的 /hana/data 卷托管在一块磁盘上时,此参数才适用。 |
-snapshot-type |
可选。指定要为托管 默认情况下,代理会创建标准快照。此参数支持的值: 此参数从代理版本 3.6 开始受支持。 |
-group-snapshot-name |
可选。为托管 默认情况下,快照组名称采用以下格式设置: 此参数从代理版本 3.6 开始受支持。 |
-labels |
可选。指定要与您创建的磁盘快照关联的一个或多个标签值对。例如:-labels="label1=value1,label2=value2" 。 |
-source-disks |
可选。 指定托管 /hana/data 卷的磁盘的名称。部署。使用英文逗号分隔磁盘名称。例如:-source-disks="disk-name-1, disk-name-2" 。 |
-storage-location |
可选。指定您要用于存储磁盘快照的 Cloud Storage 多区域或 Cloud Storage 区域。 |
-freeze-file-system |
可选。指定代理是否要冻结 SAP HANA 数据库的文件系统。默认值为 此参数从代理版本 3.2 开始受支持。 |
-send-metrics-to-monitoring |
可选。指定快照创建的执行状态是否发送到 Cloud Monitoring。默认值为 TRUE 。 |
-loglevel |
可选。指定快照创建操作的日志记录级别。默认日志记录级别为 info 。可用的日志级别包括:debug 、info 、warn 和 error 。 |
-confirm-data-snapshot-after-create |
可选。如果您希望在快照创建完成后立即确认快照创建情况,但不确认快照是否已上传到为 默认值为 此参数从代理版本 3.4 开始受支持。 |
横向扩容(不含主机自动故障切换)
如需为 SAP HANA 数据库的 /hana/data
卷创建基于磁盘快照的备份,请运行 Google Cloud的 Agent for SAP 的 hanadiskbackup
命令:
- 如果您想使用
hdbuserstore
密钥进行 SAP HANA 身份验证,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
- 如果您想使用用户名和 Secret Manager Secret 进行 SAP HANA 身份验证,请运行以下命令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
- 如果您想使用用户名和密码进行 SAP HANA 身份验证,请运行以下命令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
替换以下内容:
DESTINATION_PROJECT_ID
:您要在其中创建磁盘快照的 Google Cloud 项目的 IDHANA_HOST_ADDRESS
:托管 SAP HANA 数据库的 Compute Engine 实例的主机名或 IP 地址在高可用性 (HA) 系统中,指定 SAP HANA 主节点中本地主机的主机名或 IP 地址。请勿使用集群中所用的虚拟 IP (VIP) 来标识主节点。在灾难恢复 (DR) 部署中,指定 SAP HANA 主实例中本地主机的主机名或 IP 地址。
HANA_PORT_NUMBER
:接受备份和恢复请求的 SAP HANA 端口SID
:SAP HANA 系统的 SAP 系统标识符 (SID)HANA_USERNAME
:要用于创建备份的 SAP HANA 数据库用户名HDB_USERSTORE_KEY
:如果您已创建hdbuserstore
密钥以对指定的 SAP HANA 用户进行身份验证,请指定该密钥HANA_USER_PWD_SECRET_NAME
:如果您使用 Secret Manager 存储 SAP HANA 数据库用户的密码,请指定相应的 Secret 名称HANA_PASSWORD
:如果您要使用纯文本密码进行 SAP HANA 身份验证,请指定该密码COMMA_SEPARATED_DISK_NAMES
:在扩展型系统中托管/hana/data
卷的磁盘名称的英文逗号分隔列表
下表介绍了 hanadiskbackup
命令支持的参数:
参数 | 说明 |
---|---|
-port |
指定接受备份和恢复请求的 SAP HANA 端口。 |
-sid |
指定 SAP HANA 系统的 SAP 系统标识符 (SID)。 |
-hana-db-user |
指定要用于创建备份的 SAP HANA 数据库用户名。 如果您指定 |
-password |
指定用于创建备份的 SAP HANA 数据库用户的密码。 如果您使用了 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-password-secret |
可选。如果您使用 Secret Manager 存储 SAP HANA 数据库用户的密码,请指定相应的 Secret 名称。 在 Secret Manager 中,请确保 Secret 值(即密码)至少包含 8 个字符,并且至少包含 1 个大写字母、1 个小写字母和 1 个数字。 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-hdbuserstore-key |
如需安全地连接到 SAP HANA 系统,请指定您为该系统创建的安全用户存储区 ( 如需使用
此配置参数从代理版本 3.3 开始受支持。 如果您指定 对于 SAP HANA 身份验证,代理使用以下优先顺序:如果指定, |
-host |
可选。指定托管 SAP HANA 系统的 Compute Engine 实例的 IP 地址。默认值为 localhost 。 |
-project |
可选。指定运行 SAP HANA 实例的 Google Cloud 项目的 ID。 |
-abandon-prepared |
可选。指定是否忽略任何现有的基于快照的备份。默认值为 false 。 |
-snapshot-name |
可选。指定您要创建的磁盘快照的名称。仅当您的 默认情况下,快照按以下格式命名: |
-snapshot-description |
可选。指定磁盘快照的说明。只有当您的 /hana/data 卷托管在一块磁盘上时,此参数才适用。 |
-snapshot-type |
可选。指定要为托管 默认情况下,代理会创建标准快照。此参数支持的值: 此参数从代理版本 3.6 开始受支持。 |
-group-snapshot-name |
可选。为托管 默认情况下,快照组名称采用以下格式设置: 此参数从代理版本 3.6 开始受支持。 |
-labels |
可选。指定要与您创建的磁盘快照关联的一个或多个标签值对。例如:-labels="label1=value1,label2=value2" 。 |
-source-disks |
指定托管 /hana/data 卷的磁盘的名称。 扩展部署。使用英文逗号分隔磁盘名称。例如:-source-disks="disk-name-1, disk-name-2" 。 |
-storage-location |
可选。指定您要用于存储磁盘快照的 Cloud Storage 多区域或 Cloud Storage 区域。 |
-freeze-file-system |
可选。指定代理是否要冻结 SAP HANA 数据库的文件系统。默认值为 此参数从代理版本 3.2 开始受支持。 |
-send-metrics-to-monitoring |
可选。指定快照创建的执行状态是否发送到 Cloud Monitoring。默认值为 TRUE 。 |
-loglevel |
可选。指定快照创建操作的日志记录级别。默认日志记录级别为 info 。可用的日志级别包括:debug 、info 、warn 和 error 。 |
-confirm-data-snapshot-after-create |
可选。如果您希望在快照创建完成后立即确认快照创建情况,但不确认快照是否已上传到为 默认值为 此参数从代理版本 3.4 开始受支持。 |
验证磁盘快照
您可以使用以下选项验证磁盘快照是否已创建:
在 Google Cloud 控制台中,前往 Compute Engine 快照页面,然后使用磁盘名称过滤条目。如果您的
/hana/data
卷托管在一个磁盘上,您还可以使用快照名称进行过滤。如果您的/hana/data
卷托管在多个磁盘上,您还可以使用快照组的名称进行过滤。或者,您也可以在代理的以下日志文件中查看磁盘快照详细信息:
/var/log/google-cloud-sap-agent/hanadiskbackup.log
查看 SAP HANA 备份目录
除了创建基于磁盘快照的备份之外,hanadiskbackup
命令还会在 SAP HANA 备份目录中为其创建一个条目。以下是一个用于查看 SAP HANA 备份目录中基于快照的备份条目的 SQL 查询示例:
SELECT BACKUP_ID, STATE_NAME, COMMENT FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'data snapshot'
输出类似于以下示例:
BACKUP_ID,STATE_NAME,COMMENT BACKUP_ID,"successful","SNAPSHOT_IDENTIFIER"
此输出包括以下值:
BACKUP_ID
:在 SAP HANA 备份目录中分配给基于磁盘快照的备份的备份 IDSNAPSHOT_IDENTIFIER
:- 对于一个磁盘上的
/hana/data
卷,此标识符的值取决于-snapshot-name
参数与hanadiskbackup
命令的使用方式。如果您未指定此参数,则系统会设置该参数的默认值,即snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS
。 - 如果您的
/hana/
卷托管在多个磁盘上,则此标识符的值取决于-group-snapshot-name
参数与hanadiskbackup
命令的使用方式。如果未指定此参数,则系统会设置参数的默认值,即CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMMSS
。
- 对于一个磁盘上的
SOURCE_DISK_NAME
:此值取决于-source-disk
参数与hanadiskbackup
命令的搭配使用方式。CONSISTENCY_GROUP_NAME
:此值取决于-group-snapshot-name
参数与hanadiskbackup
命令的搭配使用方式YYYYMMDD-HHMMMSS
:快照的创建日期和时间。
使用基于磁盘快照的备份恢复数据库
如需使用Google Cloud的 Agent for SAP 的磁盘快照功能恢复 SAP HANA 数据库,请参阅适用于您的场景的说明:
为纵向扩容系统恢复数据库
如需为Google Cloud上部署的 SAP HANA 纵向扩容系统恢复数据库,请完成以下步骤:
通过运行代理的
hanadiskrestore
命令来恢复托管/hana/data
卷的磁盘:如果您的
/hana/data
卷托管在一个磁盘上,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
如果您的
/hana/data
卷托管在多个磁盘上,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁盘快照所在的 Google Cloud 项目的 IDSID
:SAP HANA 系统的 SAP 系统标识符 (SID)SOURCE_SNAPSHOT_NAME
:如果您的/hana/data
卷托管在一块磁盘上,请指定用于创建新磁盘的磁盘快照的名称SOURCE_SNAPSHOT_GROUP_NAME
:如果您的/hana/data
卷托管在多个磁盘上,请指定用于创建新磁盘的快照组名称NEW_DISK_NAME
:您要为新磁盘设置的名称。如需了解详情,请参阅磁盘恢复支持的参数中对-new-disk-name
的说明。NEW_DISK_TYPE
:您要创建的磁盘类型。如需了解详情,请参阅磁盘恢复支持的参数中对-new-disk-type
的说明。NEW_DISK_PREFIX
:您要添加到新磁盘名称的前缀COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:您要使用基于快照的备份功能恢复的磁盘名称的英文逗号分隔列表
如需详细了解可与
hanadiskrestore
命令搭配使用的参数,请参阅磁盘恢复支持的参数。使用所需选项恢复 SAP HANA 数据库:
恢复到快照时间
如需通过将 SAP HANA 数据库恢复到创建磁盘快照的时间来恢复该数据库,请按照以下步骤操作:
- 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
将
TENANT_SID
替换为租户数据库的 SID。
恢复到特定时间点
如需通过将 SAP HANA 数据库恢复到特定时间点来恢复该数据库,请按照以下步骤操作:
- 使用 Google Cloud的 Agent for SAP 的 Backint 功能验证您是否已在 Cloud Storage 中为
/hana/log
卷创建了备份。如需详细了解此功能,请参阅使用 Backint 为 SAP HANA 执行备份和恢复。 - 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
将
TENANT_SID
替换为租户数据库的 SID。
- 切换到
为纵向扩容高可用性系统恢复数据库
如需为 Google Cloud上的高可用性 (HA) 集群中部署的 SAP HANA 纵向扩容系统恢复数据库,请完成以下步骤:
验证您是否拥有在 SAP HANA 主节点中托管
/hana/data
卷的磁盘的快照。以根用户身份,将高可用性集群置于维护模式。如果您使用的是 Pacemaker,请运行以下命令:
RHEL
pcs property set maintenance-mode=true
SLES
crm configure property maintenance-mode=true
通过在高可用性集群的主节点和备用节点上运行以下命令来停止 SAP HANA 数据库实例:
HDB stop
切换到 SAP HANA 高可用性系统的主节点。
通过运行代理的
hanadiskrestore
命令来恢复托管/hana/data
卷的磁盘:如果您的
/hana/data
卷托管在一个磁盘上,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
如果您的
/hana/data
卷托管在多个磁盘上,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁盘快照所在的 Google Cloud 项目的 IDSID
:SAP HANA 系统的 SAP 系统标识符 (SID)SOURCE_SNAPSHOT_NAME
:如果您的/hana/data
卷托管在一块磁盘上,请指定用于创建新磁盘的磁盘快照的名称SOURCE_SNAPSHOT_GROUP_NAME
:如果您的/hana/data
卷托管在多个磁盘上,请指定用于创建新磁盘的快照组名称NEW_DISK_NAME
:您要为新磁盘设置的名称。如需了解详情,请参阅磁盘恢复支持的参数中对-new-disk-name
的说明。NEW_DISK_TYPE
:您要创建的磁盘类型。如需了解详情,请参阅磁盘恢复支持的参数中对-new-disk-type
的说明。NEW_DISK_PREFIX
:您要添加到新磁盘名称的前缀COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:您要使用基于快照的备份功能恢复的磁盘名称的英文逗号分隔列表
如需详细了解可与
hanadiskrestore
命令搭配使用的参数,请参阅磁盘恢复支持的参数。取消注册 SAP HANA 高可用性系统的辅助节点:
hdbnsutil -sr_unregister
在 SAP HANA 高可用性系统的主节点上,停用 SAP HANA 系统复制:
hdbnsutil -sr_disable
在主节点上,使用所需选项恢复 SAP HANA 数据库:
恢复到快照时间
如需通过将 SAP HANA 数据库恢复到创建磁盘快照的时间来恢复该数据库,请按照以下步骤操作:
- 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
将
TENANT_SID
替换为租户数据库的 SID。
恢复到特定时间点
如需通过将 SAP HANA 数据库恢复到特定时间点来恢复该数据库,请按照以下步骤操作:
- 使用 Google Cloud的 Agent for SAP 的 Backint 功能验证您是否已在 Cloud Storage 中为
/hana/log
卷创建了备份。如需详细了解此功能,请参阅使用 Backint 为 SAP HANA 执行备份和恢复。 - 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
将
TENANT_SID
替换为租户数据库的 SID。
- 切换到
在主节点上,启用 SAP HANA 系统复制:
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
向主节点重新注册备用节点:
hdbnsutil -sr_register --name=SECONDARY_SITE_NAME --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INSTANCE_NUMBER --replicationMode=sync --operationMode=logreplay
验证备用节点中的数据库是否与主节点中的数据库完全同步。
以根用户身份退出高可用性集群维护模式。如果您使用的是 Pacemaker,请运行以下命令:
RHEL
pcs property set maintenance-mode=false
SLES
crm configure property maintenance-mode=false
为纵向扩容灾难恢复部署恢复数据库
如需为使用灾难恢复解决方案在 Google Cloud上部署的 SAP HANA 纵向扩容系统恢复数据库,请完成以下步骤:
通过在灾难恢复部署的主实例和备用实例上运行以下命令来停止 SAP HANA 数据库:
HDB stop
切换到 SAP HANA 灾难恢复部署的主实例。
通过运行代理的
hanadiskrestore
命令来恢复托管/hana/data
卷的磁盘:如果您的
/hana/data
卷托管在一个磁盘上,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
如果您的
/hana/data
卷托管在多个磁盘上,请运行以下命令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁盘快照所在的 Google Cloud 项目的 IDSID
:SAP HANA 系统的 SAP 系统标识符 (SID)SOURCE_SNAPSHOT_NAME
:如果您的/hana/data
卷托管在一块磁盘上,请指定用于创建新磁盘的磁盘快照的名称SOURCE_SNAPSHOT_GROUP_NAME
:如果您的/hana/data
卷托管在多个磁盘上,请指定用于创建新磁盘的快照组名称NEW_DISK_NAME
:您要为新磁盘设置的名称。如需了解详情,请参阅磁盘恢复支持的参数中对-new-disk-name
的说明。NEW_DISK_TYPE
:您要创建的磁盘类型。如需了解详情,请参阅磁盘恢复支持的参数中对-new-disk-type
的说明。NEW_DISK_PREFIX
:您要添加到新磁盘名称的前缀COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:您要使用基于快照的备份功能恢复的磁盘名称的英文逗号分隔列表
如需详细了解可与
hanadiskrestore
命令搭配使用的参数,请参阅磁盘恢复支持的参数。在主实例上,停用 SAP HANA 系统复制:
hdbnsutil -sr_disable
在主实例上,使用所需选项恢复 SAP HANA 数据库:
恢复到快照时间
如需通过将 SAP HANA 数据库恢复到创建磁盘快照的时间来恢复该数据库,请按照以下步骤操作:
- 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
将
TENANT_SID
替换为租户数据库的 SID。
恢复到特定时间点
如需通过将 SAP HANA 数据库恢复到特定时间点来恢复该数据库,请按照以下步骤操作:
- 使用 Google Cloud的 Agent for SAP 的 Backint 功能验证您是否已在 Cloud Storage 中为
/hana/log
卷创建了备份。如需详细了解此功能,请参阅使用 Backint 为 SAP HANA 执行备份和恢复。 - 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
将
TENANT_SID
替换为租户数据库的 SID。
- 切换到
在主实例上,启用 SAP HANA 系统复制:
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
向主实例注册备用实例:
hdbnsutil -sr_register --name=SECONDARY_SITE_NAME --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INSTANCE_NUMBER --replicationMode=sync --operationMode=logreplay
验证备用实例中的数据库是否与主实例中的数据库完全同步。
为横向扩容系统恢复数据库
如需为未部署主机自动故障切换解决方案且部署在Google Cloud 上的 SAP HANA 横向扩容系统恢复数据库,请完成以下步骤:
在横向扩容部署中的每个节点上,停止 SAP HANA:
HDB STOP
在每个节点上,以根用户身份卸载
/hana/data
卷。如需了解如何执行此操作,请参阅 SAP HANA 版本对应的 SAP 文档。
通过运行代理的
hanadiskrestore
命令来恢复托管/hana/data
卷的磁盘: 替换以下内容:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ -source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ [-new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁盘快照所在的 Google Cloud 项目的 IDSID
:SAP HANA 系统的 SAP 系统标识符 (SID)SOURCE_SNAPSHOT_GROUP_NAME
:您要用于创建新磁盘的快照组的名称NEW_DISK_TYPE
:您要创建的磁盘类型。如需了解详情,请参阅磁盘恢复支持的参数中对-new-disk-type
的说明。NEW_DISK_PREFIX
:您要添加到新磁盘名称的前缀COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:您要使用基于快照的备份功能恢复的磁盘名称的英文逗号分隔列表
如需详细了解可与
hanadiskrestore
命令搭配使用的参数,请参阅磁盘恢复支持的参数。在每个工作器节点上,以 root 用户身份重新扫描卷组:
/sbin/dmsetup remove_all /sbin/vgscan -v --mknodes /sbin/vgchange -ay /sbin/lvscan mount -av
在每个工作器节点上,以 root 用户身份使用所需选项恢复 SAP HANA 数据库:
恢复到快照时间
如需通过将 SAP HANA 数据库恢复到创建磁盘快照的时间来恢复该数据库,请按照以下步骤操作:
- 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
将
TENANT_SID
替换为租户数据库的 SID。
恢复到特定时间点
如需通过将 SAP HANA 数据库恢复到特定时间点来恢复该数据库,请按照以下步骤操作:
- 使用 Google Cloud的 Agent for SAP 的 Backint 功能验证您是否已在 Cloud Storage 中为
/hana/log
卷创建了备份。如需详细了解此功能,请参阅使用 Backint 为 SAP HANA 执行备份和恢复。 - 切换到
SIDadm
用户:su - SID_LCadm
将
SID_LC
替换为您的 SAP HANA 系统的 SID。对于任何字母,请使用小写字母。 - 通过运行以下命令来恢复系统数据库:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
- 通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
将
TENANT_SID
替换为租户数据库的 SID。
- 切换到
在每个工作器节点上,启动 SAP HANA 数据库。
对扩容型部署中的主节点重复第 3-5 步。
磁盘恢复支持的参数
下表介绍了代理的 hanadiskrestore
命令支持的参数:
参数 | 说明 |
---|---|
-sid |
指定 SAP HANA 系统的 SAP 系统标识符 (SID)。 |
-data-disk-name |
可选。指定托管 /hana/data 卷的来源磁盘的名称。
从 3.4 版开始, |
-source-disks |
指定要恢复的部署中托管 此参数从 Google Cloud的 Agent for SAP 3.7 版开始受支持。若要恢复横向扩展系统,必须使用此参数。对于使用条带化磁盘托管 |
-data-disk-zone |
可选。指定在其中部署托管 /hana/data 卷的来源磁盘的可用区。从 3.4 版开始, |
-source-snapshot |
如果您的 /hana/data 卷托管在一个磁盘上,请指定您要用于执行恢复的磁盘快照的名称。 |
-new-disk-name |
指定要为新磁盘设置的名称。如果您的 /hana/data 卷托管在多个磁盘上,则此参数不适用。 |
-group-snapshot-name |
指定您要用于执行恢复的快照组名称。 此参数从代理版本 3.6 开始受支持。对于使用单个磁盘托管 |
-project |
可选。指定来源磁盘快照所在的 Google Cloud 项目的 ID。默认情况下,快照在运行 SAP HANA 系统的 Google Cloud 项目中创建。 |
-csek-key-file |
可选。如果您使用 hanadiskbackup 命令和 -source-disk-key-file 参数来加密源磁盘快照,请指定与源磁盘快照对应,RSA 封装的客户提供的加密密钥的 JSON 文件的绝对路径。下面是一个密钥文件的示例:[ { "uri": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ] 此参数从代理版本 3.2 开始受支持。 |
-new-disk-type |
可选。指定要创建的 Persistent Disk 或 Hyperdisk 的类型。默认情况下,新磁盘的类型与来源磁盘的类型相同。 请确保指定经 SAP 认证可用于 SAP HANA 的基于 SSD 的磁盘类型。如需了解详情,请参阅支持的磁盘类型。 |
-new-disk-prefix |
可选。指定要添加到新磁盘名称中的前缀。 此参数从代理版本 3.7 开始受支持。在恢复使用单个磁盘托管 |
-hana-sidadm |
可选。指定 SIDadm - SAP HANA 系统的操作系统用户。 |
-force-stop-hana |
可选。如果要在启动恢复操作之前强制停止 SAP HANA,请指定此参数并将其值设置为 true 。默认值为 false 。 |
-provisioned-iops |
可选。如果您要创建 Hyperdisk 卷,请指定其必须处理的 IOPS(每秒输入/输出操作数)。 |
-provisioned-throughput |
可选。如果您要创建 Hyperdisk 卷,请指定其必须支持的吞吐量。 |
-labels-on-detached-disk |
可选。如果您要创建新磁盘来托管已恢复的 此参数从代理版本 3.4 开始受支持。 |
-send-metrics-to-monitoring |
可选。指定快照恢复的持续时间是否发送到 Cloud Monitoring。默认值为 此参数从代理版本 3.4 开始受支持。 |
-disk-size-gb |
可选。指定新磁盘的大小(以 GB 为单位)。默认情况下,新磁盘的大小与现有磁盘的大小相同。 新磁盘的大小不得小于现有磁盘的大小。 |
-loglevel |
可选。为 hanadiskrestore 命令执行的所有操作指定日志记录级别。默认日志记录级别为 info 。可用的日志级别包括:debug 、info 、warn 和 error 。 |
执行系统复制或系统刷新
如需使用某个 SAP HANA 系统的基于磁盘快照的备份来恢复另一个 SAP HANA 系统,请完成以下步骤:
- 在源系统中,通过运行代理的
hanadiskbackup
命令来创建基于快照的备份。如需了解相关说明,请参阅创建基于磁盘快照的备份。 如果源系统和目标系统的 SID 不同,则重命名源系统中的
/hana/data/SID
目录,使其与目标系统匹配:mv /hana/data/SOURCE_SID /hana/data/TARGET_SID
替换以下内容:
SOURCE_SID
:源 SAP HANA 系统的 SIDTARGET_SID
:目标 SAP HANA 系统的 SID
在目标系统中,通过运行代理的
hanadiskrestore
命令来恢复托管/hana/data
卷的磁盘。在目标系统中,恢复系统数据库:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SOURCE 'SYSTEMDB@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT"
如果您希望租户数据库具有源系统的 SID,则可以按照 SAP HANA 文档重命名租户数据库中的说明重命名该数据库。
在目标系统中,连接到系统数据库。例如,您可以运行以下命令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
替换以下内容:
SYSTEM_DB_PASSWORD
:您的系统数据库密码INSTANCE_NUMBER
:您的 SAP HANA 实例编号
在目标系统中,通过对每个租户数据库运行以下命令来恢复租户数据库:
RECOVER DATABASE FOR TARGET_SID UNTIL TIMESTAMP '2023-12-08 23:59:00' CLEAR LOG USING SOURCE 'TARGET_SID@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT
验证快照一致性
本部分介绍如何使用 SAP 的 hdbpersdiag
工具验证磁盘快照中数据的一致性。如需了解 Google Cloud 建议用于基于磁盘快照的备份和恢复操作的其他最佳实践,请参阅最佳实践。 Google Cloud
如需验证快照的一致性,请完成以下步骤:
通过使用代理的
hanadiskbackup
命令创建的快照创建磁盘。使用gcloud compute disks create
命令:gcloud compute disks create DISK_NAME \ --size=SIZE \ --source-snapshot=SNAPSHOT_NAME \ --type=DISK_TYPE \ --zone=ZONE
替换以下内容:
DISK_NAME
:临时磁盘的名称SIZE
:临时磁盘的大小SNAPSHOT_NAME
:来源快照的名称DISK_TYPE
:临时磁盘的磁盘类型ZONE
:要在其中部署临时磁盘的 Compute Engine 可用区
将磁盘挂接到 SAP HANA 主机以外的 Compute Engine 实例。使用
gcloud compute instances attach-disk
命令:gcloud compute instances attach-disk COMPUTE_INSTANCE_NAME \ --disk=DISK_NAME \ --zone=ZONE
替换以下内容:
COMPUTE_INSTANCE_NAME
:您要在其中部署您创建的磁盘的计算实例的名称DISK_NAME
:您创建的磁盘的名称ZONE
:在其中部署计算实例的 Compute Engine 可用区
使用您偏好的 SSH 方法连接到您的计算实例。
将新磁盘装载为临时文件系统:
在操作系统级别,找到没有任何活跃逻辑卷的卷组:
vgdisplay
输出类似于以下示例:
--- Volume group --- VG Name vg_hana_data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 250.00 GiB PE Size 4.00 MiB Total PE 63999 Alloc PE / Size 63999 / 250.00 GiB Free PE / Size 0 / 0 VG UUID Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
使用 VG UUID 重命名卷组。在前面的示例中,它是
Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
。vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
激活卷组和逻辑卷:
vgchange -a y vg_hana_data_temp lvchange -a y /dev/vg_hana_data_temp/data
在临时文件系统中装载逻辑卷,例如
/hana/data_temp
:mkdir /hana/data_temp mount /dev/vg_hana_data_temp/data /hana/data_temp
验证所有磁盘是否都已正确装载:
lsblk
输出类似于以下示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 20M 0 part /boot/efi └─sda3 8:3 0 30G 0 part / sdb 8:16 0 350G 0 disk └─vg_hana_data_temp-data 254:5 0 250G 0 lvm /hana/data_temp sdc 8:32 0 104G 0 disk └─vg_hana_log-log 254:2 0 104G 0 lvm /hana/log sdd 8:48 0 208G 0 disk └─vg_hana_shared-shared 254:0 0 208G 0 lvm /hana/shared sde 8:64 0 32G 0 disk └─vg_hana_usrsap-usrsap 254:3 0 32G 0 lvm /usr/sap sdf 8:80 0 416G 0 disk └─vg_hanabackup-backup 254:4 0 416G 0 lvm /hanabackup sdh 8:112 0 250G 0 disk └─vg_hana_data-data 254:1 0 250G 0 lvm /hana/data
以
SIDadm
用户身份,对临时文件系统中包含的数据卷运行hdbpersdiag
工具:for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
验证
hdbpersdiag
工具的输出。如果您打算将来执行此一致性检查,则可以让新卷组保持原样。如果不是,请将其删除。
将磁盘从计算实例中分离。使用
gcloud compute instances detach-disk
命令:COMPUTE_INSTANCE_NAME \ --disk=DISK_NAME \ --zone=ZONE
删除磁盘。使用
gcloud compute disks delete
命令:gcloud compute disks delete DISK_NAME \ --zone=ZONE
问题排查
虽然 Google Cloud的 Agent for SAP 旨在解决适用于 SAP HANA 的基于磁盘快照的备份和恢复操作期间可能出现的大多数问题,但也有少数情况需要手动干预。
如需排查Google Cloud的 Agent for SAP 的磁盘快照功能的任何相关问题,请参阅基于磁盘快照的备份或恢复操作问题。
获取支持
如果您在解决 Google Cloud的 Agent for SAP 的问题时需要帮助,请收集所需的诊断信息并与 Cloud Customer Care 联系。如需了解详情,请参阅 Google Cloud的 Agent for SAP for SAP HANA 诊断信息。