共用方式為


關於適用於 PostgreSQL 的 Azure 資料庫備份

Azure 備份與 Azure 資料庫服務共同為適用於 PostgreSQL 的 Azure 資料庫伺服器建立企業級備份解決方案,可保留備份長達 10 年。 除了長期保留,解決方案也提供下列功能:

  • 在個別資料庫層級進行客戶控制的排程和隨選備份。
  • 資料庫層級還原至任何 PostgreSQL 伺服器或任何 Blob 儲存體。
  • 集中監視所有作業和工作。
  • 儲存在個別安全性和容錯網域中的備份。 如果來源伺服器或訂用帳戶在任何情況下遭受入侵,備份在備份保存庫中 (在 Azure 備份受控儲存體帳戶中) 仍是安全狀態。
  • 使用 pg_dump 可讓您在還原時有更大的彈性。 這可協助您跨資料庫版本還原

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

注意

適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器位於淘汰路徑上,預計將於 2025 年 3 月 28 日淘汰。

如果您目前有裝載實際執行伺服器之適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器服務,那麼,我們很高興通知您,您可以將適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器移轉到適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。

適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器是一項完全受控的生產就緒>資料庫服務,可透過 Azure 備份,透過企業級備份解決方案,針對資料庫管理功能和組態設定進行更細微的控制和彈性。 如需適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的詳細資訊,請參閱適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。

備份程序

  1. 身為備份管理員,您可以指定想要備份的 Azure PostgreSQL 資料庫。 此外,您也可以指定 Azure Key Vault 的詳細資料,該保存庫儲存連線至指定資料庫所需的認證。 這些認證會由 Azure Key Vault 中的資料庫管理員安全地植入。
  2. 然後,備份服務會驗證它是否具有適當權限以驗證指定的 PostgreSQL 伺服器,以及備份其資料庫。
  3. Azure 備份會啟動背景工作角色 (VM),其中已安裝備份擴充功能,以與受保護的 PostgreSQL 伺服器進行通訊。 此擴充功能是由一個協調器和一個 PostgreSQL 外掛程式所組成。 協調器會觸發各種作業的工作流程,例如備份和還原,且外掛程式會管理實際的資料流程。
  4. 在排定的時間,協調器會與外掛程式進行通訊,然後使用 pg_dump (custom) 開始從 PostgreSQL Server 串流備份資料。
  5. 外掛程式會將資料直接傳送至 Azure 備份受控儲存體帳戶 (由備份保存庫遮罩),而不需要暫存位置。 資料會使用 Microsoft 管理的金鑰進行加密,並由儲存體帳戶中的 Azure 備份服務進行儲存。

顯示備份程序的圖表。

向 PostgreSQL 伺服器驗證 Azure 備份

Azure 備份遵循 Azure 規定的嚴格安全性指導方針;不會假設要備份的資源權限,且需要由使用者明確指定。

以金鑰保存庫為基礎的驗證模型

Azure 備份服務執行每個備份時,必須連線至 Azure PostgreSQL。 當對應至資料庫的「使用者名稱 + 密碼」(或連接字串) 用於建立此連線,這些登入資訊不會透過 Azure 備份儲存。 相反地,這些登入資訊必須由 Azure Key Vault 中的資料庫管理員安全地植入做為祕密。 工作負載管理員負責管理和輪用認證;Azure 備份會從金鑰保存庫呼叫最新的祕密詳細資料,以進行備份。

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

Azure PostgreSQL 資料庫備份所需的權限集合

  1. 將下列存取權限授與備份保存庫的 MSI:

    • Azure PostgreSQL 伺服器上的「讀取者」存取權。
    • Azure Key Vault 上的「Key Vault 祕密使用者」(或 get、list 祕密) 存取權。
  2. 下列項目的網路視距存取權:

    • Azure PostgreSQL 伺服器 – 允許存取 Azure 服務旗標設為 [是]
    • 金鑰保存庫 – 允許信任的 Microsoft 服務旗標設為 [是]
  3. 資料庫使用者在資料庫上的備份權限

注意

