共用方式為


還原 Azure Database for PostgreSQL Flexible 備份 (預覽)

本文說明如何還原由 Azure 備份所備份的 Azure PostgreSQL -flex 伺服器。

必要條件

  1. 從「適用於 PostgreSQL 的 Azure 資料庫」彈性伺服器備份還原之前,請確定您具有還原作業的必要權限

  2. 備份資料會以 Microsoft 租用戶內的 Blob 形式儲存在備份保存庫中。 在還原作業期間,備份資料會從一個儲存體帳戶複製到另一個跨租用戶。 確定還原的目標儲存體帳戶已將 AllowCrossTenantReplication 屬性設定為 true

還原 Azure PostgreSQL-Flexible 資料庫

執行下列步驟:

  1. 移至 [備份保存庫]>[備份執行個體]。 選取要還原的 PostgreSQL-Flex 伺服器,然後選取 [還原]

    顯示如何還原資料庫的螢幕擷取畫面。

    或者,請移至 [備份中心],然後選取 [還原]

  2. 使用 [選取還原點] 來選取您想要還原的時間點。 選取 [時間週期] 來變更日期範圍。

    顯示選取復原點之程序的螢幕擷取畫面。

  3. 在 [還原參數] 索引標籤中,選擇目標儲存體帳戶和容器。選取 [驗證],以在最後檢閱和還原之前檢查還原參數權限。

  4. 驗證成功後,請選取 [檢閱 + 還原]顯示還原參數程序的螢幕擷取畫面。

  5. 在最後檢閱參數之後,請選取 [還原] 以還原目標儲存體帳戶中選取的 PostgreSQL-Flex 伺服器備份。 顯示檢閱程序頁面的螢幕擷取畫面。

  6. 提交還原作業,並在 [備份作業]下追蹤觸發的作業。 顯示驗證程序頁面的螢幕擷取畫面。

  7. 作業完成後,備份的資料會還原至儲存體帳戶。 以下是還原後在您的儲存體帳戶中復原的一組檔案:

    • 第一個檔案是一個標記或時間戳記檔案,為客戶提供進行備份的時間。 該檔案無法還原,但如果使用文字編輯器開啟,則應會告訴客戶進行備份時的 UTC 時間。

    • 第二個檔案 database 是使用 pg_dump 取得的名為 tempdata2 的資料庫的個別資料庫備份。 每個資料庫都有一個格式為 – {backup_name}database{db_name}.sql 的個別檔案

    • 第三個檔案 _roles。 具有使用 pg_dumpall 備份的角色

    • 第四個檔案 _schemas。 使用 pg_dumpall 進行備份

    • 第五個檔案 _tablespaces。 具有使用 pg_dumpall 備份的資料表空間

  8. 還原完成至目標記憶體帳戶之後,您可以使用 pg_restore 公用程式,將資料庫和其他檔案還原至 PostgreSQL 彈性伺服器。 使用下列命令連線到現有的 postgresql 彈性伺服器和現有的資料庫

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file - | pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> -v -

    • --account-name:目標記憶體帳戶的名稱。
    • --container-name:Blob 容器的名稱。
    • --blob-name:Blob 的名稱。
    • --account-key:儲存器帳戶金鑰。
    • -Fd:目錄格式。
    • -j:作業數目。
    • -C:使用建立資料庫本身的命令開始輸出,然後重新連線至其中。

    如果您有一個以上的資料庫要還原,請針對每個資料庫重新執行先前的命令。

    同時,藉由使用多個並行作業 -j,您可以減少在多個 vCore 目標伺服器上還原大型資料庫所需的時間。 作業數目可以等於或小於為目標伺服器配置的 vCPU 數目。

  9. 若要還原其他三個檔案(角色、架構和數據表空間),請使用 psql 公用程式將它們還原至 PostgreSQL 彈性伺服器。

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file - | psql -h <hostname> -U <username> -d <db name> -f <dump directory> -v -

    針對每個檔案重新執行上述命令。

下一步

使用 Azure 備份進行 PostgreSQL-Flex 資料庫備份的支援矩陣