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

适用于:Azure Database for PostgreSQL 灵活服务器

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

先决条件

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

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

还原步骤

  1. 浏览到 Azure 门户。 依次选择“Monitor”服务和“活动日志”。

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

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

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

      Screenshot showing activity log filtered for delete PostgreSQL server operation.

  3. 依次选择“删除 PostgreSQL 服务器”事件和“JSON”选项卡。复制 JSON 输出中的 resourceIdsubmissionTimestamp 属性。 resourceId 格式如下:/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/ResourceGroup-name/providers/Microsoft.DBforPostgreSQL/flexibleServers/deletedserver

  4. 使用创建服务器 REST API

    重要

    运行之前,请使用此 API 版本 2023-03-01-preview 而不是默认值,以便按如下步骤所述启用此 API 函数。

  5. 转到“请求正文”部分,并粘贴以下内容来替换“已删除的服务器位置”(例如中国北部 3 等)、“submissionTimestamp”和“resourceId”。 对于“pointInTimeUTC”,请指定一个将“submissionTimestamp”加 5 分钟后得到的值,以确保命令不会出错。

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

    例如,如果提交时间戳为 2023-06-15T15:58:02Z,我们建议在还原时间点 2023-06-15T16:05:02Z 上加至少 5 分钟,并确保根据还原要求更改了三个参数(location、pointInTimeUTC、sourceServerResourceId)。

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

    重要

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

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

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

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

还原已删除的已启用 VNET 的服务器

{
  "location": "ChinaNorth3",  
  "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 版本,则可能会遇到还原失败或超时问题。 请使用 2023-03-01-preview API 来避免此类问题。
  2. 为了避免潜在的 DNS 错误,建议在启动还原过程时使用不同的名称,因为同名可能会导致某些还原操作失败。

后续步骤

  • 如果你尝试在五天内还原服务器,但在准确地执行了前面所述的步骤后仍看到错误,请提交支持事件来获取帮助。 如果你尝试在五天后还原已删除的服务器,则预计会出现错误,因为找不到备份文件。 对于这种情况,请不要开具支持票证。 如果备份已从系统中删除,则支持团队无法提供任何帮助。
  • 为了防止意外删除服务器,强烈建议使用资源锁