還原 Azure Database for PostgreSQL Flexible 備份 (預覽)
本文說明如何還原由 Azure 備份所備份的 Azure PostgreSQL -flex 伺服器。
必要條件
從「適用於 PostgreSQL 的 Azure 資料庫」彈性伺服器備份還原之前,請確定您具有還原作業的必要權限。
備份資料會以 Microsoft 租用戶內的 Blob 形式儲存在備份保存庫中。 在還原作業期間,備份資料會從一個儲存體帳戶複製到另一個跨租用戶。 確定還原的目標儲存體帳戶已將 AllowCrossTenantReplication 屬性設定為 true。
還原 Azure PostgreSQL-Flexible 資料庫
執行下列步驟:
移至 [備份保存庫]>[備份執行個體]。 選取要還原的 PostgreSQL-Flex 伺服器,然後選取 [還原]。
使用 [選取還原點] 來選取您想要還原的時間點。 選取 [時間週期] 來變更日期範圍。
在 [還原參數] 索引標籤中,選擇目標儲存體帳戶和容器。選取 [驗證],以在最後檢閱和還原之前檢查還原參數權限。
驗證成功後,請選取 [檢閱 + 還原]。
在最後檢閱參數之後,請選取 [還原] 以還原目標儲存體帳戶中選取的 PostgreSQL-Flex 伺服器備份。
提交還原作業,並在 [備份作業]下追蹤觸發的作業。
作業完成後,備份的資料會還原至儲存體帳戶。 以下是還原後在您的儲存體帳戶中復原的一組檔案:
第一個檔案是一個標記或時間戳記檔案,為客戶提供進行備份的時間。 該檔案無法還原,但如果使用文字編輯器開啟,則應會告訴客戶進行備份時的 UTC 時間。
第二個檔案 database 是使用 pg_dump 取得的名為 tempdata2 的資料庫的個別資料庫備份。 每個資料庫都有一個格式為 – {backup_name}database{db_name}.sql 的個別檔案
第三個檔案 _roles。 具有使用 pg_dumpall 備份的角色
第四個檔案 _schemas。 使用 pg_dumpall 進行備份
第五個檔案 _tablespaces。 具有使用 pg_dumpall 備份的資料表空間
還原完成至目標記憶體帳戶之後,您可以使用 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 數目。
若要還原其他三個檔案(角色、架構和數據表空間),請使用 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 -
針對每個檔案重新執行上述命令。