共用方式為


什麼是適用於 PostgreSQL 的 Azure 資料庫備份?

Azure 備份和 Azure 資料庫服務已結合在一起,為適用於 PostgreSQL 的 Azure 資料庫伺服器建置企業級備份解決方案,以保留最多 10 年的備份。 除了長期保留,解決方案也提供下列功能:

  • 在個別資料庫層級進行客戶控制的排程和隨需備份。
  • 對任何適用於 PostgreSQL 的 Azure 資料庫伺服器或任何類型的 Blob 儲存體進行資料庫層級的還原。
  • 集中監視所有作業和工作。
  • 將備份儲存在個別的安全性和容錯網域中。 如果來源伺服器或訂用帳戶遭到入侵,備份會保留在 Azure 備份保存庫中 (在 Azure 備份受控記憶體帳戶中)。
  • 使用 pg_dump 以獲得更高的還原靈活性。 您可以跨資料庫版本還原。

除了 Azure PostgreSQL 中的原生備份解決方案之外,您也可以單獨使用此解決方案,以提供最多 35 天的保留期。 原生方案適用於作業復原,例如,當您想要從最新的備份復原時。 Azure 備份解決方案可協助您符合合規性需求,並提供更細微且彈性的備份/還原功能。

PostgreSQL 單一伺服器的保存庫備份變更

適用於 PostgreSQL 的 Azure 資料庫 單一伺服器 部署選項已於 2025 年 3 月 28 日淘汰。 在那一天,Azure 備份針對 PostgreSQL 單一伺服器實施了變更。 深入了解淘汰內容

Azure 備份提供符合合規性和提高復原能力的解決方案,包括保護庫備份以及長期保存還原點。 2025 年 3 月 28 日,下列變更生效:

  • 新的 PostgreSQL 單一伺服器工作負載不允許設定備份。
  • 所有排程的備份作業都會永久停止。
  • 無法為此工作負載建立新的備份原則或修改現有的備份原則。

淘汰日當天,PostgreSQL 單一伺服器資料庫的排程備份作業就會永久停止。 您無法建立任何新的還原點。

不過,您現有的 PostgreSQL 單一伺服器資料庫備份會根據備份原則保留。 只有在保留期限到期之後,才會刪除還原點。 若要無限期保留還原點,或在保留期間到期前刪除還原點,請參閱 Azure Business Continuity Center 控制台

計費中的變更

自 2025 年 3 月 31 日起,您不會再向您收取保護 PostgreSQL 單一伺服器資料庫的受保護實例 (PI) 費用。 但儲存備份的費用仍適用。 若要避免記憶體費用,請從 Azure 商務持續性中心刪除所有還原點。

附註

Azure 備份會保留最後一個還原點,即使其保留期限到期。 這項功能可確保您能夠存取最後一個還原點以供日後使用。 您只能手動刪除最後一個還原點。 如果您想要刪除最後一個還原點並避免儲存費用, 請停止資料庫保護

還原中的變更

您可以使用「以檔案形式還原」來還原 PostgreSQL 單一伺服器資料庫。 然後,您必須從還原的檔案手動 建立新的 PostgreSQL 彈性伺服器

附註

自 2025 年 3 月 28 日起,不支援 [ 還原為資料庫] 選項,但仍支援 還原為檔案

備份程序

  1. 身為備份管理員,您可以指定您想要備份的 PostgreSQL 資料庫。 您也可以指定 Azure Key Vault 的詳細數據,以儲存連線到指定資料庫所需的認證。 資料庫管理員會在 Key Vault 中安全地植入這些認證。

  2. Azure 備份服務會驗證其具有 適當許可權,以 向指定的「適用於 PostgreSQL 的 Azure 資料庫」伺服器進行驗證,以及備份其資料庫。

  3. Azure 備份會啟動背景工作角色 (虛擬機器),其中已安裝備份擴充功能,以與受保護的「適用於 PostgreSQL 的 Azure 資料庫」伺服器進行通訊。 此擴充功能是由一個協調器和一個 PostgreSQL 外掛程式所組成。 協調器會觸發各種作業的工作流程,例如備份和還原。 外掛程式會管理實際的數據流。

  4. 在預定的時間,協調器會指示外掛程式使用 pg_dump (custom) 從 Azure PostgreSQL 資料庫伺服器開始傳送備份資料。

  5. 外掛程式會將數據直接傳送至 Azure 備份受控記憶體帳戶(由 Azure 備份保存庫遮罩),而不需要暫存位置。 數據會透過Microsoft管理的金鑰來加密。 Azure 備份服務會將數據儲存在記憶體帳戶中。

