在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中備份與還原

備份是任何業務持續性策略中不可或缺的一環。 這些有助於保護資料免於意外損毀或刪除。

適用於 PostgreSQL 的 Azure 資料庫會自動執行伺服器的定期備份。 然後,您可以在您指定的保留期間內執行時間點復原 (PITR)。 整體還原與恢復時間通常取決於資料大小及需進行的恢復量。

備份概觀

適用於 PostgreSQL 的 Azure 資料庫會建立資料檔案的快照集備份,並將其安全地儲存在區域備援儲存體或本機備援儲存體中,視 區域而定。 當預寫記錄檔 (WAL) 檔案準備封存時,伺服器也會備份交易記錄。 利用這些備份將伺服器還原到你設定的備份保留期內的任何時間點。

預設的備用保留期為七天,但你可以將期限延長至最多 35 天。 全部備份都會使用 AES 256 位元加密來加密儲存的待用資料。

您無法匯出這些備份檔案,也無法使用這些備份檔案在您的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器執行個體之外建立伺服器。 為此,您可以使用 PostgreSQL 工具 pg_dump 和 pg_restore/psql。

備份頻率

適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體上的備份是基於快照。 建立伺服器之後,系統會立即排程第一次快照集備份。 快照集備份目前每天會進行一次。 如果你在最後一次快照備份後沒有對伺服器上的任何資料庫做任何修改,系統會暫時暫停快照備份。 一旦你修改伺服器上的任何資料庫,系統會立即擷取新的快照以捕捉最新的變更。 第一個快照集是完整備份,連續快照集是差異備份。

交易記錄備份會根據工作負載和 WAL 檔案填滿並準備封存的時間而訂,以不同的頻率來進行。 一般來說,延遲 RPO(恢復點目標)最長可達五分鐘。

備份備援選項

適用於 PostgreSQL 的 Azure 資料庫會儲存備份的多個複本,以協助保護您的資料免於計劃內和非計劃性事件。 這些事件可能包括暫時性硬體故障、網路或電源中斷,以及自然災害。 備份備援有助於資料庫即使在發生失敗時也能滿足可用性和持久性目標。

適用於 PostgreSQL 的 Azure 資料庫提供三個選項:

  • 區域冗餘備份儲存:適用於 PostgreSQL 的 Azure 資料庫 會自動選擇支援可用性區域的選項。 當你將備份儲存在區域冗餘備份儲存時,服務會在伺服器所託管的可用區域內保留三份資料副本。 此外,服務會將資料複製到另一個可用區域以加強保護。

    此選項提供跨可用區域的備份資料可用性,並限制資料複製至同一國家或區域內,以符合資料駐留要求。 它可提供在一年中至少 99.9999999999% (12 個九) 的備份物件持久性。

  • 本機備援備份儲存體:適用於 PostgreSQL 的 Azure 資料庫 會針對尚未支援可用性區域的區域,自動選擇此選項。 當你將備份存放在本地冗餘備份儲存時,服務會在同一資料中心儲存多份備份。

    此選項有助於保護資料以避免伺服器機架和磁碟機失敗。 這提供在一年中至少 99.999999999% (11 個 9) 的備份物件持久性。

    預設情況下,服務會將具備同區高可用性(HA)或無高可用性配置的伺服器的備份儲存設定為本地冗餘。

  • 異地備援備份記憶體:您可以在伺服器建立時選擇此選項。 當你將備份儲存在地理冗餘備份儲存中,除了伺服器所存放區域內的三份資料副本外,服務會將資料複製到地理配對區域。

    發生災害時,此選項可讓您在不同區域中還原伺服器。 這也提供在一年中至少 99.99999999999999% (16 個 9) 的備份物件持久性。

    任何 Azure 配對區域中裝載的伺服器都支援異地備援。

從其他備份儲存體選項移至異地備援備份儲存體

您只能在伺服器建立期間設定異地備援儲存體進行備份。 伺服器佈建完成之後,就無法變更備份儲存體備援選項。

