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

还原 Azure Database for PostgreSQL 灵活服务器备份(预览)

本文介绍如何还原由 Azure 备份进行备份的 Azure PostgreSQL 灵活服务器。

先决条件

  1. 在从 Azure Database for PostgreSQL 灵活服务器备份还原之前,请确保你对还原操作拥有所需的权限

  2. 备份数据作为 Microsoft 租户内的 Blob 存储在备份保管库中。 在还原操作期间,备份数据将跨租户从一个存储帐户复制到另一个存储帐户。 确保还原的目标存储帐户的 AllowCrossTenantReplication 属性设置为 true

还原 Azure PostgreSQL 灵活服务器数据库

执行以下步骤:

  1. 转到“备份保管库”>“备份实例”。 选择要还原的 PostgreSQL 灵活服务器,然后选择“还原”。

    显示如何还原数据库的屏幕截图。

    或者,转到备份中心并选择“还原”。

  2. 使用“选择还原点”来选择要还原到的时间点。 选择“时间段”来更改日期范围。

    屏幕截图,显示选择恢复点的过程。

  3. 在“还原参数”选项卡中选择目标存储帐户和容器。选择“验证”,在最终审阅和还原之前检查还原参数权限。

  4. 验证成功后,请选择“查看 + 还原”。 显示“还原参数”流程的屏幕截图。

  5. 在对参数进行最后审阅后,选择“还原”,在目标存储帐户中还原所选的 PostgreSQL 灵活服务器备份。 显示“审阅”流程页的屏幕截图。

  6. 提交还原操作并在“备份作业”下跟踪触发的作业。 显示“验证”流程页的屏幕截图。

  7. 作业完成后,备份的数据将还原到存储帐户中。 下面是还原后在存储帐户中恢复的文件集:

    • 第一个文件是一个标记或时间戳文件,它为客户提供了进行备份的时间。 该文件无法还原,但如果使用文本编辑器将其打开,它应告知客户进行备份时的 UTC 时间。

    • 第二个文件 database 是使用 pg_dump 对名为 tempdata2 的数据库进行的单独数据库备份。 每个数据库都有一个单独的文件,格式为 – {backup_name}database{db_name}.sql

    • 第三个文件 _roles。 使用 pg_dumpall 备份角色

    • 第四个文件 _schemas。 使用 pg_dumpall 进行备份

    • 第五个文件 _tablespaces。 使用 pg_dumpall 备份表空间

  8. 在目标存储帐户的还原完成后,可以使用 pg_restore 实用工具将数据库和其他文件还原到 PostgreSQL 灵活服务器。 使用以下命令连接到一个现有 postgresql 灵活服务器和一个现有数据库

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file - | pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> -v -

    • --account-name:目标存储帐户的名称。
    • --container-name:Blob 容器的名称。
    • --blob-name:Blob 的名称。
    • --account-key:存储帐户密钥。
    • -Fd:目录格式。
    • -j:作业数。
    • -C:首先在输出中包含用于创建数据库本身,然后重新连接到该数据库的命令。

    如果你有多个数据库要还原,请为每个数据库重新运行前面的命令。

    此外,通过使用多个并发作业 -j,可缩短在多 vCore 目标服务器上还原大型数据库的时间。 作业数可以等于或小于为目标服务器分配的 vCPU 数。

  9. 若要还原其他三个文件(角色、架构和表空间),请使用 psql 实用工具将其还原到 PostgreSQL 灵活服务器。

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file - | psql -h <hostname> -U <username> -d <db name> -f <dump directory> -v -

    为每个文件重新运行上述命令。

后续步骤

使用 Azure 备份的 PostgreSQL 灵活服务器数据库备份的支持矩阵