顯示備份程序的圖表。

使用適用於 PostgreSQL 的 Azure 資料庫伺服器進行 Azure 備份驗證

Azure 備份遵循來自 Azure 的嚴格安全性指導方針。 不會假定要備份的資源上具有相關權限。 用戶必須明確授與這些許可權。

Key Vault 型驗證模型

Azure 備份服務必須在進行每個備份時連線到適用於 PostgreSQL 的 Azure 資料庫伺服器。 雖然對應至資料庫的使用者名稱和密碼(或連接字串)是用來建立此連線,但這些認證不會與 Azure 備份一起儲存。 相反地,資料庫管理員必須在 Azure Key Vault 中安全地植入這些認證作為秘密。

工作負載管理員負責管理和輪替憑證。 Azure 備份會從密鑰保存庫呼叫最新的秘密詳細數據,以取得備份。

顯示工作負載或資料庫流程的圖表。

PostgreSQL 資料庫備份所需的許可權

  1. 將下列存取權限授與 Azure 備份儲存庫的受控識別:

    • 適用於 PostgreSQL 的 Azure 資料庫伺服器上的讀者權限。
    • Key Vault 上的 Key Vault 祕密使用者存取權 (祕密上的取得列出權限)。
  2. 為下列項目設定網路視距存取權:

    • 適用於 PostgreSQL 的 Azure 資料庫伺服器:將 [允許存取 Azure 服務 ] 設定為 [是]。
    • Key Vault:將 [允許信任Microsoft服務 ] 設定為 [是]。
  3. 在資料庫上設定資料庫用戶的備份許可權。

附註

如果您身為備份管理員,且對預定的資源擁有寫入權限,則可以在 設定備份 流程中,只需一鍵即可授與這些許可權。 如果您沒有所需的許可權(涉及多個角色時),請使用 Azure Resource Manager 範本。

PostgreSQL 資料庫還原所需的許可權

還原的許可權與備份所需的許可權類似。 您必須 手動授予目標 Azure Database for PostgreSQL 伺服器和對應金鑰庫的許可權。 不同於設定備份流程,目前無法使用以內嵌方式授與這些權限的體驗。

請確定資料庫使用者 (對應至儲存在金鑰儲存庫中的認證) 在資料庫上具有下列還原權限:

  • 指派 ALTER USERCREATEDB 使用者名稱。
  • 將角色 azure_pg_admin 指派給資料庫使用者。

Microsoft Entra ID 型驗證模型

先前的驗證模型完全以Microsoft Entra標識符為基礎。 Key Vault 型驗證模型(如先前所述)現在可作為簡化設定程式的替代選項。

若要取得自動化腳本和相關指示,以使用 Microsoft Entra ID 型驗證模型, 請下載本檔。 它授予適用於 Azure Database for PostgreSQL 伺服器的適當權限集,以進行備份和還原。

附註

所有新設定的保護只會使用新的 Key Vault 驗證模型進行。 不過,所有透過 Microsoft Entra ID 型驗證設定保護的現有備份實例都會繼續存在,並定期進行備份。 若要還原這些備份,您必須遵循以 Microsoft Entra ID 為基礎的驗證方式。

在適用於 PostgreSQL 的 Azure 資料庫伺服器和金鑰保存庫上手動授與存取權的步驟

若要授與 Azure 備份所需的所有存取許可權,請使用下列步驟。

