啟用和停用 AlwaysOn 可用性群組 (SQL Server)

啟用 AlwaysOn 可用性群組 是伺服器執行個體使用可用性群組的必要條件。 您必須在將要裝載一個或多個可用性群組之可用性複本的每個 SQL Server 執行個體上啟用 AlwaysOn 可用性群組 功能,才能建立及設定任何可用性群組。

重要事項重要事項

如果您刪除然後重新建立 WSFC 叢集,則必須在原始 WSFC 叢集上裝載可用性複本的每個 SQL Server 執行個體,停用然後重新啟用 AlwaysOn 可用性群組 功能。

  • **開始之前: **

    必要條件

    安全性

  • **如何: **

    • 判斷 AlwaysOn 可用性群組是否已啟用

    • 啟用 AlwaysOn 可用性群組

    • 停用 AlwaysOn 可用性群組

開始之前

啟用 AlwaysOn 可用性群組的必要條件

  • 此伺服器執行個體必須位於 Windows Server 容錯移轉叢集 (WSFC) 節點上。

  • 伺服器執行個體必須執行支援 AlwaysOn 可用性群組 的 SQL Server 版本。 如需詳細資訊,請參閱<SQL Server 2012 版本支援的功能>。

  • 一次只在一個伺服器執行個體啟用 AlwaysOn 可用性群組。 啟用 AlwaysOn 可用性群組之後,等到 SQL Server 服務重新啟動後才能在另一個伺服器執行個體繼續進行。

如需有關建立及設定可用性群組的其他必要條件的詳細資訊,請參閱<AlwaysOn 可用性群組的必要條件、限制和建議 (SQL Server)>。

安全性

在 SQL Server 執行個體啟用 AlwaysOn 可用性群組之後,伺服器執行個體就會有 WSFC 叢集的完整控制。

權限

需要本機電腦的 Administrator 群組成員資格和 WSFC 叢集的完整控制。 透過使用 PowerShell 啟用 AlwaysOn 時,請使用 [以系統管理員身分執行] 選項開啟命令提示字元視窗。

需要 Active Directory 建立物件和管理物件權限。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

判斷 AlwaysOn 可用性群組是否已啟用

  • SQL Server Management Studio

  • Transact-SQL

  • PowerShell

使用 SQL Server Management Studio

判斷 AlwaysOn 可用性群組是否已啟用

  1. 在 [物件總管] 中,以滑鼠右鍵按一下伺服器執行個體,然後按一下 [屬性]

  2. [伺服器屬性] 對話方塊中,按一下 [一般] 頁面。 [為已啟用 HADR] 屬性會顯示下列其中一個值:

    • 如果 AlwaysOn 可用性群組已啟用,則為 True

    • 如果 AlwaysOn 可用性群組已停用,則為 False

使用 Transact-SQL

判斷 AlwaysOn 可用性群組是否已啟用

  1. 使用下列 SERVERPROPERTY 陳述式:

    SELECT SERVERPROPERTY ('IsHadrEnabled');
    

    IsHadrEnabled 伺服器屬性設定會指出 SQL Server 執行個體是否已啟用 AlwaysOn 可用性群組,如下所示:

    • 如果 IsHadrEnabled = 1,表示 AlwaysOn 可用性群組已啟用。 

    • 如果 IsHadrEnabled = 0,表示 AlwaysOn 可用性群組已停用。

    [!附註]

    如需有關 IsHadrEnabled 伺服器屬性的詳細資訊,請參閱<SERVERPROPERTY (Transact-SQL)>。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

使用 PowerShell

判斷 AlwaysOn 可用性群組是否已啟用

  1. 將目錄切換到 (cd) 要判斷 AlwaysOn 可用性群組 是否已啟用的伺服器執行個體。

  2. 輸入下列 PowerShell Get-Item 命令:

    PS SQLSERVER:\SQL\NODE1\DEFAULT> get-item . | select IsHadrEnabled
    

    [!附註]

    若要檢視指令程式的語法,請使用 SQL Server PowerShell 環境中的 Get-Help 指令程式。 如需詳細資訊,請參閱<取得 SQL Server PowerShell 說明>。

若要設定和使用 SQL Server PowerShell 提供者

搭配回到頁首連結使用的箭頭圖示[回到頁首]

啟用 AlwaysOn 可用性群組

若要啟用 AlwaysOn,請使用:

  • SQL Server 組態管理員

  • PowerShell

使用 SQL Server 組態管理員

