共用方式為


AlwaysOn 可用性群組概觀 (SQL Server)

本主題介紹在 SQL Server 2014 中設定和管理一或多個可用性群組的核心 AlwaysOn 可用性群組概念。 如需可用性群組所提供的優點摘要,以及 AlwaysOn 可用性群組術語的概觀,請參閱 AlwaysOn 可用性群組 (SQL Server)

「可用性群組」 (Availability Group) 支援一組可一起容錯移轉之離散化使用者資料庫的容錯移轉環境,也就是所謂的 「可用性資料庫」(Availability Database)。 可用性群組支援一組主資料庫,以及一到八組對應的輔助資料庫。 輔助資料庫 不是 備份。 請定期繼續備份您的資料庫及其事務歷史記錄。

小提示

您可為主要資料庫建立任何類型的備份。 或者,您亦可為次要資料庫建立記錄備份和僅限複製的完整備份。 如需詳細資訊,請參閱使用中次要副本:次要副本上的備份(AlwaysOn 可用性群組)。

每個可用性資料庫集都是由 可用性副本所裝載。 有兩種類型的可用性復本存在:單一 主要複本。 其中裝載主資料庫,以及一到八個次要副本,每個副本都會裝載一組次要資料庫,並作為可用性群組的潛在故障轉移目標。 可用性群組會在可用性複本層級進行故障轉移。 可用性復本只針對一個可用性群組中的一組資料庫提供資料庫層級的備援。 故障轉移不是由資料庫問題所造成,例如資料庫因為數據檔遺失或事務歷史記錄損毀而變得可疑。

主要複本提供主要資料庫,以供用戶端讀寫連接使用。 此外,在稱為 數據同步處理的進程中,會在資料庫層級發生。 主要複本會將每個主要資料庫的交易記錄檔記錄傳送到每個次要資料庫。 每個次要複本都會快取交易記錄檔記錄 (「強行寫入」 記錄檔),然後將它們套用到對應的次要資料庫。 資料同步處理在主要資料庫和每個連接的次要資料庫之間發生,與其他資料庫無關。 因此,次要資料庫可以暫停或失敗,而不影響其他次要資料庫,主要資料庫也可以暫停或失敗,而不影響其他主要資料庫。

或者,您可以設定一個或多個次要複本以支援對次要資料庫的唯讀存取,而且您可以設定任何次要複本以允許在次要資料庫上進行備份。

部署 Always On 可用性群組需要 Windows Server 故障轉移叢集。 指定可用性群組的每個可用性復本都必須位於相同 WSFC 叢集的不同節點上。 唯一的例外狀況是在移轉至另一個 WSFC 叢集期間,可用性群組可以暫時跨兩個叢集。

對於您建立的每個可用性群組,系統會建立一個 WSFC 資源群組。 WSFC 叢集會監視此資源群組,以評估主要復本的健康情況。 不論指定的叢集節點是否裝載任何可用性複本,Always On 可用性群組的法定人數都是以 WSFC 叢集的所有節點為基礎。 相較於資料庫鏡像,AlwaysOn 可用性群組中沒有見證角色。

備註

如需 SQL Server AlwaysOn 元件與 WSFC 叢集關聯性的相關信息,請參閱 Windows Server 故障轉移叢集 (WSFC) 與 SQL Server

下圖顯示可用性群組,其中包含一個主要複本和四個次要複本。 最多支援八個次要複本,包括一個主要複本和兩個同步認可次要複本。

具有五個複本的可用性群組

可用性資料庫

若要將資料庫加入可用性群組,該資料庫必須是存在於裝載主要複本之伺服器執行個體的線上讀寫資料庫。 當您加入資料庫時,該資料庫會加入可用性群組做為主要資料庫,同時仍然可以供用戶端使用。 在新主要資料庫的備份還原到裝載次要複本的伺服器執行個體 (使用 RESTORE WITH NORECOVERY) 之前,不會存在任何對應的次要資料庫。 新的輔助資料庫處於 RESTORING 狀態,直到加入可用性群組為止。 如需詳細資訊,請參閱在 AlwaysOn 輔助資料庫上啟動數據移動(SQL Server)。

