通过


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

恢复被删除的 Azure Database for PostgreSQL

删除服务器后,Azure Database for PostgreSQL 灵活服务器备份会在服务中保留五天。 只能从最初驻留服务器的 Azure 订阅访问和还原数据库备份。 可以遵循以下建议的步骤,在删除服务器后 5 天内恢复已删除的 Azure Database for PostgreSQL 灵活服务器资源。 仅当服务器的备份仍然可用且未从系统中删除时,建议的步骤才有效。 虽然还原已删除的服务器通常成功,但并不总是保证还原已删除的服务器,因为还原已删除的服务器取决于其他几个因素。

先决条件

若要还原已删除的 Azure Database for PostgreSQL 灵活服务器实例,需要

  • 托管原始服务器的 Azure 订阅名称
  • 创建服务器的位置
  • 使用 2024-08-01 版本api-version

还原步骤

  1. 浏览到 Azure 门户。 选择 “监视 服务”,然后选择“ 活动日志”。

  2. 在活动日志中,选择“ 添加筛选器 ”,如下所示,并设置以下筛选器

  • 订阅 = 托管已删除服务器的订阅

  • 操作 = 删除 PostgreSQL 服务器 (Microsoft.DBforPostgreSQL/flexibleservers/delete)

    筛选用于删除 PostgreSQL 服务器操作的活动日志的屏幕截图。

  1. 选择 “删除 PostgreSQL 服务器” 事件,然后选择 “JSON”选项卡。复制 JSON 输出中的 resourceIdsubmissionTimestamp 属性。 resourceId 采用以下格式: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/ResourceGroup-name/providers/Microsoft.DBforPostgreSQL/flexibleServers/deletedserver

  2. 浏览到 Azure Database for PostgreSQL 灵活服务器 “创建服务器 REST API 页 ”,然后选择绿色突出显示的“ 试用” 选项卡。 使用 Azure 帐户登录。

重要

在运行之前,请使用此 api-version 2024-08-01 ,而不是默认值,以便按如下步骤中所述按预期启用此 API 函数。

  1. 根据在上一步骤 3 中捕获的 resourceId 属性的 JSON 值,提供 resourceGroupNameserverName(目标服务器名称)、subscriptionId 属性。 api-version 属性已预填充,可以保持不变。

  2. 转到 请求正文 部分,粘贴以下内容,并替换“已删除的服务器位置”(例如 CentralUS、EastUS 等)、“submissionTimestamp”和“resourceId”。 对于“pointInTimeUTC”,请指定值“submissionTimestamp”。

  {
    "location": "Dropped Server Location",
    "properties":
    {
      "pointInTimeUTC": "submissionTimestamp",
      "createMode": "ReviveDropped",
      "sourceServerResourceId": "resourceId"
    }
  }

确保根据还原要求更改三个参数(location,pointInTimeUTC,sourceServerResourceId)。

{
  "location": "WestUS",
  "properties": {
    "pointInTimeUTC": "2023-06-15T06:08:02Z",
    "createMode": "ReviveDropped",
    "sourceServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/SourceResourceGroup-Name/providers/Microsoft.DBforPostgreSQL/flexibleServers/SourceServer-Name"
  }
}

重要

删除服务器后有 5 天的时间限制。 五天后,由于找不到备份文件,因此预期会出现错误。

  1. 如果看到响应代码 201 或 202,则已成功提交还原请求。

服务器创建可能需要时间,具体取决于在原始服务器上预配的数据库大小和计算资源。 在活动日志中通过筛选可以监视还原状态

  • 订阅 = 你的订阅
  • 资源类型 = Azure Database for PostgreSQL 灵活服务器(Microsoft.DBforPostgreSQL/flexibleServers)
  • 操作 = 更新创建 PostgreSQL 服务器

还原已删除的已启用虚拟网络的服务器

恢复已删除的虚拟网络启用的服务器时,需要指定其他网络属性,比如委托子网的资源 ID 和专用 DNS 区域的 Azure 资源管理器资源 ID。 按照以下步骤使用必要的网络配置还原服务器。

{
  "location": "EastUS",
  "properties": {
    "createMode": "ReviveDropped",
    "sourceServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/SourceResourceGroup-Name/providers/Microsoft.DBforPostgreSQL/flexibleServers/SourceServer-Name",
    "pointInTimeUTC": "2023-06-20T20:50:59.4078005+00:00",
    "Network": {
      "DelegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/SourceResourceGroup-Name/providers/Microsoft.Network/virtualNetworks/VirtualNetwork-Name/subnets/Subnet-Name",
      "PrivateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/SourceResourceGroup-Name/providers/Microsoft.Network/privateDnsZones/privatednszonename"
    }
  }
}

常见错误

  1. 如果使用不正确的 API 版本,可能会遇到还原失败或超时。 使用 2024-08-01 API 避免此类问题。

  2. 为了避免潜在的 DNS 错误,建议在启动还原过程时使用不同的名称,因为某些还原操作在使用相同名称的情况下可能会失败。