啟用 AlwaysOn 可用性群組

  1. 連接到 Windows Server 容錯移轉叢集 (WSFC) 節點,此節點裝載您要啟用 AlwaysOn 可用性群組的 SQL Server 執行個體。

  2. 指向 [開始] 功能表上的 [所有程式],然後依序指向 [ Microsoft SQL Server 2012 ] 和 [組態工具],再按一下 [SQL Server 組態管理員]

  3. [SQL Server 組態管理員] 中,按一下 [SQL Server 服務],以滑鼠右鍵按一下 [SQL Server] (<instance name>),其中 <instance name> 是要啟用 AlwaysOn 可用性群組的本機伺服器執行個體名稱,然後按一下 [屬性]

  4. 選取 [AlwaysOn 高可用性] 索引標籤。

  5. 確認 [Windows 容錯移轉叢集名稱] 欄位包含本機容錯移轉叢集的名稱。 如果此欄位為空白,表示此伺服器執行個體目前不支援 AlwaysOn 可用性群組。 有可能本機電腦不是叢集節點,WSFC 叢集已經關閉,或者此版本 SQL Server 2012 不支援 AlwaysOn 可用性群組。

  6. 選取 [啟用 AlwaysOn 可用性群組] 核取方塊,然後按一下 [確定]

    SQL Server 組態管理員會儲存您的變更。 然後您必須手動重新啟動 SQL Server 服務。 這讓您可以選擇最適合您業務需求的重新啟動時間。 當 SQL Server 服務重新啟動時,AlwaysOn 就會啟用,而且 IsHadrEnabled 伺服器屬性會設定為 1。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

使用 SQL Server PowerShell

啟用 AlwaysOn

  1. 將目錄切換到 (cd) 要啟用 AlwaysOn 可用性群組的伺服器執行個體。

  2. 使用 Enable-SqlAlwaysOn 指令程式,啟用 AlwaysOn 可用性群組。

    若要檢視指令程式的語法,請使用 SQL Server PowerShell 環境中的 Get-Help 指令程式。 如需詳細資訊,請參閱<取得 SQL Server PowerShell 說明>。

    [!附註]

    如需有關如何控制 Enable-SqlAlwaysOn 指令程式是否重新啟動 SQL Server 服務的詳細資訊,請參閱本主題稍後的指令程式在何時重新啟動 SQL Server 服務。

若要設定和使用 SQL Server PowerShell 提供者

搭配回到頁首連結使用的箭頭圖示[回到頁首]

範例:啟用 SqlAlwaysOn

下列 PowerShell 命令會在 SQL Server 執行個體上 (Computer\Instance) 啟用 AlwaysOn 可用性群組。

Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance

停用 AlwaysOn 可用性群組

  • 在您停用 AlwaysOn 之前: 

    建議

  • 若要停用 AlwaysOn,請使用:

    • SQL Server 組態管理員

    • PowerShell

  • **待處理:**停用 AlwaysOn 之後

重要事項重要事項

一次只在一個伺服器執行個體上停用 AlwaysOn。 停用 AlwaysOn 可用性群組之後,等到 SQL Server 服務重新啟動後才能在另一個伺服器執行個體繼續進行。

建議

在伺服器執行個體上停用 AlwaysOn 之前,我們建議您執行下列動作:

  1. 如果伺服器執行個體目前裝載要保留之可用性群組的主要複本,建議手動將可用性群組容錯移轉至已同步處理的次要複本 (如果可能的話)。 如需詳細資訊,請參閱<執行可用性群組的已規劃手動容錯移轉 (SQL Server)>。

  2. 移除所有本機次要複本。 如需詳細資訊,請參閱<將次要複本從可用性群組移除 (SQL Server)>。

使用 SQL Server 組態管理員

停用 AlwaysOn

  1. 連接到 Windows Server 容錯移轉叢集 (WSFC) 節點,此節點裝載您要停用 AlwaysOn 可用性群組的 SQL Server 執行個體。

  2. 指向 [開始] 功能表上的 [所有程式],然後依序指向 [ Microsoft SQL Server 2012 ] 和 [組態工具],再按一下 [SQL Server 組態管理員]

  3. [SQL Server 組態管理員] 中,按一下 [SQL Server 服務],以滑鼠右鍵按一下 [SQL Server] (<instance name>),其中 <instance name> 是要停用 AlwaysOn 可用性群組的本機伺服器執行個體名稱,然後按一下 [屬性]

  4. [AlwaysOn 高可用性] 索引標籤上,取消選取 [啟用 AlwaysOn 可用性群組] 核取方塊,然後按一下 [確定]

    SQL Server 組態管理員會儲存您的變更並重新啟動 SQL Server 服務。 當 SQL Server 服務重新啟動時,AlwaysOn 就會停用,而且 IsHadrEnabled 伺服器屬性會設定為 0,表示 AlwaysOn 可用性群組已停用。

  5. 我們建議您閱讀本主題稍後的<待處理:停用 AlwaysOn 之後>資訊。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

