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

通过 Azure 备份在 Azure VM 上备份 SAP ASE (Sybase) 数据库

本文介绍了如何在 Azure 门户上为在 Azure 虚拟机 (VM) 上运行的 SAP Adaptive Server Enterprise (ASE) (Sybase) 数据库配置备份。

注意

先决条件

在设置 SAP ASE 数据库进行备份之前,请查看以下先决条件:

  • 在运行 SAP ASE 的 VM 所在的同一区域和订阅中标识或创建一个恢复服务保管库。

  • 允许从 VM 连接到 Internet,以便它可以访问 Azure。

  • 对于 Azure 资源管理器 (ARM) VM,SAP ASE 服务器 VM 名称和资源组名称的组合长度不超过 84 个字符(而对于经典 VM,则不超过 77 个字符)。 设置此限制是因为服务会预留一些字符。

  • VM 上安装的 python 需要 > 3.6.15 版本(建议安装 Python3.10),并且应安装 python 的 requests 模块。 默认情况下,sudo python3 应运行 python 3.6.15 或更高版本。 可以通过在系统中运行 python3 和 sudo python3 来验证默认运行的 Python 版本。 它应运行所需的版本。 可以通过将 python3 链接到 python 3.6.15 或更高版本来更改版本。

  • 在安装了 ASE 的虚拟机中,以 root 用户身份运行 SAP ASE 备份配置脚本(预注册脚本)。 此脚本将为 ASE 系统准备好备份。 详细了解预注册脚本工作流

  • 如果 ASE 安装程序使用专用终结点,请使用 -sn 或 --skip-network-checks 参数运行预注册脚本。 了解如何运行预注册脚本

  • 为备份操作分配以下权限和设置:

    权限/设置 说明
    操作员角色 为数据库用户启用此 ASE 数据库角色,以便为备份和还原操作创建自定义数据库用户,并将其传递到预注册脚本中。
    “映射外部文件”权限 启用此角色以允许数据库文件访问。
    “拥有任何数据库”权限 允许差异备份。 数据库的“允许增量转储”应为 True
    “trunc log on chkpt”权限 对要使用 ASE 备份保护的所有数据库禁用此权限。 允许将数据库日志备份到恢复服务保管库。 详细了解 SAP 注释 - 2921874 - 具有 HADR 的数据库中的“截断检查点日志”- SAP ASE - SAP for Me

    注意

    Master 数据库不支持日志备份。 对于其他系统数据库,仅当数据库的日志文件与其数据文件分开存储时,才能支持日志备份。 默认情况下,系统数据库使用同一数据库设备中的数据和日志文件创建,从而阻止日志备份。 若要启用日志备份,数据库管理员必须将日志文件的位置更改为单独的设备。

  • 使用 Azure 内置角色配置备份 - 为资源分配角色和范围。 以下参与者角色允许在数据库 VM 上运行“配置保护”操作。

    资源(访问控制) 角色 用户、组或服务主体
    运行 ASE 数据库的源 Azure VM 虚拟机参与者 允许配置备份操作。

预注册脚本工作流

预注册脚本是在安装了 SAP ASE 数据库的 VM 上运行的 Python 脚本。 此脚本执行以下任务:

  1. 创建添加了插件用户的必要组。
  2. 安装和更新所需的包,例如 waagent、Python、curl、unzip、Libicu 和 PythonXML。
  3. 验证 waagent 的状态、检查 wireserverIMDS connectivity,以及测试与 Microsoft Entra ID 的 TCP 连接
  4. 确认地理区域是否受支持。
  5. 检查日志、waagent 目录中和 /opt 目录中的可用空间。
  6. 验证 Adaptive Server Enterprise (ASE) 版本是否受支持。
  7. 使用提供的用户名和密码登录 SAP 实例,从而启用备份和还原操作所需的转储历史记录。
  8. 确保操作系统版本受支持。
  9. 安装并更新所需的 Python 模块,例如请求和加密。
  10. 创建工作负载配置文件。
  11. /opt 下为备份操作设置所需的目录。
  12. 加密密码,将其安全地存储在虚拟机中。