備份保留期

伺服器會根據你設定的保留期限來保留備份。 您可選取 7 (預設) 到 35 天的保留期間。 在伺服器建立時設定保留期限,或稍後更改。 伺服器會保留備份,即使伺服器已經停止運作。

備份保留期間會決定可從可用備份中擷取時間點還原 (PITR) 的時間範圍。 你也可以把備份保留期視為還原的恢復窗口。

備份儲存會保留所有在備份保留期內執行 PITR 所需的備份。 例如,如果你把備份保留期設為 7 天,恢復時間窗口就是最後 7 天。 在此情境下,備份儲存會保留過去 7 天內還原與恢復伺服器所需的所有資料與日誌。

備份儲存體成本

適用於 PostgreSQL 的 Azure 資料庫提供高達 100% 的布建伺服器儲存體作為備份儲存體,無需額外付費。 你需為所使用的任何額外備份儲存空間付費,並按每月每 GB 計費。

舉例來說,如果你為伺服器配置 250 Gibibytes(GiB)儲存空間,就能免費獲得 250 GiB 的備用儲存容量。 如果每日備份使用量是 25 GiB,你最多可以有 10 天的空閒備份儲存空間。 你為超過250 GiB的備用儲存消耗付費,這是根據 定價模型所定義的。

如果你設定伺服器有地理冗餘備份,備份資料也會被複製到 Azure 配對區域。 所以,你的備份大小是本地備份副本的兩倍。 計費計算方式為 ((2 x 本地備份大小)-配置儲存容量)x 價格 @ GB,每月

使用 Azure 入口網站中的 已使用的備份儲存體 計量來監視伺服器耗用的備份儲存體。 使用的備份儲存體計量代表根據為伺服器設定的備份保留期間,保留的全部資料庫備份和記錄備份所耗用的儲存空間總和。

備註

不論資料庫大小為何,伺服器上的大量交易活動會產生更多 WAL 檔案。 檔案的增加也會增加備份儲存體。

時間點復原

在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體中,執行 PITR 會在與來源伺服器相同的區域中建立新的伺服器,但您可以選擇可用性區域。 其使用來源伺服器的設定來建立,包含價格層、計算世代、虛擬核心數目、儲存體大小、備份保留期限,以及備份備援選項。

實體資料庫檔案會先從快照集備份還原到伺服器的資料位置。 系統會自動選擇並還原早於所需時間點的適當備份。 然後,復原程序會從使用 WAL 檔案開始,讓資料庫處於一致的狀態。

例如,假設備份會在每天晚上 11:00 執行。 如果還原點是 8 月 15 日上午 10:00,則會還原 8 月 14 日的每日備份。 資料庫使用 8 月 14 日晚上 11 點到 8 月 15 日上午 10 點的交易記錄檔備份,復原到 8 月 15 日上午 10 點。

若要還原資料庫伺服器,請參閱下列任何一項:

這很重要

適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體中的還原作業一律會以您提供的名稱建立新資料庫伺服器。 這不會覆寫現有的資料庫伺服器。

PITR 在如下情節中很有用:

  • 使用者不小心刪除資料、資料表或資料庫。
  • 應用程式因為缺陷,意外地用錯誤的資料覆寫了正確的資料。
  • 您想要複製伺服器用於測試、開發或資料驗證。

透過持續備份交易日誌,你可以還原到最後一次交易。 您可以選擇下列其中一個還原選項:

  • 最新還原點(現在):這是預設選項,會將伺服器還原到最新的時間點。

  • 自訂還原點:此選項可讓您在為此適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體定義的保留期間內選擇任何時間點。 根據預設,會自動選取 UTC 的最新時間。 自動選取在您需要將交易還原至最後認可的狀態以進行測試時非常有用。 您可以選擇性選擇其他天數和時間。

  • 快速還原點:此選項能在其 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器實例所定義的保留期間內,以最快時間還原伺服器。 您可以直接從備份清單中選擇時間戳記以快速還原。 此還原操作會配置伺服器,並直接還原完整的快照備份。 它不需要復原日誌,速度很快。 選擇一個大於最早還原時間點的備份時間戳記,才能成功執行還原作業。

