还原已删除的 Azure Database for PostgreSQL 服务器

适用于:Azure Database for PostgreSQL 单一服务器

重要

Azure Database for PostgreSQL - 单一服务器即将停用。 强烈建议升级到 Azure Database for PostgreSQL 灵活服务器。 有关迁移到 Azure Database for PostgreSQL 灵活服务器的详细信息,请参阅 Azure Database for PostgreSQL 单一服务器的最新动态

删除服务器后,数据库服务器备份将在服务中保留五天。 只能从服务器最初所在的 Azure 订阅访问和还原数据库备份。 如果 PostgreSQL 服务器资源被删除,请在删除后的五天内按照以下建议步骤进行恢复。 仅当服务器的备份仍可用且未从系统中删除时,建议的步骤才适用。

先决条件

若要还原已删除的 Azure Database for PostgreSQL 服务器,你需要以下:

  • 托管原始服务器的 Azure 订阅名称
  • 服务器创建位置

还原步骤

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

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

    • 订阅 = 托管已删除服务器的订阅
    • 资源类型 = Azure Database for PostgreSQL 服务器 (Microsoft.DBforPostgreSQL/servers)
    • 操作 = 删除 PostgreSQL 服务器 (Microsoft.DBforPostgreSQL/servers/delete)

    针对“删除 PostgreSQL 服务器”操作筛选出的活动日志

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

  4. 使用 REST API

  5. 以下是“请求正文”部分,粘贴以下内容来替换“已删除的服务器位置”(如 ChinaEast2 和 ChinaNorth2 等)、“submissionTimestamp”和“resourceId”。 对于“restorePointInTime”,请指定一个将“submissionTimestamp”减 15 分钟后得到的值,以确保命令不会出错。

    {
      "location": "Dropped Server Location",  
      "properties": 
      {
        "restorePointInTime": "submissionTimestamp - 15 minutes",
        "createMode": "PointInTimeRestore",
        "sourceServerId": "resourceId"
      }
    }
    

    例如,如果当前时间为 2020-11-02T23:59:59.0000000Z,建议还原点时间至少提前 15 分钟,即 2020-11-02T23:44:59.0000000Z。 请参阅下面的示例,并确保根据还原要求更改三个参数(location、restorePointInTime、sourceServerId)。

    {
      "location": "ChinaEast2",  
      "properties": 
      {
        "restorePointInTime": "2020-11-02T23:44:59.0000000Z",
        "createMode": "PointInTimeRestore",
        "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/SourceResourceGroup/providers/Microsoft.DBforPostgreSQL/servers/sourceserver"
      }
    }
    

    重要

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

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

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

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

后续步骤

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