共用方式為


「適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器」的商務持續性概觀

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中的商務持續性代表在面臨中斷時,可讓您的企業持續運作的機制、原則與程序,特別是其運算基礎結構。 在大部分情況下,適用於 PostgreSQL 的 Azure 資料庫彈性伺服器會處理雲端環境中可能發生的干擾事件,並且讓您的應用程式與商務程序持續執行。 然而,有一些無法自動處理的事件,例如:

  • 使用者不小心刪除或更新了資料表中的資料列。
  • 地震造成停電,並暫時停用可用性地區或區域。
  • 修正 Bug 或安全性問題所需的資料庫修補。

適用於 PostgreSQL 的 Azure 資料庫彈性伺服器提供的功能可保護資料,並在計劃性與非計劃性停機事件期間,降低任務關鍵性資料庫的停機時間。 建置在會提供強固復原能力與可用性的 Azure 基礎結構之上,適用於 PostgreSQL 的 Azure 資料庫彈性伺服器具有商務持續性功能,以提供其他錯誤保護、解決復原時間需求,以及降低資料外洩暴露風險。 建構應用程式時,應該考慮停機時間容錯 (復原時間目標 (RTO)) 與資料外洩暴露風險 (復原點目標 (RPO))。 例如,相較於測試資料庫,業務關鍵資料庫需要更嚴格的運作時間。

下表說明適用於 PostgreSQL 的 Azure 資料庫彈性伺服器所提供的功能。

功能 說明 考量
自動備份 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器會自動執行資料庫檔案的每日備份,並持續備份交易記錄。 備份至少可保留 7 天,最多則可保留達 35天。 您可以將資料庫伺服器還原到備份保留期間內的任何時間點。 RTO 與還原的資料大小及用於執行記錄復原的時間有關。 可能需要幾分鐘到最多 12 小時。 如需詳細資料,請參閱概念 - 備份與還原 備份資料會保留在區域內。
區域備援高可用性 部署適用於 PostgreSQL 的 Azure 資料庫彈性伺服器時,可以使用區域備援高可用性 (HA) 設定,此設定會將主要伺服器與待命伺服器部署至某個區域內的兩個不同可用性區域中。 此 HA 設定可防止資料庫發生區域層級失敗,並且可協助降低計劃性與非計劃性停機事件發生期間的應用程式停機時間。 主要伺服器中的資料以同步模式複寫到待命複本。 在主要伺服器發生任何中斷的事件中,伺服器會自動容錯移轉至待命複本。 在大部分情況下,RTO 必須小於 120 秒。 RPO 應該會是零 (不會遺失任何資料)。 如需詳細資訊,請參閱概念 - 高可用性 支援一般用途與記憶體最佳化的計算層。 僅適用於有多個區域 (zone) 的區域 (region)。
相同區域高可用性 部署適用於 PostgreSQL 的 Azure 資料庫彈性伺服器時,可以使用相同區域高可用性 (HA) 設定,此設定會將主要伺服器與待命伺服器部署至某個區域內的相同可用性區域中。 此 HA 設定可防止資料庫發生節點層級的失敗,並且可協助降低計劃性與非計劃性停機事件發生期間的應用程式停機時間。 主要伺服器中的資料以同步模式複寫到待命複本。 在主要伺服器發生任何中斷的事件中,伺服器會自動容錯移轉至待命複本。 在大部分情況下,RTO 必須小於 120 秒。 RPO 應該會是零 (不會遺失任何資料)。 如需詳細資訊,請參閱概念 - 高可用性 支援一般用途與記憶體最佳化的計算層。
進階受控磁碟 資料庫檔案會儲存在高度耐用且可靠的進階受控儲存體中。 這能提供資料備援能力,會有三個複本儲存在具有自動資料復原功能的可用性區域內。 如需詳細資訊,請參閱受控磁碟文件 資料會儲存於可用性區域中。
區域備援備份 若該區域支援可用性區域,適用於 PostgreSQL 的 Azure 資料庫彈性伺服器備份會自動且安全地儲存於區域內的區域備援儲存體中。 在伺服器佈建所在的區域層級失敗期間,若您的伺服器未設定區域備援,還是可以使用不同區域中的最新還原點來還原資料庫。 如需詳細資訊,請參閱概念 - 備份與還原 僅適用於提供多個區域 (zone) 的區域 (region)。
異地備援備份 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器備份會複製到遠端區域。 這可協助在主要伺服器區域關閉事件中進行災害復原。 此功能目前已在選取的區域啟用。 其需要較長的 RTO 與較高的 RPO,視要還原的資料大小及要執行的復原數量而定。
讀取複本 您可以部署跨區域讀取複本,以保護資料庫免於區域層級的失敗。 讀取複本會使用 PostgreSQL 的實體複寫技術以非同步方式更新,而且可能會延遲主要複本。 如需詳細資訊,請參閱概念 - 讀取複本 支援一般用途與記憶體最佳化的計算層。