使用最新且自訂的還原點選項進行復原所需的時間,會根據自上次備份以來處理的交易日誌數量,以及同一區域內同時復原的資料庫總數等因素而有所不同。 整體恢復時間通常從幾分鐘到幾小時不等。

如果您在虛擬網路內設定伺服器,您可以還原至相同或不同的虛擬網路。 不過,您無法還原成公開存取。 同樣地,如果您使用公用存取來設定伺服器,則無法還原至私人虛擬網路存取。

這很重要

你可以還原已刪除的伺服器。 如果你刪除伺服器,請依照 「還原已刪除伺服器 」的指引來恢復。 使用 Azure 資源鎖定來協助防止伺服器意外遭到刪除。

異地備援備份和還原

若要從 Azure 入口網站的 [計算 + 儲存體 ] 窗格啟用異地備援備份,請參閱 建立適用於 PostgreSQL 的 Azure 資料庫

這很重要

你只能在建立伺服器時設定地理冗餘備份。

使用異地備援備份設定伺服器之後,您可以將它還原到 異地配對區域。 如需詳細資訊,請參閱異地備援備份 的支持區域

當您使用異地備援備份來設定伺服器時,備份資料和交易記錄會透過儲存體複寫以非同步方式複製到配對區域。 建立伺服器之後,請至少等候一小時,再起始異地還原。 這段等待期間讓第一組備份資料能夠複製到配對區域。

稍後,交易記錄和每日備份會以非同步方式複製到配對的區域。 資料傳輸最多可能會有一小時的延遲。 因此,當您還原時,最多可以預期一小時的 RPO。 您只能還原至配對區域中可用的最後一個可用備份資料。 目前,沒有提供異地備援備份的 PITR。

復原伺服器 RTO 的估計時間(復原時間目標)取決於資料庫大小、上次資料庫備份時間,以及要處理到上次接收備份數據為止的 WAL 數量。 整體復原時間通常需要幾分鐘到數小時。

在地理還原過程中,你可以更改伺服器設定,包括虛擬網路設定,以及移除已還原伺服器中地理冗餘備份的功能。 在進行異地還原期間,不支援變更其他伺服器組態,例如計算、儲存體或定價層 (可高載、一般用途或記憶體最佳化)。

如需詳細資訊,請參閱還原到配對的區域 (異地還原)

這很重要

當主要區域關閉時,無法在個別的異地配對區域中建立異地備援伺服器,因為主要區域中無法佈建儲存體。 您必須等候主要區域啟動,才能在異地配對區域中佈建異地備援伺服器。

在主要區域關閉後,您仍然可以將來源伺服器異地還原至異地配對區域。 如需詳細資訊,請參閱還原到配對的區域 (異地還原)。 如果你需要將災難復原設定到任何區域,或主要區域不支援地理冗餘備份,請使用地理複本作為災難復原(DR)策略。

使用虛擬端點處理關鍵任務工作負載,因為它們為應用程式提供穩定的連接點,確保最小的干擾。 如果你有一個虛擬端點對應到主伺服器,請將該虛擬端點從主伺服器中移除。 移除後,將相同的虛擬端點加入新建立的伺服器。 此流程確保應用程式連線一致性並減少停機時間。 欲了解更多資訊,請參閱 使用虛擬端點以取得 PITR 期間主機名稱一致的說明。

還原和網路功能

時間點復原

如果你把來源伺服器設定為 公開存取 網路,你只能還原到公開存取。

如果你設定來源伺服器為 私有存取 虛擬網路,你可以還原到同一個虛擬網路或不同的虛擬網路。 您無法跨公用和私人存取執行 PITR。

異地復原

如果你把來源伺服器設定為 公開存取 網路,你只能還原到公開存取。 此外,還原操作完成後,你必須套用防火牆規則。