適用於 PostgreSQL 的 Azure 資料庫伺服器的存取權限

  1. 針對適用於 PostgreSQL 的 Azure 資料庫伺服器上的受控識別,設定 Azure 備份保存庫的讀者存取權。

    此螢幕快照顯示在適用於 PostgreSQL 的 Azure 資料庫伺服器上設定 Azure 備份保存庫 M S I Reader 存取權的選項。

  2. [允許存取 Azure 服務 ] 設定為 [ ],在適用於 PostgreSQL 的 Azure 資料庫伺服器上設定網络視線存取。

    此螢幕快照顯示在適用於 PostgreSQL 的 Azure 資料庫伺服器上設定網路視線存取的選項。

金鑰保存庫的訪問許可權

  1. 為金鑰保存庫上的受控識別設定 Azure 備份保存庫的 Key Vault 祕密使用者存取權 (祕密的取得列出權限)。 若要指派權限,您可以使用角色指派或存取原則。 您不需要使用這兩個選項來新增權限,因為這樣做沒有幫助。

    • 若要使用 Azure 角色型存取控制 (Azure RBAC) 授權:

      1. [存取原則] 中,將 [許可權模型 ] 設定為 Azure 角色型訪問控制

        顯示提供 Key Vault 秘密使用者存取權選項的螢幕快照。

      2. 訪問控制 (IAM)中,為 Azure 備份保存庫的 Key Vault 秘密使用者 授與密鑰保存庫上受控識別的存取權。 該角色的持有人將能夠解讀秘密。

        此螢幕擷取畫面顯示了一個選項,用於授予 Azure 備份保存庫的 MSI 金鑰保存庫秘密使用者對金鑰保存庫的存取權限。

      如需詳細資訊,請參閱 使用 Azure 角色型訪問控制提供 Key Vault 金鑰、憑證和秘密的存取權。

    • 若要使用存取原則:

      1. [存取原則] 中,將 [許可權模型 ] 設定為 [保存庫存取原則]。
      2. 設定祕密的取得列出權限。

      此螢幕快照顯示使用存取原則授與許可權的選項。

      如需詳細資訊,請參閱指派Key Vault存取原則(舊版)。

  2. 藉由將 [允許受信任的 Microsoft 服務略過此防火牆?] 設定為 [是],對金鑰保存庫設定網路視距存取權。

    顯示選取選項以允許受信任的 Microsoft 服務在金鑰保存庫上有網路視距存取權的螢幕擷取畫面。

資料庫使用者的備份許可權

pgAdmin 工具中執行下列查詢。 用資料庫使用者識別碼取代 username

DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$

附註

如果您已設定備份的資料庫失敗, UserErrorMissingDBPermissions請參閱 此疑難解答指南 ,以取得解決問題的協助。

使用 pgAdmin 工具

如果您還沒有 pgAdmin 工具,請下載此工具。 您可以透過此工具連線到適用於 PostgreSQL 的 Azure 資料庫伺服器。 此外,您也可以將資料庫和新的使用者新增至此伺服器。

此螢幕快照顯示使用 pgAdmin 管理工具連接至適用於 PostgreSQL 的 Azure 資料庫伺服器的流程。

使用您選擇的名稱建立新的伺服器。 輸入主機名/位址。 這與 Azure 入口網站中 Azure PostgreSQL 資源檢視中顯示的 伺服器名稱 值相同。

此螢幕快照顯示使用 P G 管理工具建立新伺服器的選項。

顯示 Azure 入口網站中 Azure PostgreSQL 資源檢視的螢幕快照,包括伺服器名稱。

請確定您將目前的用戶端標識符位址新增至防火牆規則,以便連線通過。

顯示將目前用戶端識別碼位址新增至防火牆規則的鏈接螢幕快照。

您可以將新資料庫和資料庫使用者新增至伺服器。 針對資料庫用戶,選取 [登入/群組角色 ] 以新增角色。 確定 可以登入嗎? 已設定為 [是]。

顯示將新資料庫和資料庫使用者新增至伺服器之功能表選取項目的螢幕快照。

顯示為資料庫使用者新增登入或群組角色之功能表選取項目的螢幕快照。

此螢幕快照顯示允許將登入設定為 [是] 的切換。