运行注册前脚本

若要执行 SAP ASE 数据库备份的预注册脚本,请运行以下 bash 命令:

  1. 下载 ASE 预注册脚本文件

  2. 将文件复制到虚拟机 (VM)。

    注意

    将以下命令中的 <script name> 替换为已下载并复制到 VM 的脚本文件的名称。

  3. 将脚本转换为 Unix 格式。

     dos2unix <script name>
    
  4. 更改脚本文件的权限。

    注意

    在运行以下命令之前,请将 /path/to/script/file 替换为 VM 中脚本文件的实际路径。

     sudo chmod -R 777 /path/to/script/file
    
  5. 更新脚本名称。

     sudo ./<script name> -us
    
  6. 运行该脚本。

    注意

    在运行以下命令之前,请提供占位符所需的值。

     sudo ./<script name> -aw SAPAse --sid <sid> --sid-user <sid-user> --db-port <db-port> --db-user <db-user> --db-host <private-ip-of-vm> --enable-striping <enable-striping>
    

    参数列表:

    • <sid>:所需的 ASE 服务器的名称(必需)
    • <sid-user>:ASE 系统在其中运行的操作系统用户名(例如,syb<sid>)(必需)
    • <db-port>:ASE 数据库服务器的端口号(例如 4901)(必需)
    • <db-user>:ODBC 连接的 ASE 数据库用户名(例如,sapsa)(必需)
    • <db-host>:VM 的专用 IP 地址(必需)
    • <enable-striping>:启用条带化(选项:['true', 'false'],必需)
    • <stripes-count>:条带计数值(默认值:“4”)
    • <compression-level>:压缩级别(默认值:“101”)

    注意

    若要查找 <private-ip-of-vm>,请在 Azure 门户中打开 VM,并在“网络”部分下检查专用 IP。

  7. 查看参数的详细信息。

     sudo ./<script name> -aw SAPAse --help
    

    运行脚本后,系统会提示你提供数据库密码。 提供密码,然后按 Enter 键继续。

为 Azure 备份创建自定义角色

若要为 Azure 备份创建自定义角色,请运行以下 bash 命令:

注意

在每个命令之后,请确保运行命令 go 以执行语句。

  1. 使用 SSO 角色用户登录到数据库。

     isql -U sapsso -P <password> -S <sid> -X
    
  2. 创建新角色。

     create role azurebackup_role
    
  3. 向新角色授予操作员角色。

     grant role oper_role to azurebackup_role
    
  4. 启用精细权限。

     sp_configure 'enable granular permissions', 1
    
  5. 使用 SA 角色用户登录到数据库。

     isql -U sapsa -P <password> -S <sid> -X
    
  6. 切换到主数据库。

     use master
    
  7. 向新角色授予“映射外部文件”权限。

     grant map external file to azurebackup_role
    
  8. 使用 SSO 角色用户再次登录。

     isql -U sapsso -P <password> -S <sid> -X
    
  9. 创建新用户。

     sp_addlogin backupuser, <password>
    
  10. 向用户授予自定义角色。

     grant role azurebackup_role to backupuser
    
    
  11. 将自定义角色设置为用户的默认角色。

     sp_modifylogin backupuser, "add default role", azurebackup_role
    
  12. 以 SA 用户身份向自定义角色授予“拥有任何数据库”权限

     grant own any database to azurebackup_role
    
  13. 再次以 SA 用户身份登录到数据库。

     isql -U sapsa -P <password> -S <sid> -X
    
  14. 启用文件访问。

     sp_configure "enable file access", 1
    
  15. 对数据库启用差异备份。

     use master
     go
     sp_dboption <database_name>, 'allow incremental dumps', true
     go
    
  16. 对数据库禁用“trunc log on chkpt”

     use master
     go
     sp_dboption <database_name>, 'trunc log on chkpt', false
     go
    

建立网络连接