加入時,會將次要資料庫置於 ONLINE 狀態,並起始對應主要資料庫的資料同步處理。 「資料同步處理」 (Data Synchronization) 是將主要資料庫的變更重現在次要資料庫上的程序。 資料同步處理涉及主要資料庫將交易記錄檔記錄傳送到次要資料庫。

這很重要

可用性資料庫有時候在 Transact-SQL、PowerShell 與 SQL Server 管理物件 (SMO) 名稱中會稱為「資料庫複本」。 例如,「資料庫複本」一詞用於傳回可用性資料庫相關信息的 AlwaysOn 動態管理檢視名稱: sys.dm_hadr_database_replica_statessys.dm_hadr_database_replica_cluster_states。 但在《SQL Server 線上叢書》中,「複本」一詞通常是指可用性複本。 例如「主要複本」與「次要複本」一律指可用性複本。

可用性複本

每個可用性群組都會定義一組由兩個或更多容錯夥伴組成的可用性複本。 「可用性複本」 (Availability Replica) 是可用性群組的元件。 每個可用性複本都會在可用性群組中裝載一個可用性資料庫的副本。 針對給定的可用性群組,可用性複本必須由位於某個 WSFC 叢集中不同節點上的個別 SQL Server 執行個體所裝載。 每個伺服器實例都必須啟用 AlwaysOn 功能。

給定的執行個體只能承載每一個可用性群組的一個可用性複本。 但是,每一個執行個體都可以用於多個可用性群組。 給定的執行個體可以是獨立執行個體或 SQL Server 容錯移轉叢集執行個體 (FCI)。 如果您需要伺服器層級的備援性,請使用容錯叢集。

每個可用性複本都會獲指派一個初始角色,即「主要角色」 或「次要角色」 ,這個角色是由該複本的可用性資料庫所繼承。 給定複本所擔任的角色決定其負責的是讀寫資料庫還是唯讀資料庫。 其中一個複本 (也就是所謂的「主要複本」 ) 會獲指派主要角色並裝載讀寫資料庫,也就是「主要資料庫」 。 至少有一個其他複本 (也就是所謂的 「次要複本」 ) 會獲指派次要角色。 次要複本會裝載唯讀資料庫,也就是次要資料庫。

備註

當可用性複本的角色不確定(例如在故障切換期間)時,其資料庫會暫時處於 NOT SYNCHRONIZING(未同步化)狀態。 其角色會設為 RESOLVING,直到可用性複本的角色解析完成為止。 如果可用性複本解析為主要角色,其資料庫會變成主要資料庫。 如果可用性複本解析為次要角色,其資料庫會變成次要資料庫。

可用性模式

可用性模式是每個可用性複本的屬性。 可用性模式會決定主要複本是否等待認可資料庫上的交易,直到指定的次要複本將事務歷史記錄檔記錄寫入磁碟(強化記錄檔)。 AlwaysOn 可用性群組支援兩種可用性模式-異步認可模式同步認可模式

  • 非同步認可模式

    使用此可用性模式的可用性復本稱為異步提交副本。 在非同步提交模式下,主副本會提交交易,而不等候確認非同步提交的次要副本已經將紀錄寫入。 非同步提交模式會將次要資料庫的交易延遲降至最低,但允許它們相對於主要資料庫有所滯後,從而可能導致資料遺失。

  • 同步認可模式

    使用此可用性模式的可用性複本就是所謂的「同步認可複本」 。 在同步提交模式下,主要同步提交複本在提交交易前會等候次要同步提交複本確認其已完成日誌的持久化。 同步認可模式可確定,一旦給定次要資料庫與主要資料庫同步處理之後,認可的交易就會受到完整保護。 這種保護是以增加交易延遲做為代價。

如需詳細資訊,請參閱可用性模式(AlwaysOn 可用性群組)。

故障轉移類型