下表比較一般工作負載案例中的 RTO 和 RPO:

功能 可高載 一般用途 記憶體最佳化
從備份進行時間點還原 保留期間內的任何還原點
RTO - 不定
RPO < 5 分鐘
保留期間內的任何還原點
RTO - 不定
RPO < 5 分鐘
保留期間內的任何還原點
RTO - 不定
RPO < 5 分鐘
從異地複寫備份進行異地還原 RTO - 不定
RPO < 1 小時
RTO - 不定
RPO < 1 小時
RTO - 不定
RPO < 1 小時
讀取複本 RTO - 數分鐘*
RPO < 5 分鐘*
RTO - 數分鐘*
RPO < 5 分鐘*
RTO - 數分鐘*
RPO < 5 分鐘*

* 在某些情況下,RTO 和 RPO 可能更高,取決於網站之間的延遲、要傳輸的資料量,以及最重要的是主要資料庫寫入工作負載。

計劃性停機事件

以下是一些計劃性維護案例。 這些事件通常會產生最多幾分鐘的停機時間,而且不會遺失資料。

案例 處理
計算調整 (由使用者初始化) 在計算調整作業期間,允許完成使用中的檢查點、清空用戶端連線、取消任何未認可的交易、中斷連結儲存體,然後關閉該作業。 具有相同資料庫伺服器名稱的全新適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體會使用已調整的計算設定來佈建。 然後,儲存體會連結至新的伺服器,並啟動資料庫,以在接受用戶端連線之前,先視需要執行復原。
擴大儲存體 (由使用者初始化) 初始化擴大的儲存體作業時,允許完成使用中的檢查點、清空用戶端連線、取消任何未認可的交易。 之後,伺服器會關閉。 該儲存體會調整為所需的大小,然後連結至新的伺服器。 會在接受用戶端連線之前,先視需要執行復原。 請注意,不支援縮小儲存體大小。
新的軟體部署 (由 Azure 初始化) 服務在進行計劃性維護時會自動推出新功能或 Bug 修正程式,而且您可以排程這些活動的發生時間。 如需詳細資訊,請查看您的入口網站
次要版本升級 (由 Azure 初始化) 適用於 PostgreSQL 的 Azure 資料庫會自動將資料庫伺服器修補為 Azure 所判斷的次要版本。 這是服務計劃性維護的一部分。 資料庫伺服器會自動以新的次要版本重新啟動。 如需詳細資訊,請參閱 XML 文件。 您也可以查看您的入口網站

當適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體設定為 高可用性時,服務會先在待命伺服器上執行調整與維護作業。 如需詳細資訊,請參閱概念 - 高可用性

非計劃性停機風險降低措施

可能會因為未預期的中斷 (例如基礎硬體故障、網路問題與軟體 Bug) 而發生非計劃性停機。 若設定高可用性的資料庫伺服器意外關閉,則會啟動待命複本,而且用戶端可以繼續其作業。 若未設定高可用性 (HA),則在重新啟動嘗試失敗時,會自動佈建新的資料庫伺服器。 雖然無法避免非計劃性停機,但適用於 PostgreSQL 的 Azure 資料庫彈性伺服器可不經人為介入就自動執行復原作業,協助減輕停機問題。

雖然我們持續努力提供高可用性,但有時候適用於 PostgreSQL 的 Azure 資料庫彈性伺服器會產生中斷而導致資料庫無法使用,因而影響您的應用程式。 當服務監視偵測的問題會造成廣泛連線錯誤、失敗或效能問題時,服務會自動宣告中斷,以通知您。

服務中斷