使用 SQL Server PowerShell

停用 AlwaysOn

  1. 將目錄切換到 (cd) 要停用 AlwaysOn 可用性群組、目前啟用的伺服器執行個體。

  2. 使用 Disable-SqlAlwaysOn 指令程式,啟用 AlwaysOn 可用性群組。

    例如,下列命令會在 SQL Server 執行個體 (Computer\Instance) 上停用 AlwaysOn 可用性群組。 此命令需要重新啟動執行個體,而且系統將提示您確認重新啟動。

    Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance
    
    重要事項重要事項

    如需有關如何控制 Disable-SqlAlwaysOn 指令程式是否重新啟動 SQL Server 服務的詳細資訊,請參閱本主題稍後的指令程式在何時重新啟動 SQL Server 服務。

    若要檢視指令程式的語法,請使用 SQL Server PowerShell 環境中的 Get-Help 指令程式。 如需詳細資訊,請參閱<取得 SQL Server PowerShell 說明>。

若要設定和使用 SQL Server PowerShell 提供者

搭配回到頁首連結使用的箭頭圖示[回到頁首]

待處理:停用 AlwaysOn 之後

停用 AlwaysOn 可用性群組之後,必須重新啟動 SQL Server 執行個體。 SQL Server 組態管理員會自動重新啟動伺服器執行個體。 但是,如果您使用 Disable-SqlAlwaysOn 指令程式,則需要手動重新啟動伺服器執行個體。 如需詳細資訊,請參閱<sqlservr 應用程式>。

在重新啟動的伺服器執行個體:

  • 在 SQL Server 啟動時,可用性資料庫不會啟動,因此無法存取。

  • 唯一支援的 AlwaysOn Transact-SQL 陳述式是 DROP AVAILABILITY GROUP。 不支援 CREATE AVAILABILITY GROUP、ALTER AVAILABILITY GROUP,以及 ALTER DATABASE 的 SET HADR 選項。

  • SQL Server 中繼資料和 WSFC 中的 AlwaysOn 可用性群組 組態資料不受 AlwaysOn 可用性群組停用所影響。

如果您在裝載一個或多個可用性群組之可用性複本的每個伺服器執行個體上永久停用 AlwaysOn 可用性群組,建議您完成下列步驟:

  1. 如果您在停用 AlwaysOn 之前未移除本機可用性複本,請針對裝載可用性複本的伺服器執行個體刪除 (卸除) 每個可用性群組。 如需有關刪除可用性群組的詳細資訊,請參閱<移除可用性群組 (SQL Server)>。

  2. 若要移除遺留的中繼資料,在做為原始 WSFC 叢集一部分的伺服器執行個體上,刪除 (卸除) 每個受影響的可用性群組。

  3. 任何主要資料庫仍會繼續可供所有連接存取,但是主要和次要資料庫之間的資料同步處理會停止。

  4. 次要資料庫會進入 RESTORING 狀態。 您可以刪除它們,或透過使用 RESTORE WITH RECOVERY 還原它們。 但是,還原的資料庫不再參與可用性群組資料同步處理。

指令程式在何時重新啟動 SQL Server 服務

在目前執行中的伺服器執行個體上,使用 Enable-SqlAlwaysOn 或 Disable-SqlAlwaysOn 變更目前的 AlwaysOn 設定,可能會導致 SQL Server 服務重新啟動。 重新啟動行為取決於下列條件:

指定 -NoServiceRestart 參數

指定 -Force 參數

SQL Server 服務是否重新啟動?

根據預設。 但指令程式會出現提示,如下所示:

若要完成這個動作,我們必須重新啟動伺服器執行個體 '<instance_name>' 的 SQL Server 服務。 您要繼續嗎?

[Y] 是 [N] 否 [S] 暫停 [?]說明 (預設為 "Y"):

如果指定 NS,就不會重新啟動服務。

服務會重新啟動。

服務不會重新啟動。

服務不會重新啟動。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

請參閱

參考

SERVERPROPERTY (Transact-SQL)

概念

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