如果您 (備份管理員) 對於目標資源具備「寫入」存取權,您可以在設定備份流程中,透過按一下來授與這些權限,或如果您沒有所需的權限 (涉及多個角色時),可以使用 ARM 範本。

Azure PostgreSQL 資料庫還原所需的權限集合

還原的權限類似備份所需的權限,您需要在目標 PostgreSQL 伺服器及其對應的金鑰保存庫上授與權限。 不同於設定備份流程,目前無法使用以內嵌方式授與這些權限的體驗。 因此,您需要在 Postgres 伺服器和對應的金鑰保存庫上手動授與存取權

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

  • ALTER USER username CREATEDB;
  • 將角色 azure_pg_admin 指派給資料庫使用者。

Microsoft Entra ID 型驗證模型

先前已推出不同的驗證模型,該模型完全以 Microsoft Entra ID 為基礎。 不過,我們現在提供全新以金鑰保存庫為基礎的驗證模型 (如上所述) 做為替代選項,其簡化設定流程。

下載此文件以取得自動化指令碼和相關指示,以使用此驗證模型。 它會將適當的權限集合授與 Azure PostgreSQL 伺服器,以供備份和還原使用。

注意

所有新的設定保護都只會透過新的金鑰保存庫驗證模型進行。 不過,使用 Microsoft Entra ID 型的驗證所設定的所有現有備份執行個體將會繼續存在,並且會定期執行備份。 若要還原這些備份,您必須遵循 Microsoft Entra ID 型驗證。

以手動方式授與存取權給 Azure PostgreSQL 伺服器與金鑰保存庫

若要授與 Azure 備份所需的所有存取權限,請參閱下列各節:

Azure PostgreSQL 伺服器上的存取權限

  1. 設定備份保存庫的 MSI 對 Azure PostgreSQL 伺服器的讀者存取權。

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

  2. Azure PostgreSQL 伺服器上的網路視距存取權:將 [允許存取 Azure 服務] 旗標設為 [是]。

    顯示在 Azure PostgreSQL 伺服器上設定網路視線存取選項的螢幕快照。

Azure Key Vault 上的存取權限 (與 PostgreSQL 伺服器相關聯)

  1. 在 Azure Key Vault 上,設定備份保存庫的 MSI Key Vault 祕密使用者 (或 getlist 祕密) 存取權。 若要指派權限,您可以使用角色指派或存取原則。 不需要使用兩個選項來新增權限,因為沒有幫助。

    • 使用 Azure 角色型存取控制 (Azure RBAC) 授權 (也就是權限模型設定為 Azure 角色型存取控制):

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

    此螢幕快照顯示授與備份保存庫 M S I 金鑰保存庫 金鑰保存庫使用者存取權的選項。

  2. 金鑰保存庫上的網路視距存取權:將 [允許信任的 Microsoft 服務] 旗標設為 [是]

    顯示將 [允許受信任的 Microsoft 服務 旗標設定為 [是] 的螢幕快照,以取得密鑰保存庫上的網路視線存取。

資料庫使用者在資料庫上的備份權限

PG 管理工具中執行下列查詢 (將「使用者名稱」 取代為資料庫使用者識別碼):

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 而失敗,請參閱此疑難排解指南,以取得解決問題的協助。

使用 PG 管理工具

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

此螢幕快照顯示使用 P G 管理工具連線到 Azure PostgreSQL 伺服器的程式。

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

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

這個螢幕快照顯示輸入主機名或位址名稱與伺服器名稱相同的選項。

確定您將「目前的用戶端識別碼位址」新增至防火牆規則,以供連線使用。

此螢幕快照顯示將目前用戶端標識元位址新增至防火牆規則的程式。

您可以將新資料庫和資料庫使用者新增至伺服器。 對於資料庫使用者,新增新的登入/群組角色。 確定 [是否可登入?] 設定為 [是]

此螢幕快照顯示將新資料庫和資料庫使用者新增至伺服器的程式。

此螢幕快照顯示為資料庫使用者新增登入或群組角色的程式。

顯示 [可登入] 選項驗證的螢幕快照已設定為 [是]。

下一步

適用於 PostgreSQL 的 Azure 資料庫備份