对于所有操作,在 Azure VM 上运行的 SAP ASE 数据库需要连接到 Azure 备份服务、Azure 存储和 Microsoft Entra ID。 要实现这种连接,可以使用专用终结点,或者允许访问所需的公共 IP 地址或 FQDN。 如果不允许正确连接到所需的 Azure 服务,则可能会导致诸如数据库发现、配置备份、执行备份和还原数据等操作失败。

下表列出了可用于建立连接的各种备选方案:

选项 优点 缺点
专用终结点 允许通过虚拟网络中的专用 IP 进行备份。

提供网络和保管库端的精细控制。
产生标准专用终结点成本
网络安全组 (NSG) 服务标记 由于范围更改会自动合并,因此更易于管理。

无额外成本。
仅与 NSG 配合使用。

提供对整个服务的访问。
Azure 防火墙 FQDN 标记 由于必需的 FQDN 会自动管理,因此更易于管理。 仅与 Azure 防火墙配合使用。
允许访问服务 FQDN/IP 无额外成本。

适用于所有网络安全设备和防火墙。

还可以将服务终结点用于存储。 但是,对于 Azure 备份和 Microsoft Entra ID,需要分配对相应 IP/FQDN 的访问权限。
可能需要访问一组广泛的 IP 或 FQDN。
虚拟网络服务终结点 用于 Azure 存储。

提供很大的优势,可优化数据平面流量的性能。
不能用于 Microsoft Entra ID、Azure 备份服务。
网络虚拟设备 用于 Azure 存储、Microsoft Entra ID、Azure 备份服务。

数据平面
- Azure 存储:*.blob.core.windows.net*.queue.core.windows.net*.blob.storage.azure.net

管理平面
- Microsoft Entra ID:允许访问 Microsoft 365 Common 和 Office Online 的 56 和 59 节中提到的 FQDN。
- Azure 备份服务:.backup.windowsazure.com

详细了解 Azure 防火墙服务标记
增加数据平面流量的开销,降低吞吐量/性能。

以下各部分详细介绍了连接选项的用法。

专用终结点

使用专用终结点,可以从虚拟网络中的服务器安全地连接到恢复服务保管库。 专用终结点为保管库使用 VNET 地址空间中的 IP。 虚拟网络中的资源与保管库之间的网络流量将通过虚拟网络和 Microsoft 主干网络上的专用链接传输。 这样就不会从公共 Internet 泄露信息。 详细了解 Azure 备份的专用终结点

注意

  • Azure 备份和 Azure 存储支持专用终结点。 Microsoft Entra ID 在此预览版中支持专用终结点。 在正式发布之前,Azure 备份支持为 Microsoft Entra ID 设置代理,以便让 ASE VM 无需出站连接。 有关详细信息,请参阅代理支持部分
  • SAP ASE 预注册脚本(ASE 工作负载脚本)的下载操作需要访问 Internet。 但是,在启用了专用终结点 (PE) 的 VM 上,预注册脚本无法直接下载这些工作负载脚本。 因此,必须在具有 Internet 访问权限的本地 VM 或其他 VM 上下载脚本,然后使用 SCP 或任何其他传输方法将其移动到启用了 PE 的 VM。

网络安全组标记

如果使用网络安全组 (NSG),请使用 AzureBackup 服务标记以允许对 Azure 备份进行出站访问。 除了 Azure 备份标记外,还需要为 Microsoft Entra ID 和 Azure 存储创建类似的 NSG 规则,以便在连接后进行身份验证和数据传输。

若要为 Azure 备份标记创建规则,请执行以下步骤:

  1. Azure 门户中转到“网络安全组”,然后选择网络安全组。
  2. 在“设置”边栏选项卡上,选择“出站安全规则”。
  3. 选择 添加
  4. 输入创建新规则所需的所有详细信息。 请确保将“目标”设置为“服务标记”,将“目标服务标记”设置为 AzureBackup
  5. 选择“添加”,保存新创建的出站安全规则。

