使用 Azure 门户恢复 Azure Database for PostgreSQL 备份

本文介绍如何将数据库还原到使用 Azure 门户备份的 Azure Database for PostgreSQL 服务器。 还可以使用 Azure PowerShellAzure CLIREST API 还原 PostgreSQL 数据库。

如果服务在目标服务器上具有相应的权限集,则可以将数据库还原到不同或相同订阅中但在保管库的同一区域内的任何 Azure Database for PostgreSQL 服务器。

还原 PostgreSQL 数据库

  1. Azure 门户中,转到 备份保管库>备份实例。 选择数据库,然后选择“ 还原”。

    显示备份实例详细信息的屏幕截图。

    或者,可以从 备份中心转到此页面。

  2. “选择还原点 ”选项卡上,从可用于所选备份实例的所有完整备份列表中选择恢复点。 默认选择最新的恢复点。

    显示用于选择恢复点的选项卡的屏幕截图。

    如果还原点位于存档层中,则必须在还原之前解除冻结恢复点。 提供解除冻结所需的以下附加参数:

    • 解除冻结优先级:默认值为 “标准”。
    • “解除冻结持续时间”:最大解除冻结持续时间为 30 天,最小解除冻结持续时间为 10 天。 默认值为 15 天。 恢复点在备份数据存储中存储此时长。

    注意

    对 Azure Database for PostgreSQL 的存档支持处于有限预览阶段。

  3. “还原参数 ”选项卡上,选择以下还原类型之一:

    • 还原为数据库:目标服务器可以与源服务器相同。 但是,不支持覆盖原始数据库。 可以跨所有订阅从服务器进行选择,但需要与保管库的位于同一区域。

      1. 若要 选择密钥保管库以使用目标服务器进行身份验证,请选择存储要连接到目标服务器的凭据的保管库。

      2. 选择“ 查看并还原 ”以触发验证,检查服务是否对 目标服务器具有还原权限。 必须手动授予这些权限。

      屏幕截图显示了所选选项以数据库形式进行还原。

      重要说明

      通过密钥保管库选择其凭据的数据库用户拥有对还原的数据库的所有权限。 将重写任何现有的数据库用户边界。

      如果备份数据库具有任何特定于用户的权限或约束(例如,一个数据库用户可以访问几个表,另一个数据库用户可以访问其他几个表),则还原后不会保留此类权限。 如果要保留这些权限,请使用 “还原为文件”,并将 pg_restore 该命令与相关开关一起使用。

    • 还原为文件:可以跨所有订阅从存储帐户中进行选择,但需要与保管库的位于同一区域。

      1. “目标容器 ”下拉列表中,选择为所选存储帐户筛选的容器之一。
      2. 选择 “查看 + 还原 ”以触发验证,检查备份服务是否 对目标存储帐户具有还原权限

      显示用于还原为文件的所选选项的屏幕截图。

  4. 提交还原操作,然后在 备份作业 窗格中跟踪触发的作业。

    显示备份作业窗格上跟踪的触发作业的屏幕截图。

针对目标存储帐户的还原权限

若要向备份保管库的托管标识分配访问存储帐户容器的权限,请执行以下步骤:

  1. 在 Azure 门户中,转到 存储帐户>访问控制(IAM),然后选择“ 添加”。

  2. 在“添加角色分配”窗格中的“角色”下拉列表中,为备份保管库的托管标识选择“存储 Blob 数据参与者”角色。

    显示用于在 Azure 门户中添加角色分配的选择的屏幕截图。

或者,使用 Azure CLI az role assignment create 命令为要还原到的特定容器提供精细权限:

az role assignment create --assignee $VaultMSI_AppId  --role "Storage Blob Data Contributor"   --scope $id

assignee 参数的值替换为保管库托管标识的应用程序 ID。 有关 scope 参数的值,请参阅特定的容器。 若要获取保管库托管标识的应用程序 ID,请在应用程序类型下选择所有应用程序。 搜索保管库名称并复制应用程序 ID 值。

显示用于获取备份保管库托管服务标识的应用程序 ID 的选项的屏幕截图。

屏幕截图展示了如何复制保管库应用程序 ID 的过程。

跨区域还原数据库

可以使用“跨区域还原”选项在 Azure 配对区域(这是次要区域)中还原 Azure Database for PostgreSQL 服务器。

开始使用 跨区域还原之前,请阅读 这些重要注意事项。 若要检查该功能是否已启用,请参阅 “配置跨区域还原”。

查看次要区域中的备份实例

如果启用了 跨区域还原 ,可以查看次要区域中的备份实例:

  1. 在 Azure 门户中,转到 “备份保管库>备份实例”。

  2. 将筛选器选为“实例区域 == 次要区域”。

显示作为实例区域的次要区域的选择的屏幕截图。

注意

仅列出了支持 跨区域还原 功能的备份管理类型。 目前,Azure Database for PostgreSQL 服务器仅支持将主要区域数据还原到次要区域。

还原到次要区域

在次要区域中还原的体验类似于在主要区域中还原的体验。

在“ 还原配置 ”窗格中配置详细信息以配置还原时,系统会提示你仅提供次要区域参数。 保管库应已存在于次要区域中,应将 Azure Database for PostgreSQL 服务器注册到次要区域中的保管库。

执行以下步骤:

  1. 选择“备份实例名称”以查看详细信息。

  2. 选择“还原到次要区域”。

    显示操作菜单中用于还原到次要区域的按钮的屏幕截图。

  3. 选择还原点、区域和资源组。

  4. 选择“还原”。

注意

  • 在数据传输阶段中触发还原后,无法取消还原作业。
  • 跨区域执行还原操作所需的角色/访问权限是订阅中的 备份操作员 角色,以及在源虚拟机和目标虚拟机上的 贡献者(写入) 访问权限。 若要查看备份作业,至少需要在订阅中具有备份读取者权限。
  • 次要区域中可用的备份数据的恢复点目标(RPO)为 12 小时。 启用 跨区域还原时,次要区域的 RPO 为 12 小时 + 日志频率持续时间。 日志频率持续时间可以设置为至少 15 分钟。

监视次要区域中的还原作业

  1. 在 Azure 门户中,转到 “监视 + 报告>备份作业”。

  2. 筛选实例区域次要区域以查看次要区域中的任务。

显示用于查看次要区域中的作业的选项的屏幕截图。