共用方式為


還原已卸除的 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器實例

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

卸除伺服器時,適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器備份會在服務中保留五天。 您只能從伺服器原本所在的 Azure 訂用帳戶存取及還原資料庫備份。 您可以遵循下列建議步驟,在伺服器刪除后的五天內復原已卸除 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器資源。 只有在伺服器備份仍然可用且無法從系統中刪除時,建議的步驟才能運作。 還原已刪除的伺服器通常會成功,但並不一定會保證,因為還原已刪除的伺服器取決於其他幾個因素。

必要條件

若要還原已卸除 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,您需要

  • 裝載原始伺服器的 Azure 訂用帳戶名稱
  • 建立伺服器的位置
  • 使用 2023-03-01-preview api-version 版本

還原的步驟

  1. 瀏覽至 Azure 入口網站。 選取 [ 監視 服務],然後選取 [ 活動記錄]。

  2. 在「活動記錄」中,選取 [新增篩選條件] (如下所示),並設定下列篩選條件

    • 訂用帳戶 = 裝載已刪除伺服器的訂用帳戶

    • 作業 = 刪除 PostgreSQL Server (Microsoft.DBforPostgreSQL/flexibleservers/delete)

      此螢幕快照顯示已篩選要刪除PostgreSQL伺服器作業的活動記錄檔。

  3. 選取 [刪除 PostgreSQL 伺服器] 事件,然後選取 [JSON] 索引標籤。複製 JSON 輸出中的 resourceIdsubmissionTimestamp 屬性。 resourceId 的格式如下:/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/ResourceGroup-name/providers/Microsoft.DBforPostgreSQL/flexibleServers/deletedserver

  4. 流覽至 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器 [建立伺服器 REST API] 頁面,然後選取綠色醒目提示的 [試用] 索引標籤。 使用您的 Azure 帳戶進行登入。

    重要

    執行 之前,請使用此 api-version 2023-03-01-preview ,而不是預設值,以如下列步驟所述啟用此 API 函式。

  5. 根據在上一個步驟 3 中擷取的 resourceId 屬性 JSON 值,提供 resourceGroupName、serverName(目標伺服器名稱)、subscriptionId 屬性。 api-version 屬性會預先填入,而且可以依現成保留,如下圖所示。

    顯示 REST API 試用頁面的螢幕快照。

  6. 移至 [ 要求本文 ] 區段,並貼上下列取代 “Dropd server Location”(例如 CentralUS、EastUS 等)、“submissionTimestamp” 和 “resourceId”。 針對 「pointInTimeUTC」,請指定 「submissionTimestamp」 的值加上 5 分鐘 ,以確保命令不會發生錯誤。

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

    例如,如果提交時間戳是 2023-06-15T15:58:02Z,建議您根據還原需求新增至少 5 分鐘的時間點以還原時間點 2023-06-15T16:05:02Z,並確定您變更三個參數(location,pointInTimeUTC,sourceServerResourceId)。

    {
      "location": "EastUS",  
      "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"
      }
    }
    

    重要

    卸除伺服器之後,有五天的時間限制。 在五天後,由於找不到備份檔案,預期會發生錯誤。

  7. 如果您看到回應碼 201 或 202,表示已成功提交還原要求。

    建立伺服器可能需要時間,取決於在原始伺服器上佈建的資料庫大小和計算資源。 可以篩選下列項目,從活動記錄中監視還原狀態:

    • 訂用帳戶 = 您的訂用帳戶
    • 資源類型 = 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器 (Microsoft.DBforPostgreSQL/flexibleServers)
    • 作業 = 更新 PostgreSQL 伺服器建立

還原已卸除的 VNET 已啟用伺服器

{
  "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 版本,可能會遇到還原失敗或逾時。 請使用 2023-03-01-preview API 來避免這類問題。
  2. 若要避免潛在的 DNS 錯誤,建議您在起始還原程式時使用不同的名稱,因為某些還原作業可能會以相同名稱失敗。

下一步

  • 如果您嘗試在五天內還原伺服器,並在正確地遵循稍早討論的步驟之後收到錯誤,請開啟支援事件以尋求協助。 如果您嘗試在五天后還原已卸除的伺服器,預期會發生錯誤,因為找不到備份檔。 在此案例中,請不要開啟支援票證。 如果從系統刪除備份,支援小組就無法提供任何協助。
  • 若要防止意外刪除伺服器,強烈建議您使用資源鎖定