如果你設定來源伺服器為 私有存取 虛擬網路,你只能還原到不同的虛擬網路,因為虛擬網路無法跨越區域。 您無法跨公用和私人存取執行異地還原。

還原後的工作

伺服器恢復後,請執行以下任務,讓您的使用者和應用程式重新運作:

  • 如果新的伺服器取代原始伺服器,請將用戶端和用戶端應用程式重新導向至新的伺服器。 將連接字串的伺服器名稱變更為指向新的伺服器。

  • 原本伺服器上所有 參數 的值不會自動套用到新伺服器上。 確保你根據新伺服器的需求重新配置所有參數。

  • 請確定適當的伺服器層級防火牆規則、私人端點和虛擬網路規則已就緒供用戶連線使用。 這些規則不會從原始伺服器複製。

  • 視需要擴大或縮小還原伺服器的計算。

  • 確定有適當的登入和資料庫層級權限。

  • 視情況設定警示。

  • 如果你還原的來源伺服器設定為高可用性,且你想設定還原後的伺服器為高可用性,請依 照以下步驟操作。

  • 如果你還原的來源伺服器設定了讀取副本,而你想在還原的伺服器上設定讀取副本,請依照 「建立一個讀取副本」中的指示操作。

隨選備份

適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體會自動產生整個資料庫執行個體的儲存體磁碟區快照集,涵蓋所有資料庫,作為其排程備份的一部分。 此外,你也可以隨時建立隨需備份。 此選項非常適合準備潛在風險操作或在常規備份計畫外定期更新等情境。

除了排定的自動備份外,還要考慮隨需備份。 備份保留期限決定了這些備份要保存多久。 如果不需要,隨時可以刪除隨需備份。 要啟動按需備份,選擇你想備份的資料庫實例並指定備份名稱。 這些備份與自動備份一同儲存,但只有使用者能刪除按需備份。 該服務管理並保留自動化備份,以符合備份保留需求。

如需詳細資訊,請參閱 執行隨選備份

局限性

  • Burstable 伺服器運算層不支援按需備份功能。
  • SSDv2 儲存層不支援隨選備份功能。
  • 每個彈性伺服器實例最多可建立七個隨選備份。 備份保留期限決定了這些備份要保存多久。

長期保留

Azure 備份 與 適用於 PostgreSQL 的 Azure 資料庫 服務提供企業級的長期備份解決方案,適用於 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器實例,可保留最多 10 年的備份。 你可以獨立使用長期保留(LTR),或搭配 適用於 PostgreSQL 的 Azure 資料庫 提供的自動備份解決方案,後者最多可保留 35 天。 自動備份是適用於作業復原的實體備份,當您想要從最新的備份還原時,尤其適用。 長期備份有助於符合您的合規需求,粒度更細,並使用原生 pg_dump 以邏輯備份的方式建立。 除了長期保留之外,此解決方案還提供下列功能:

  • 在個別資料庫層級進行客戶控制的排程和隨需備份。
  • 集中監視所有作業和工作。
  • 備份會儲存在不同的安全性和容錯網域中。 如果來源伺服器或訂用帳戶遭入侵,備份保存庫中的備份仍安全無虞 (在 Azure 備份受控儲存體帳戶中)。
  • 使用 pg_dump 能在不同資料庫版本間還原資料時提供更大的彈性。
  • Azure 備份保存庫支援不變性和軟刪除 (預覽版) 功能,以保護資料。
  • 已啟用 CMK 的伺服器的 LTR 備份支援。