同样,可以为 Azure 存储和 Microsoft Entra ID 创建 NSG 出站安全规则。 详细了解服务标记

Azure 防火墙标记

如果使用 Azure 防火墙,请使用 AzureBackup Azure 防火墙 FQDN 标记创建应用程序规则。 这允许对 Azure 备份进行所有出站访问。

注意

Azure 备份目前在 Azure 防火墙上不支持启用了 TLS 检查的应用程序规则。

允许访问服务 IP 范围

如果选择允许访问服务 IP,请参阅 JSON 文件中的 IP 范围。 需要允许访问与 Azure 备份、Azure 存储和 Microsoft Entra ID 对应的 IP。

允许访问服务 FQDN

还可以使用以下 FQDN 以允许从服务器访问所需的服务:

服务 要访问的域名 端口
Azure 备份 *.backup.windowsazure.com 443
Azure 存储 *.blob.core.windows.net

*.queue.core.windows.net

*.blob.storage.azure.net
443
Microsoft Entra ID *.login.microsoft.com

根据 本文,允许访问第 56 和 59 节下的 FQDN。
443

如果适用。

使用 HTTP 代理服务器路由流量

注意

目前,Microsoft Entra ID 流量的 HTTP 代理只支持用于 SAP ASE 数据库。 如果需要通过 ASE VM 中的 Azure 备份功能去除数据库备份的出站连接要求(对于 Azure 备份和 Azure 存储流量),请使用其他选项,例如专用终结点。

将 HTTP 代理服务器用于 Microsoft Entra ID 流量

若要使用 HTTP 代理服务器路由 Microsoft Entra ID 的流量,请执行以下步骤:

  1. 在数据库中,转到 opt/msawb/bin 文件夹。

  2. 创建名为 ExtensionSettingsOverrides.json 的新 JSON 文件。

  3. 将键值对添加到 JSON 文件,如下所示:

    {
       "UseProxyForAAD":true,
       "UseProxyForAzureBackup":false,
       "UseProxyForAzureStorage":false,
       "ProxyServerAddress":"http://xx.yy.zz.mm:port"
    }
    
  4. 更改文件的权限和所有权,如下所示:

    chmod 750 ExtensionSettingsOverrides.json
    chown root:msawb ExtensionSettingsOverrides.json
    

注意

不需要重新启动任何服务。 Azure 备份服务会尝试通过 JSON 文件中提到的代理服务器路由 Microsoft Entra ID 流量。

使用出站规则

如果“防火墙”或“NSG”设置阻止 Azure 虚拟机中的 management.azure.com 域,快照备份将失败。

创建以下出站规则并允许域名备份数据库。 了解如何创建出站规则

  • 源:VM 的 IP 地址

  • 目标:服务标记

  • 目标服务标记:AzureResourceManager

    屏幕截图显示了数据库出站规则设置。

创建恢复服务保管库

恢复服务保管库是一个管理实体,它会存储一段时间内创建的恢复点,并提供用于执行备份相关操作的接口。 这些操作包括按需备份、执行还原和创建备份策略。