在主要複本與次要複本之間的工作階段中,主要角色與次要角色在一個稱為 「容錯移轉」 的過程中可能會互換。 在故障轉移期間,目標次要複本會轉換成主要角色,成為新的主要複本。 新的主要複本將其資料庫上線並作為主要資料庫,客戶端應用程式可以連接到這些資料庫。 先前的主要複本恢復可用後,會轉換為次要複本,擔任次要角色。 先前的主要資料庫就會變成次要資料庫,而且資料同步處理會繼續。

容錯移轉的形式共有三種:自動、手動和強制(可能會導致資料遺失)。 給定次要副本支援的容錯移轉形式取決於可用性模式。在同步提交模式中,其容錯移轉形式還取決於主要副本和目標次要副本上的容錯移轉模式,說明如下。

  • 同步認可模式支援兩種形式的故障轉移:計劃手動故障轉移自動故障轉移,此功能適用於目標次要複本目前與avt1同步的情況。 這些容錯移轉形式的支援取決於容錯移轉夥伴上的 「容錯移轉模式屬性」 (Failover Mode Property) 設定。 如果容錯移轉模式在主要或次要複本上設為「手動」,則只支援該次要複本的手動容錯移轉。 如果容錯移轉模式在主要和次要複本上都設為「自動」,則在該次要複本上同時支援自動和手動容錯移轉。

    • 已規劃的手動故障轉移 (無資料遺失)

      在資料庫管理員發出故障轉移命令,並使同步的次要複本轉為主要角色(具備資料保護保證),而主要複本轉為次要角色後,就會進行手動故障轉移。 手動故障移轉要求主要複本和目標次要複本都在同步提交模式下執行,而且次要複本必須已經完成同步處理。

    • 自動故障轉移(無資料遺失)

      自動容錯移轉會在發生故障時啟動,使已同步的次要複本切換為主要角色 (並確保資料保護)。 當原本的主要複本恢復可用時,它會轉換為次要角色。 自動故障轉移需要主要副本和目標次要副本都以同步提交模式運行,且故障轉移模式設定為「自動」。 此外,次要複本必須已經同步處理,達到 WSFC 群集仲裁,並符合可用性群組 彈性故障轉移原則所指定的條件。

      這很重要

      SQL Server 容錯移轉叢集執行個體 (FCI) 不支援依照可用性群組進行自動容錯移轉,因此任何由 FCI 裝載的可用性複本只能設定為手動容錯移轉。

    備註

    請注意,如果您在同步處理的次要復本上發出強制故障轉移命令,次要復本的行為會與規劃的手動故障轉移相同。

  • 在非同步提交模式下,容錯移轉的唯一形式是強制手動容錯移轉(可能會有資料遺失),通常稱為「強制容錯移轉」。 強制容錯移轉只能手動起始,因此視為一種手動容錯移轉。 強制故障切換是一個災難復原選項。 當目標次要複本未與主要復本同步時,這是唯一可能的故障轉移形式。

如需詳細資訊,請參閱故障轉移和故障轉移模式(AlwaysOn 可用性群組)。

用戶端連線

您可以透過建立可用性群組接聽程式,為指定的可用性群組的主要複本提供用戶端連線能力。 「可用性群組接聽程式」 提供一組附加至給定可用性群組的資源,用於將用戶端連線導向至適當的可用性複本。

可用性群組接聽程式與當做虛擬網路名稱 (VNN)、一個或多個虛擬 IP 位址 (VIP),以及 TCP 通訊埠編號的唯一 DNS 名稱相關聯。 如需詳細資訊,請參閱可用性群組接聽程式、用戶端連線能力及應用程式故障轉移(SQL Server)。

小提示

如果可用性群組只擁有兩個可用性複本,且未設定為允許次要複本的讀取許可權,則用戶端可以使用 資料庫鏡像連接字串連線到主要複本。 當您將資料庫從資料庫鏡像移轉至 AlwaysOn 可用性群組之後,此方法可能會暫時有用。 新增其他次要復本之前,您必須為可用性群組建立一個接聽程式,並更新您的應用程式以使用該接聽程式的網路名稱。

啟用次要副本