限制與考量

  • 設定後立即測試你的 LTR 備份與還原,以確保符合您的業務需求。
  • LTR 還原目前僅支援以 還原為檔案 的方式還原至儲存體帳戶,未來預計支援 還原為伺服器 功能。
  • LTR 會備份所有在彈性伺服器實例中的資料庫,且你無法選擇單一資料庫來設定 LTR。
  • LTR 備份不支援副本,但你可以在主伺服器上執行。
  • 長期保留 (LTR) 備份支援的資料庫大小上限為 1 TiB。
  • 你可以將 LTR 備份排定為每週、每月或每年執行。 目前不支援每日備份排程。
  • LTR 備份不支援包含 BYTEA 長度超過 500 MB 之資料列的資料表。
  • 在為 Microsoft Entra 使用者還原角色時,請確保已啟用 Microsoft Entra 認證,並且你以 Microsoft Entra 管理員身份登入以建立額外使用者。 嘗試以一般使用者身份建立 Entra 角色會導致錯誤。

想了解更多關於長期備份的資訊,請參閱 操作指南

常見問題

  • Azure 如何處理伺服器的備份?

    預設情況下,適用於 PostgreSQL 的 Azure 資料庫 支援自動備份整個伺服器(涵蓋所有已建立的資料庫),預設保留期為七天。 自動備份包含資料庫的每日日增快照。 (WAL) 檔案的記錄檔會持續封存到 Azure Blob 儲存體。

  • 我可以設定自動備份以長期保留數據嗎?

    否。 目前,適用於 PostgreSQL 的 Azure 資料庫最多支援 35 天的保留。 如果長期需要保留,請使用 Azure 備份 手動備份。

  • 如何手動備​​份適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體?

    你可以利用隨選備份功能手動拍攝實體快照。 你也可以使用 PostgreSQL 工具進行邏輯備份 pg_dump。 如需範例,請參閱使用傾印和還原移轉適用於 PostgreSQL 的 Azure 資料庫 (部分機器翻譯)。

  • 我的伺服器備份時段為何? 是否可自訂?

    Azure 會管理備份視窗,而且您無法加以自訂。 建立伺服器之後,會立即排程第一次完整快照集備份。 後續快照集備份是累加式備份,一天進行一次。

  • 我的備份是否加密?

    是的。 在查詢執行期間建立的所有適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體資料、備份和暫存檔案都會透過 AES (進階加密標準) 256 位加密進行加密。 儲存體加密會一律啟用,且無法停用。

  • 我可以還原單一資料庫或伺服器中的一些資料庫嗎?

    不直接支援還原單一資料庫、少數幾個資料庫或資料表。 不過,您可以將整個伺服器還原到新的伺服器,然後卸除新伺服器上不需要的數據表或資料庫。

  • 備份進行時,我的伺服器是否可用?

    是的。 備份是使用快照集的線上作業。 快照集作業只需要幾秒鐘的時間,且不會干擾生產工作負載,有助於確保伺服器的高可用性。

  • 當我設定伺服器的維護期間時,是否需要考慮備份視窗?

    否。 備份會在內部觸發為受控服務的一部分,且與維護時段無關。

  • 我的自動備份儲存在哪裡,以及如何管理其保留?

    適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體會自動建立伺服器備份,並將其儲存在:

    • 區域備援儲存體,在支援多個區域的區域中。
    • 在尚未支援多個區域的區域中,本地備援儲存體。
    • 如果您設定異地備援備份,則為配對的區域。

    你無法匯出這些備份檔案,因為它們存放在 Microsoft 管理的儲存帳號中。 你有只讀權限來還原這些檔案,但無法修改或刪除它們。 備份檔案會在保留期後自動刪除。

    您可以使用備份來僅將伺服器還原至某個時間點。 預設的備份保留期限是七天。 您可以選擇性地設定多達 35 天的資料庫備份。

  • 使用異地備援備份,備份會多常複製到配對區域?

    當你設定伺服器使用地理冗餘備份時,備份資料會儲存在地理冗餘儲存帳號中。 每日備份發生在主要伺服器上時,儲存體帳戶會將資料檔案複製到配對區域。 WAL 檔案準備封存時,會進行備份。

    備份資料會以連續的非同步方式複製到配對區域。 在接收備份資料時,您最多可以預期有一小時的延遲。

  • 我可以在遠端區域執行 PITR 嗎?

    否。 資料會復原到遠端區域的最後一個可用備份資料。

  • 在已啟用HA的伺服器中如何執行備份?

    適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體中的資料磁碟區會透過主要伺服器的受控磁碟增量快照集進行備份。 WAL 備份是從主要伺服器或待命伺服器執行。

  • 如何驗證備份是否在伺服器上執行?

    檢查備份的最佳方式是執行定期 PITR,並確保備份有效且可還原。 備份作業或檔案不會暴露給終端使用者。

  • 哪裡可以看到備份使用量?

    在 Azure 入口網站的 [監視] 下方,選取 [計量]。 在 [使用的備份儲存體] 中,您可以監視備份儲存體總計。

  • 如果我刪除伺服器,我的備份會發生什麼事?

    如果您刪除伺服器,全部屬於該伺服器的備份也會一併刪除,且無法復原。 若要協助在部署後避免伺服器資源遭到意外刪除或非預期的變更,管理員可以使用管理鎖定。

  • 已停止伺服器的備份如何保留?

    不會為已停止伺服器執行任何新的備份。 服務會在停止伺服器時保留所有舊備份(在保留期間內),直到伺服器重新啟動為止。 之後,使用中伺服器的備份保留會受到其保留期間所控管。

  • 我的備份服務如何收費與計費?

    適用於 PostgreSQL 的 Azure 資料庫提供高達 100% 的布建伺服器儲存體作為備份儲存體,無需額外付費。 你需為所使用的任何額外備份儲存體付費,並依定價模型的定義按每月每 GB 計費。

    您選取的備份保留期間和備份備援選項,以及伺服器上的交易活動,會直接影響備份儲存體和計費總計。

  • 我該如何為停止服務的伺服器收費?

    當您的伺服器執行個體停止時,不會執行任何新的備份。 您需為已佈建儲存體和備份儲存體付費(包括儲存在您指定保留期限內的備份)。

    免費備份儲存體僅限於您佈建的資料庫大小。 多餘的備份資料費用是根據備份價格來支付的。

  • 我已使用區域備援高可用性來設定伺服器。 您是否要進行兩次備份,我將會支付兩次費用?

    否。 無論伺服器是 HA 還是非 HA,服務只會維護一組備份副本。 你只付一次錢。

  • 如何還原我的伺服器?

    Azure 支援所有伺服器的 PITR。 你可以透過 Azure 入口網站、Azure CLI 和 API 還原到最新的還原點或自訂還原點。

    要利用像 pg_dump這樣的工具從手動備份中恢復伺服器,你可以先建立一個適用於 PostgreSQL 的 Azure 資料庫靈活的伺服器實例,然後再用 pg_restore 將資料庫還原到伺服器上。

  • 我可以還原至相同區域內的另一個可用性區域嗎?

    是的。 如果區域支援多個可用性區域,則備份會儲存在區域備援儲存體帳戶上,以便還原至另一個區域。

  • PITR 需要多久時間? 為何還原如此費時?

    快照的資料還原作業不取決於資料的大小。 但套用記錄(要重新執行的交易活動)的復原程序所需時間可能會有所不同,具體取決於所要求日期和時間之前的備份,以及需要處理的記錄數量。 此條件適用於在同一區域內還原資料及將資料還原至不同區域。

  • 如果我還原已啟用HA的伺服器,還原伺服器是否會自動設定高可用性?

    否。 伺服器將還原為單一執行個體適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。 還原完成後,您可以選擇性地設定具有高可用性的伺服器。

  • 我已在虛擬網路內設定我的伺服器。 我可以還原到另一個虛擬網路嗎?

    是的。 在還原時,請選擇要予以還原的不同虛擬網路。

  • 我是否可以將公用存取伺服器還原至虛擬網路,反之亦然?

    否。 適用於 PostgreSQL 的 Azure 資料庫目前不支援跨公用和私人存取還原伺服器。

  • 如何追蹤我的還原作業?

    目前無法追蹤還原作業。 您可以監視活動記錄檔,藉以查看作業是否正在進行或完成。