如何使用 Azure CLI 在 Azure Database for PostgreSQL 中备份和还原服务器

自动进行备份

Azure Database for PostgreSQL 服务器定期进行备份以便启用还原功能。 通过此功能,用户可将服务器及其所有数据库还原到新服务器上的某个较早时间点。

先决条件

若要完成本操作指南,需要:

Important

本操作方法指南要求使用 Azure CLI 版本 2.0 或更高版本。 若要确认版本,请在 Azure CLI 命令提示符下输入 az --version。 若要安装或升级,请参阅安装 Azure CLI 2.0

添加扩展

使用以下命令添加更新的 Azure Database for PostgreSQL 管理扩展:

az extension add --name rdbms

检查是否已安装正确的扩展版本。

az extension list

返回的 JSON 应包括以下内容:

{
    "extensionType": "whl",
    "name": "rdbms",
    "version": "0.0.5"
}

如果未返回版本 0.0.5,请运行以下命令来更新扩展:

az extension update --name rdbms

设置备份配置

创建服务器时,可以选择将服务器配置为创建本地冗余备份还是创建异地冗余备份。

Note

创建服务器后,无法在异地冗余或本地冗余之间切换服务器冗余类型。

通过 az postgres server create 命令创建服务器时,--geo-redundant-backup 参数描述备份冗余选项。 如果为 Enabled,则创建异地冗余备份。 如果为 Disabled,则创建本地冗余备份。

备份保留期由参数 --backup-retention-days 设置。

有关在创建过程中设置这些值的详细信息,请参阅 Azure Database for PostgreSQL 服务器 CLI 快速入门

可以如下所述更改服务器的备份保留期:

az postgres server update --name mydemoserver --resource-group myresourcegroup --backup-retention-days 10

前面的示例将 mydemoserver 的备份保留期更改为 10 天。

备份保留期控制可以往回检索多长时间的时间点还原,因为它基于可用备份。 下一部分中进一步介绍了时间点还原。

服务器时间点还原

可以将服务器还原到以前的某个时间点。 将还原的数据复制到新服务器,并且现有服务器将保持不变。 例如,如果某个表在今天中午意外删除,可以还原到就在中午之前的时间。 然后可以从服务器的已还原副本中检索缺少的表和数据。

若要还原服务器,请使用 Azure CLI az postgres server restore 命令。

运行还原命令

若要还原服务器,请在 Azure CLI 命令提示符下输入以下命令:

az postgres server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time 2018-03-13T13:59:00Z --source-server mydemoserver

az postgres server restore 命令需要以下参数:

设置 建议的值 说明
resource-group myresourcegroup 源服务器所在的资源组。
name mydemoserver-restored 通过还原命令创建的新服务器的名称。
restore-point-in-time 2018-03-13T13:59:00Z 选择要还原到的时间点。 此日期和时间必须在源服务器的备份保留期限内。 使用 ISO8601 日期和时间格式。 例如,可以使用自己的本地时区,如 2018-03-13T05:59:00-08:00。 也可以使用 UTC Zulu 格式,如 2018-03-13T13:59:00Z
source-server mydemoserver 要从其还原的源服务器的名称或 ID。

将服务器还原到以前的某个时间点时,会创建新服务器。 原始服务器及其从指定时间点开始创建的数据库会复制到新服务器。

还原的服务器的位置值和定价层值与原始服务器保持相同。

还原过程完成后,找到新服务器,验证数据是否已按预期还原。

后续步骤