在適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器中備份與還原

適用于:適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器

適用於 PostgreSQL 的 Azure 資料庫會自動建立伺服器備份,並將其儲存在使用者設定的本地備援或異地備援儲存體中。 備份可以用來將伺服器還原至某個時間點。 備份和還原可保護資料免於意外損毀或刪除,是商務持續性策略中不可或缺的一部分。

備份

適用於 PostgreSQL 的 Azure 資料庫會取得資料檔案和交易記錄的備份。 根據支援的儲存體大小上限,我們會採用完整和差異備份 (4 TB 上限的儲存體伺服器) 或快照集備份 (最多 16 TB 上限的儲存體伺服器)。 在您設定的備份保留期限內,這些備份可讓您將伺服器還原至任何時間點。 預設的備份保留期限是七天。 可選擇設定的期限最多為 35 天。 所有備份皆會使用 AES 256 位元加密進行加密。

您無法匯出這些備份檔案。 備份僅可用於適用於 PostgreSQL 的 Azure 資料庫中的還原作業。 您可以使用 pg_dump 來複製資料庫。

備份頻率

具有最多 4 TB 儲存體的伺服器

對於支援最多 4 TB 儲存體的伺服器,每週會執行一次完整備份。 一天進行兩次差異備份。 交易記錄備份會每五分鐘執行一次。

具有最多 16 TB 儲存體的伺服器

Azure 區域子集中,所有新佈建的伺服器最多可以支援 16 TB 儲存體。 這些大型儲存體伺服器上的備份均以快照集為基礎。 建立伺服器之後,會立即排程第一次完整快照集備份。 第一個完整快照集備份會保留為伺服器的基底備份。 後續的快照集備份只是差異備份。 差異快照集備份不會依固定排程執行。 一天內會執行多個差異快照集備份,但只會保留 3 個備份。 交易記錄備份會每五分鐘執行一次。

注意

針對使用最多 4TB 儲存體設定所設定的複本伺服器,會執行自動備份。

備份保留

備份會根據伺服器上的備份保留期間設定加以保留。 您可以選取 7 到 35 天的保留期間。 預設保留期間為 7 天。 您可以在伺服器建立期間,或者稍後使用 Azure 入口網站Azure CLI 來更新備份設定,以設定保留期間。

備份保留期限會控制可往回多少時間來擷取時間點還原,因為這會以可用的備份為基礎。 從還原的觀點來看,備份保留期間也可視為復原時段。 備份保留期間內執行時間點還原所需的所有備份都會保留在備份儲存體中。 例如,如果備份保留期間設定為 7 天,則會將復原時段視為過去 7 天。 在此案例中,系統會保留過去 7 天內還原伺服器所需的所有備份。 當備份保留時段為七天時:

  • 最多支援 4 TB 儲存體的伺服器最多將保留 2 個完整資料庫備份、所有差異備份,以及自最早完整資料庫備份以來所執行的交易記錄備份。
  • 最多 16 TB 儲存體的伺服器將保留完整的資料庫快照集,過去 8 天內的所有差異快照集和交易記錄備份。

備份備援選項

適用於 PostgreSQL 的 Azure 資料庫可讓您在一般用途和記憶體最佳化層中,彈性地選擇本地備援或異地備援備份儲存體。 當備份儲存在異地備援備份儲存體中時,會將額外的備份複本複寫至 配對的區域。 這會在發生區域性災害時,提供更好的保護和還原伺服器的能力。 「基本」層只會提供本地備援的備份儲存體。

重要

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

備份儲存體成本

適用於 PostgreSQL 的 Azure 資料庫最多提供 100% 的布建伺服器儲存體作為備份儲存體,不需額外費用。 使用任何其他備份儲存體會以每個月 GB 數計費。 例如,如果您已布建具有 250 GB 儲存體的伺服器,則您有 250 GB 的額外儲存體可供伺服器備份使用,不需額外費用。 若備份所耗用的儲存體超過 250 GB,則會根據定價模式收費。

您可以使用 Azure 入口網站所提供 Azure 監視器中「使用的備份儲存體」計量來監視伺服器所使用的備份儲存體。 「使用的備份儲存體」計量代表根據針對伺服器所設定的備份保留期間而保留的所有完整資料庫備份、差異備份和記錄備份所耗用的儲存體總和。 備份的頻率由服務所管理,且已在先前予以說明。 不論資料庫大小總計,伺服器上頻繁的交易活動可能會導致備份儲存體使用量增加。 針對異地備援儲存體,備份儲存體使用量是本地備援儲存體的兩倍。