AlwaysOn 可用性群組支援使用中的次要複本。 目前啟用的次要功能支援包括:

  • 對次要複本執行備份作業

    次要複本支援執行日誌備份及完整資料庫、檔案或檔案群組的 僅複製 備份。 您可以設定可用性群組來指定應該執行備份之處的喜好設定。 請務必瞭解 SQL Server 不會強制執行喜好設定,因此不會影響臨機作備份。 此偏好設定的詮釋取決於您在指定可用性群組的每個資料庫中編寫背景作業時所運用的邏輯(如果有的話)。 針對單一的可用性複本,您可以指定此複本的備份執行優先權,使其相對於同一個可用性群組中的其他複本更具優先。 如需詳細資訊,請參閱作用中次要節點:在次要複本進行備份 (AlwaysOn Availability Groups)

  • 對一個或多個次要複本進行唯讀存取 (可讀取的次要複本)

    任何可用性複本在執行次要角色時可以設定為允許唯讀存取其本地資料庫,但某些操作可能無法完全支持。 此外,如果您想要防止只讀工作負載在主要複本上執行,您可以將複本設定為在主要角色下執行時只允許讀寫存取。 如需詳細資訊,請參閱活動次要副本:可讀取的次要副本(AlwaysOn 可用性群組)。

    若可用性群組目前擁有可用性群組接聽程式與一或多個可讀取次要複本,SQL Server 可以將讀取意圖連線要求路由傳送至其中一個複本 (「唯讀路由傳送」)。 如需詳細資訊,請參閱可用性群組接聽程式、用戶端連線能力及應用程式故障轉移(SQL Server)。

Session-Timeout 期間

可用性複本的屬性之一是工作階段逾時期限,它決定了與另一個可用性複本的連線在連線關閉之前可維持非活躍狀態的時間長度。 主要和次要複本會互相偵測,以表示它們仍在作用中。 在逾時期間從其他復本接收 Ping 表示連線仍在開啟,而且伺服器實例正在通訊。 接收到 Ping 時,可用性複本會重設它在該連接上的會話逾時計數器。

工作階段超時期限用於防止任一複本無限期地等待來自另一個複本的 Ping。 如果在會話逾時期限內未收到其他複本的 Ping,則該複本超時。其連接將被關閉,已逾時的複本會進入 DISCONNECTED 狀態。 即使已中斷連線的複本被設定為同步提交模式,事務也不會等待該複本重新連線並重新同步。

每個可用性複本的預設工作階段逾時期限為 10 秒。 此值是使用者可設定的,最小值為 5 秒。 通常我們建議您讓逾時期限保持在 10 秒或更久。 將這個值設定為小於 10 秒,可能會使負荷重的系統宣告假性失敗。

備註

在解析角色中,會話逾時期間不適用,因為 Ping 不會發生。

自動修復頁面

每個可用性複本都會嘗試解決阻止讀取資料頁面的特定類型錯誤,以便從本機資料庫上的損毀頁面自動復原。 如果次要副本無法讀取頁面,副本會向主要副本要求新的頁面副本。 如果主要複本無法讀取頁面,複本會將新複本的要求廣播至所有次要複本,並從第一個取得頁面以回應。 如果這個要求成功,無法讀取的頁面就會使用副本取代,這通常會解決錯誤。

如需詳細資訊,請參閱自動修復頁面(針對可用性群組和資料庫鏡像)。

相關工作

相關內容

另請參閱

可用性模式 (AlwaysOn 可用性群組)故障轉移與故障轉移模式 (AlwaysOn 可用性群組)Transact-SQL 語句的概觀 (AlwaysOn 可用性群組 - SQL Server)PowerShell Cmdlet 的概觀 (AlwaysOn 可用性群組 - SQL Server)高可用性支援的 In-Memory OLTP 資料庫AlwaysOn 可用性群組的必要條件、限制和建議 (SQL Server)可用性群組的建立與設定 (SQL Server)活動次要副本:可讀取的次要副本 (AlwaysOn 可用性群組)活動次要副本:次要副本上的備份 (AlwaysOn 可用性群組)可用性群組監聽程式、客戶端連接能力及應用程式故障轉移 (SQL Server)