還原適用於 PostgreSQL 的 Azure 資料庫備份
本文會說明如何將資料庫還原到以 Azure 備份加以備份的 Azure PostgreSQL 伺服器。
如果服務在目標伺服器上具有適當的權限集,您可以將資料庫還原至位於相同保存庫內不同/相同訂用帳戶的任何 Azure PostgreSQL 伺服器。
還原 Azure PostgreSQL 資料庫
前往 [備份保存庫] - >[備份執行個體]。 選取資料庫,然後按一下 [還原]。
也可以從備份中心瀏覽至此頁面。
在 [選取還原點] 頁面上,在可供所選備份執行個體使用的所有完整備份清單中,選取復原點。 根據預設,系統會選取最新的復原點。
如果還原點位於封存層中,您必須在還原之前先將復原點解除凍結。 請提供以下解除凍結所需的其他參數:
- 解除凍結優先順序:預設為標準。
- 解除凍結持續時間:解除凍結最長持續時間為 30 天,解除凍結最短持續時間則為 10 天。 預設值為 15 天。 復原點在此期間內會儲存在備份資料存放區中。
在 [還原參數] 頁面上,選取下列其中一種還原類型:[還原為資料庫] 或 [還原為檔案]。
還原為資料庫
目標伺服器可以與來源伺服器相同。 但不支援覆寫原始資料庫。 您可以從所有訂閱中的伺服器選擇,但需與保存庫位於相同區域。
在 [選取金鑰保存庫和秘密] 下拉式選單中,選取用於儲存認證資訊的保存庫,以連線到目標伺服器。
選取 [檢閱 + 還原] 來觸發驗證,以檢查服務是否具有目標伺服器的還原權限。 這些權限必須以手動方式授與。
重要
透過金鑰保存庫選擇其認證的資料庫使用者,將會擁有所還原資料庫的所有權限,而且將會覆寫任何現有的 DB 使用者界限。 例如:如果備份的資料庫具有任何 DB 使用者特定權限/條件約束,例如 DB 使用者 A 可以存取少數資料表,而 DB 使用者 B 可以存取其他幾個資料表,則還原之後將不會保留這類權限。 如果您想要保留那些權限,請使用還原作為檔案,並搭配相關參數使用 pg_restore 命令。
還原為檔案:將備份檔案傾印到目標儲存體帳戶 (Blob)。
您可以從所有訂閱項目中的儲存體帳戶選擇,但需位在與保存庫相同的區域中。
- 在 [選取目標容器] 下拉式選單中,選取其中一個針對所選儲存體帳戶篩選出的容器。
- 選取 [檢閱 + 還原] 來觸發驗證,以檢查備份服務是否具有目標儲存體帳戶的還原權限。
注意
適用於 PostgreSQL 的 Azure 資料庫的封存功能支援,仍屬於功能有限的公開預覽版本。
還原目標儲存體帳戶的權限
使用 Azure 入口網站,將儲存體帳戶容器的存取權限指派給備份保存庫 MSI。
或者使用 Azure CLI az role assignment 建立命令,將細微權限提供給您要還原至其中的特定容器。
az role assignment create --assignee $VaultMSI_AppId --role "Storage Blob Data Contributor" --scope $id
以保存庫 MSI 的應用程式識別碼與範圍參數取代受託人參數,以參考您的特定容器。 若要取得保存庫 MSI 的應用程式識別碼,請選取 [應用程式類型] 下的 [所有應用程式]。 搜尋保存庫名稱,然後複製應用程式識別碼。
跨區域還原資料庫
作為其中一個還原選項,跨區域還原 (CRR) 可讓您在次要地區 (也就是 Azure 配對區域) 中還原適用於 PostgreSQL 的 Azure 資料庫伺服器。
考量
檢視次要地區中的備份執行個體
如果已啟用 CRR,您可以在次要地區中檢視備份執行個體。
從 Azure 入口網站,移至 [備份保存庫] > [備份執行個體]。
選取篩選條件作為執行個體區域 == 次要地區。
注意
只會列出支援 CRR 功能的備份管理類型。 目前僅支援將主要區域資料還原至 PostgreSQL 伺服器的次要地區。
在次要區域中還原
次要地區還原體驗類似於主要區域還原。
當您在 [還原設定] 窗格中設定詳細資料以設定還原時,系統會提示您只提供次要地區參數。 次要地區中應該有保存庫,而 PostgreSQL 伺服器應註冊至次要地區中的保存庫。
執行下列步驟:
選取 [備份執行個體名稱] 以檢視詳細資料。
選取 [還原到次要地區]。
選取還原點、區域和資源群組。
選取還原。
注意
- 在觸發還原後的資料傳輸階段中,無法取消還原工作。
- 跨區域執行還原作業所需的角色/存取層級為訂閱項目的「備份操作員」角色,以及來源和目標虛擬機器的「參與者 (寫入)」存取權。 若要檢視備份工作,至少需要訂閱項目的「備份讀取者」權限。
- 次要區域中可供使用的備份資料 RPO 為 12 個小時。 因此,當您開啟 CRR 時,次要區域的 RPO 是 12 小時 + 記錄頻率持續時間 (可設定為至少 15 分鐘)。