控制備份儲存體成本的主要方式是設定適當的備份保留期間,然後選擇正確的備份備援選項以符合您所需的復原目標。 您可以從 7 到 35 天的範圍選取保留期間。 一般用途和記憶體最佳化伺服器可以選擇異地備援儲存體供備份使用。

還原

在適用於 PostgreSQL 的 Azure 資料庫中,還原執行作業會從原始伺服器的備份中建立新的伺服器。

有兩種類型的還原可使用:

  • 時間點還原可搭配任一備份備援選項使用,並在您原始伺服器所在區域中建立新的伺服器。
  • 異地還原只能您將伺服器設定為使用異地備援儲存體時使用,這可讓您將伺服器還原至不同的區域。

預估的復原時間取決於數個因素,包括資料庫大小、交易記錄大小、網路頻寬,以及在相同區域中同時進行復原的資料庫總數。 復原時間會根據上次資料備份和需要執行的復原量而有所不同。 其通常不到 12 小時。

注意

如果您的來源 PostgreSQL 伺服器使用客戶自控金鑰來加密,請參閱此文件以取得其他考量。

注意

如果要還原已刪除的 PostgreSQL 伺服器,請遵循此處所述的程序。

時間點還原

與備份備援選項無關,您可以在備份保留期限內地任何時間點執行還原。 新伺服器會建立在與原始伺服器相同的 Azure 區域中。 其使用原始伺服器的組態來建立,包含定價層、計算世代、虛擬核心數目、儲存體大小、備份保留期限,以及備份備援選項。

時間點還原適用於多種案例。 例如,使用者不小心刪除資料、卸除重要的資料表或資料庫,或是因為應用程式缺失,使應用程式不小心用不正確的資料覆寫正確資料。

您可能需要等候下一個交易記錄備份執行時,才能還原至前五分鐘內的時間點。

如果要還原已卸除的資料表,

  1. 使用時間點方法還原來源伺服器。
  2. 使用 pg_dump 從還原的伺服器傾印資料表。
  3. 重新命名原始伺服器上的來源資料表。
  4. 在原始伺服器上使用 psql 命令列匯入資料表。
  5. 您可以選擇刪除還原的伺服器。

注意

建議不要為同一部伺服器同時建立多個還原。

異地復原

如果您已將伺服器設定為使用異地備援備份,您可以將伺服器還原到另一個可使用服務的 Azure 區域中。 最多支援 4 TB 儲存體的伺服器可以還原至異地配對區域,或還原至最多支援 16 TB 儲存體的任何區域。 如果伺服器最多支援 16 TB 的儲存體,也可以在支援 16 TB 伺服器的任何區域中還原異地備份。 如需支援的區域清單,請檢閱適用於 PostgreSQL 的 Azure 資料庫定價層

當您的伺服器因為裝載伺服器區域中的事件而無法使用時,異地還原就是預設的復原選項。 如果區域中的大規模意外導致您無法使用資料庫應用程式,則您可以從異地備援備份,將伺服器還原到任何其他區域中的伺服器。 在建立備份及將它複寫至不同區域之間會有延遲。 此延遲可能最長達一小時,因此當發生災害時,最多可能會遺失最長達一小時的資料。

在異地還原期間,可以進行變更的伺服器設定包括計算世代、vCore、備份保留期間及備份備援選項。 不支援變更定價層 (基本、一般用途或記憶體最佳化) 或儲存體大小。

注意

如果來源伺服器使用基礎結構雙重加密,則還原伺服器時有所限制,包括可用的區域。 如需更多詳細資料,請參閱基礎結構雙重加密

執行還原之後的工作

從其中任何一種復原機制還原之後,您應執行下列工作,讓您的使用者和應用程式回復正常執行狀態︰

  • 若要存取還原的伺服器,由於其名稱與原始伺服器不同,請在連接字串中將 servername 變更為還原的伺服器名稱,並將使用者名稱變更為 username@new-restored-server-name
  • 如果新伺服器用來取代原始伺服器,則系統會將用戶端和用戶端應用程式重新導向新伺服器。
  • 確定有適當的伺服器層級防火牆和 VNet 規則供使用者連線。 不會從原始伺服器複製這些規則。
  • 確定有適當的登入和資料庫層級權限
  • 依適當情況設定警示

後續步驟