若要创建恢复服务保管库,请执行以下操作:

  1. 登录到 Azure 门户

  2. 搜索“业务连续性中心”,然后转到“业务连续性中心”仪表板。

    屏幕截图显示在何处搜索并选择“业务连续性中心”。

  3. 在“保管库”窗格中,选择“+ 保管库”。

    屏幕截图显示如何开始创建恢复服务保管库。

  4. 选择“恢复服务保管库”>“继续”。

    显示选择“恢复服务”作为保管库类型的位置的屏幕截图。

  5. 在“恢复服务保管库”窗格中输入以下值:

    • 订阅:选择要使用的订阅。 如果你仅是一个订阅的成员,则会看到该名称。 如果不确定要使用哪个订阅,请使用默认订阅。 仅当工作或学校帐户与多个 Azure 订阅关联时,才会显示多个选项。

    • 资源组:使用现有资源组,或创建一个新的资源组。 若要查看订阅中可用的资源组的列表,请选择“使用现有资源”,然后从下拉列表中选择一个资源。 若要创建新的资源组,请选择“新建”并输入新资源组的名称。 有关资源组的详细信息,请参阅 Azure 资源管理器概述

    • 保管库名称:输入一个易记名称,用于标识此保管库。 名称对于 Azure 订阅必须是唯一的。 指定的名称应至少包含 2 个字符,最多不超过 50 个字符。 名称必须以字母开头且只能包含字母、数字和连字符。

    • 区域:为保管库选择地理区域。 若要创建保管库来保护任何数据源,该保管库必须位于数据源所在的区域。

      重要

      如果不确定数据源的位置,请关闭该窗口。 在门户中访问你的资源列表。 如果数据源位于多个区域中,请为每个区域创建恢复服务保管库。 先在第一个位置创建保管库,然后再在其他位置中创建保管库。 无需指定存储帐户即可存储备份数据。 恢复服务保管库和 Azure 备份会自动处理这种情况。

      显示用于配置恢复服务保管库的字段的屏幕截图。

  6. 提供值后,选择“查看 + 创建”。

  7. 要完成恢复服务保管库的创建,请选择“创建”。

    创建恢复服务保管库可能需要一段时间。 可在右上方的“通知”区域监视状态通知。 创建保管库后,它会显示在“恢复服务保管库”的列表中。 如果没有显示保管库,请选择“刷新”。

    显示用于刷新备份保管库列表的按钮的屏幕截图。

注意

Azure 备份现在支持不可变保管库,可帮助确保恢复点一旦创建就无法根据备份策略在到期前将其删除。 可以将不可变性设为不可逆转,以最大限度地保护备份数据免受各种威胁,包括勒索软件攻击和恶意行动者。 了解详细信息

启用跨区域还原

在恢复服务保管库中,可以启用跨区域还原。 了解如何开启跨区域还原

屏幕截图显示了如何在恢复服务保管库中启用跨区域还原。

发现数据库

若要发现 SAP ASE 数据库,请执行以下步骤:

  1. 转到“恢复服务保管库”,然后选择“+ 备份”

    屏幕截图显示了如何启动 SAP 数据库备份。

  2. 在“备份目标”上,选择“Azure VM 中的 SAP ASE (Sybase)(预览版)”作为数据源类型。

    屏幕截图显示了如何选择数据源类型。

  3. 选择“开始发现”。 这会开始在保管库区域中发现未受保护的 Linux VM。

    屏幕截图显示了如何启动数据库发现。

    注意

    • 在发现后,未受保护的 VM 将显示在门户中,按名称和资源组列出。
    • 如果某个 VM 未按预期列出,请检查它是否已在保管库中备份。
    • 可能有多个 VM 同名,但属于不同的资源组。
  4. 在“选择虚拟机”边栏选项卡上,下载预发布脚本,此脚本可为 Azure 备份服务提供访问 SAP ASE VM 的权限以进行数据库发现

  5. 在每个托管要备份的 SAP ASE 数据库的 VM 上运行此脚本。

  6. 在 VM 上运行脚本后,在“选择虚拟机”边栏选项卡上选择“VM”,然后选择“发现数据库”

    Azure 备份可发现该 VM 上的所有 SAP ASE 数据库。 在发现期间,Azure Backup 将 VM 注册到保管库,并在该 VM 上安装扩展。 不会在数据库中安装任何代理。

    屏幕截图显示了如何从已发现的列表中选择数据库进行备份配置。

配置 SAP ASE (Sybase) 数据库备份

若要为 SAP ASE 数据库配置备份操作,请执行以下步骤:

  1. 在“备份目标”边栏选项卡上的“步骤 2”下,选择“配置备份”

    屏幕截图显示了如何启动备份配置。

2. 在“备份策略”下,为数据库选择“创建新策略”。

屏幕截图显示了如何开始创建备份策略。