如果適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中斷,您可以在下列位置看到與中斷相關的更多詳細資料:

  • Azure 入口網站橫幅:如果識別到您的訂用帳戶會受到影響,Azure 入口網站通知中的服務問題將會中斷通知。

 顯示 Azure 入口網站中通知的螢幕擷取畫面。

  • 當您從 [說明 + 支援] 或 [支援 + 疑難排解]:從 [說明 + 支援] 或 [支援 + 疑難排解] 建立支援票證時,將會有任何影響您資源問題的相關資訊。 選取 [檢視中斷詳細資料] 以取得詳細資訊和影響摘要。 新增支援要求頁面中也會有警示。

 顯示 Azure 入口網站中說明支援通知的螢幕擷取畫面。

  • 服務說明:Azure 入口網站中的服務健康狀態頁面包含全域 Azure 資料中心狀態的相關資訊。 在 Azure 入口網站的搜尋列中搜尋「服務健康狀態」,然後在 [作用中事件] 類別中檢視服務問題。 您也可以在 [說明] 功能表下任何資源的 [資源健康狀態] 頁面中檢視個別資源的健全狀況。 服務健康狀態頁面的範例螢幕擷取畫面,其中包含東南亞作用中服務問題的相關資訊。

 顯示服務健康狀態入口網站中服務中斷的螢幕擷取畫面。

  • 電子郵件通知:如果您已設定警示,當服務中斷影響您的訂用帳戶和資源時,會收到電子郵件通知。 電子郵件會從「azure-noreply@microsoft.com」送達。 電子郵件本文開頭是「活動記錄警示...由 Azure 訂用帳戶的服務問題觸發...」。 如需有關服務健康狀態警示的詳細資訊,請參閱使用 Azure 入口網站在 Azure 服務通知上接收活動記錄警示

重要

顧名思義,PostgreSQL 中的暫存表格空間會用於暫存物件,以及其他內部資料庫作業,例如排序。 因此,我們不建議您在暫存表格空間中建立使用者結構描述物件,因為我們不保證伺服器重新啟動、HA 容錯移轉等之後這類物件的持久性。

非計劃性停機:失敗案例與服務復原

以下是一些非計劃性失敗案例與其復原程序。

案例 復原程序
[未設定區域備援 HA 的伺服器]
復原程序
[已設定區域備援 HA 的伺服器]
資料庫伺服器失敗 若資料庫伺服器關閉,則 Azure 將會嘗試重新啟動資料庫伺服器。 若該作業失敗,則資料庫伺服器將會在另一個實體節點上重新啟動。

復原時間 (RTO) 取決於各種因素,包括發生錯誤時的活動,例如大型交易,以及在資料庫伺服器啟動程序期間執行的復原量。

使用 PostgreSQL 資料庫的應用程式必須以能偵測,並以重試中斷的連線和失敗交易的方式來建置。
若偵測到資料庫伺服器失敗,伺服器就會容錯移轉至待命伺服器,進而減少停機時間。 如需詳細資訊,請參閱 HA 概念頁面。 RTO 必須是 60-120 秒,且零資料遺失。
儲存體失敗 應用程式不會看到任何儲存體相關問題的影響,例如:磁碟失敗或實體區塊損毀。 因為資料儲存於三個複本中,所以資料複本會由存留的儲存體提供。 損毀的資料區塊會自動修復,並自動建立新的資料複本。 針對任何罕見且無法復原的錯誤 (例如整個儲存體無法存取),適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體會容錯移轉至待命複本,以減少停機時間。 如需詳細資訊,請參閱 HA 概念頁面
邏輯/使用者錯誤 若要從使用者錯誤 (例如:意外卸除的資料表或錯誤更新的資料) 復原,您必須執行時間點復原 (PITR)。 執行還原作業時,您可以指定自訂還原點,也就是發生錯誤之前的時間。

若您只想要還原資料庫子集或特定資料表,而不是資料庫伺服器中的所有資料庫,則可以在新執行個體中還原資料庫伺服器、透過 pg_dump 匯出資料表,然後使用 pg_restore 將這些資料表還原到您的資料庫。
這些使用者錯誤不會受到高可用性的保護,因為所有變更都會同步複寫到待命複本。 您必須執行時間點還原,才能從此類錯誤中復原。
可用性區域失敗 若要從區域層級失敗復原,您可以使用備份執行時間點還原,並選擇具有最新時間的自訂還原點來還原最新資料。 全新適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體會部署在另一個非受影響的區域中。 還原所花費的時間取決於先前的備份,以及要復原的交易記錄量。 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器會在 60-120 秒內自動容錯移轉至待命伺服器,且零資料遺失。 如需詳細資訊,請參閱 HA 概念頁面
區域失敗 若您的伺服器已設定異地備援備份,則可以在配對的區域中執行異地還原。 新伺服器將會佈建並復原到最後一個複製到此區域的資料。

您也可以使用跨區域讀取複本。 發生區域失敗時,您可以將讀取複本升階為獨立的可讀寫伺服器,以執行災害復原作業。 RPO 預期最多只有 5 分鐘 (可能會遺失資料),但發生伺服器區域失敗時例外,這時 RPO 會接近複寫延遲。
相同的程序。

從區域失敗復原之後設定資料庫

重要

可以還原已刪除的伺服器。 如果您刪除伺服器,可以按照我們的指引還原已捨棄的 [適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器] 來進行復原。 使用 Azure 資源鎖定來協助防止伺服器意外遭到刪除。

下一步