备份策略定义备份创建时间以及这些备份的保留时间。

  • 策略是在保管库级别创建的。
  • 多个保管库可以使用相同的备份策略,但必须向每个保管库应用该备份策略。
  1. 在“策略名称”上,为新策略提供名称。

    屏幕截图显示了如何为新备份策略提供名称。

  2. 在“完整备份策略”上,选择“备份频率”,然后根据要求选择“每日”或“每周”。

    • 每日:选择备份作业开始时的小时和时区

      注意

      • 你必须运行完整备份。 无法关闭此选项。
      • 转到“完整备份策略”以查看策略设置。
      • 对于每日完整备份,无法创建差异备份。
    • 每周:选择备份作业运行时的星期、小时和时区

    以下屏幕截图显示了完整备份的备份计划。

    屏幕截图显示了备份规则的配置。

  3. 在“保持期”上,定义完整备份的保持期。

    注意

    • 默认情况下将选择所有选项。 清除不想使用的所有保持期限制,并设置想使用的选项。
    • 任何备份类型(完整/差异/日志)的最短保持期均为七天。
    • 恢复点已根据其保留范围标记为保留。 例如,如果选择每日完整备份,则每天只触发一次完整备份。
    • 根据每周保持期和设置,将会标记并保留特定日期的备份。
    • 每月和每年保留范围的行为类似。
  4. 在“完整备份策略”上,选择“确定”接受设置。

  5. 选择“差异备份”添加差异策略

  6. 在“差异备份策略”上,选择“启用”打开频率和保留控件。

    注意

    • 每天最多可以触发一次差异备份。
    • 差异备份最多可以保留 180 天。 如果需要保留更长时间,必须使用完整备份。
  7. 选择“确定”保存策略,并返回“备份策略”页。

  8. 请选择“日志备份”,以添加事务日志备份策略。

  9. 在“日志备份”上,选择“启用”设置频率和保留控件。

    注意

    • 日志备份仅在成功完成一次完整备份之后进行。
    • 每个日志备份都链接到上一个完整备份,以形成恢复链。 此完整备份将一直保留到最后一个日志备份的保留期结束。 这可能意味着完整备份会保留一段额外的时间,以确保所有日志都可以恢复。 假设用户有每周完整备份、每日差异备份和 2 小时日志备份。 所有这些备份都将保留 30 天。 但是,只有在下一个完整备份可用后(即 30 + 7 天后),才能真正清除/删除这个每周完整备份。 例如,每周完整备份在 11 月 16 日执行。 根据保留策略,它应保留到 12 月 16 日。 该完整备份的最后一次日志备份发生在下一次计划的完整备份之前,即 11 月 22 日。 必须等到 12 月 22 日此日志备份可用后,才能删除 11 月 16 日的完整备份。 因此,11 月 16 日的完整备份将保留到 12 月 22 日。
  10. 在“配置备份”上,选择“备份策略”下的新策略,然后选择“添加”。

  11. 选择“配置备份”。

  12. 在“选择要备份的项”上,选择要保护的数据库,然后选择“下一步”

    屏幕截图显示了已选择要备份的数据库项。

  13. 查看备份配置。

    屏幕截图显示了已完成备份配置。

  14. 选择“启用备份”启动备份操作

运行按需备份

若要运行按需备份,请执行以下步骤:

  1. 转到“恢复服务保管库”,然后选择“备份项”

  2. 在“备份项”边栏选项卡上,为“备份管理类型”选择“Azure VM 中的 SAP ASE (Sybase)”

  3. 选择按需备份的数据库的“查看详细信息”

    屏幕截图显示了如何查看详细信息。

  4. 选择“立即备份”进行按需备份

    屏幕截图显示了如何进行按需备份。

  5. 在“立即备份”窗格中,选择要执行的备份类型,然后选择“确定”。 此备份的保留期取决于你要运行的按需备份类型。

    • 按需完整备份至少保留 45 天,最多保留 99 年
    • 按需差异备份按策略中的日志保留设置进行保留。

    屏幕截图显示了如何选择要执行的备份类型。

下一步