開啟與停用 AlwaysOn 可用性群組 (SQL Server)
啟用 AlwaysOn 可用性群組是伺服器實例使用可用性群組的必要條件。 您必須先在將一或多個可用性群組裝載可用性複本的每個 SQL Server 實例上啟用 Always On 可用性群組功能,才能建立及設定任何可用性群組。
重要
如果您刪除並重新建立 WSFC 叢集,您必須在裝載原始 WSFC 叢集之可用性複本的每個 SQL Server 實例上停用並重新啟用 AlwaysOn 可用性群組功能。
開始之前
啟用AlwaysOn可用性群組的必要條件
此伺服器執行個體必須位於 Windows Server 容錯移轉叢集 (WSFC) 節點上。
伺服器實例必須執行支援 AlwaysOn 可用性群組的 SQL Server 版本。 如需詳細資訊,請參閱 SQL Server 2014 版本支援的功能。
一次只在一個伺服器實例上啟用 AlwaysOn 可用性群組。 啟用 AlwaysOn 可用性群組之後,請等到 SQL Server 服務重新啟動,再繼續進行另一個伺服器實例。
如需建立和設定可用性群組之其他必要條件的詳細資訊,請參閱 AlwaysOn 可用性群組的必要條件、限制和建議(SQL Server)。
安全性
在 SQL Server 實例上啟用 AlwaysOn 可用性群組時,伺服器實例在 WSFC 叢集上具有完全控制權。
權限
需要本機電腦的 Administrator 群組成員資格和 WSFC 叢集的完整控制。 使用 PowerShell 啟用 AlwaysOn 時,請使用 [ 以系統管理員 身分執行] 選項開啟 [命令提示字元] 視窗。
需要 Active Directory 建立物件和管理物件權限。
判斷 AlwaysOn 可用性群組是否已啟用
使用 SQL Server Management Studio
判斷是否啟用 AlwaysOn 可用性群組
在物件總管中,以滑鼠右鍵按一下伺服器執行個體,然後按一下 [屬性]。
在 [伺服器屬性] 對話方塊中,按一下 [一般] 頁面。 [為已啟用 HADR] 屬性會顯示下列其中一個值:
True 是表示 如果已啟用 AlwaysOn 可用性群組
如果AlwaysOn可用性群組已停用,則為 False。
使用 TRANSACT-SQL
判斷是否啟用 AlwaysOn 可用性群組
使用下列 SERVERPROPERTY 陳述式:
SELECT SERVERPROPERTY ('IsHadrEnabled');
伺服器屬性的
IsHadrEnabled
設定指出是否為 AlwaysOn 可用性群組啟用 SQL Server 的實例,如下所示:如果
IsHadrEnabled
= 1,則會啟用 AlwaysOn 可用性群組。如果
IsHadrEnabled
= 0,則會停用 AlwaysOn 可用性群組。
注意
如需伺服器屬性的詳細資訊
IsHadrEnabled
,請參閱 SERVERPROPERTY (Transact-SQL) 。
使用 PowerShell
判斷是否啟用 AlwaysOn 可用性群組
將預設值 (
cd
) 設定為您想要判斷 AlwaysOn 可用性群組是否啟用的伺服器實例(例如\SQL\NODE1\DEFAULT
)。輸入下列 PowerShell
Get-Item
命令:Get-Item . | Select IsHadrEnabled
注意
若要檢視 Cmdlet 的語法,請使用
Get-Help
SQL Server PowerShell 環境中的 Cmdlet。 如需詳細資訊,請參閱 Get Help SQL Server PowerShell。
若要設定和使用 SQL Server PowerShell 提供者
啟用AlwaysOn可用性群組
若要啟用 AlwaysOn,請使用:
使用 SQL Server 組態管理員
啟用AlwaysOn可用性群組
聯機到裝載您要啟用 AlwaysOn 可用性群組之 SQL Server 實例的 Windows Server 故障轉移叢集 (WSFC) 節點。
在 [開始] 功能表上,指向 [所有程式],指向 [sql Server 2014] Microsoft,指向 [組態工具],然後單擊 [SQL Server 組態管理員]。
在 [SQL Server 組態管理員] 中,按兩下 [SQL Server 服務],以滑鼠右鍵按兩下 [SQL Server]><
instance name
,其中 <instance name
> 是您要啟用 AlwaysOn 可用性群組的本地伺服器實例名稱,然後按兩下 [屬性]。選取 [ AlwaysOn 高可用性] 索引 標籤。
確認 [Windows 容錯移轉叢集名稱] 欄位包含本機容錯移轉叢集的名稱。 如果此欄位空白,表示此伺服器執行個體目前不支援 Always On 可用性群組。 本機計算機不是叢集節點、WSFC 叢集已關閉,或不支援 AlwaysOn 可用性群組的這個 SQL Server 2014 版本。
選取 [ 啟用 AlwaysOn 可用性群組 ] 複選框,然後按兩下 [ 確定]。
SQL Server 組態管理員會儲存您的變更。 然後您必須手動重新啟動 SQL Server 服務。 這讓您可以選擇最適合您業務需求的重新啟動時間。 當 SQL Server 服務重新啟動時,將會啟用 AlwaysOn,並將
IsHadrEnabled
伺服器屬性設定為 1。
使用 SQL Server PowerShell
啟用AlwaysOn
將目錄 (
cd
) 變更為您想要針對 AlwaysOn 可用性群組啟用的伺服器實例。Enable-SqlAlwaysOn
使用 Cmdlet 來啟用 AlwaysOn 可用性群組。若要檢視 Cmdlet 的語法,請使用
Get-Help
SQL Server PowerShell 環境中的 Cmdlet。 如需詳細資訊,請參閱 Get Help SQL Server PowerShell。注意
如需如何控制 Cmdlet 是否
Enable-SqlAlwaysOn
重新啟動 SQL Server 服務的資訊,請參閱 本主題稍後的 Cmdlet 重新啟動 SQL Server 服務的時間?。
若要設定和使用 SQL Server PowerShell 提供者
範例:啟用 SqlAlwaysOn
下列 PowerShell 命令會在 SQL Server 實例 (計算機\實例) 實例上啟用 Always On 可用性群組。
Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance
停用 AlwaysOn 可用性群組
停用 AlwaysOn 之前:
若要停用 AlwaysOn,請使用:
待處理: 停用AlwaysOn之後
重要
一次只停用一個伺服器實例上的 AlwaysOn。 停用 AlwaysOn 可用性群組之後,請等到 SQL Server 服務重新啟動,再繼續進行另一個伺服器實例。
建議
在伺服器實例上停用 AlwaysOn 之前,建議您執行下列動作:
如果伺服器執行個體目前裝載要保留之可用性群組的主要複本,建議手動將可用性群組容錯移轉至已同步處理的次要複本 (如果可能的話)。 如需詳細資訊,請參閱執行可用性群組的已規劃手動容錯移轉 (SQL Server)。
移除所有本機次要複本。 如需詳細資訊,請參閱將次要複本從可用性群組移除 (SQL Server)。
使用 SQL Server 組態管理員
停用 AlwaysOn
聯機到裝載您要停用 AlwaysOn 可用性群組之 SQL Server 實例的 Windows Server 故障轉移叢集 (WSFC) 節點。
在 [開始] 功能表上,指向 [所有程式],指向 [SQL Server 2014] Microsoft,指向 [組態工具],然後單擊 [SQL Server 組態管理員]。
在 SQL Server 組態管理員 中,按兩下 [SQL Server 服務],以滑鼠右鍵按兩下 [SQL Server]
instance name
<>,其中 <instance name
> 是您要停用 AlwaysOn 可用性群組的本地伺服器實例名稱,然後按兩下 [屬性]。在 [AlwaysOn 高可用性]索引標籤上,取消選取 [ 啟用 AlwaysOn 可用性群組 ] 複選框,然後按兩下 [ 確定]。
SQL Server 組態管理員會儲存您的變更並重新啟動 SQL Server 服務。 當 SQL Server 服務重新啟動時,將會停用 AlwaysOn,並將
IsHadrEnabled
伺服器屬性設定為 0,表示 AlwaysOn 可用性群組已停用。建議您閱讀本主題稍後的後續操作:停用 AlwaysOn 之後的資訊。
使用 SQL Server PowerShell
停用 AlwaysOn
將目錄 (
cd
) 變更為目前啟用的伺服器實例,而您想要讓 AlwaysOn 可用性群組無法啟用。Disable-SqlAlwaysOn
使用 Cmdlet 來啟用 AlwaysOn 可用性群組。例如,下列命令會在 SQL Server 實例 (電腦\實例) 實例上停用 AlwaysOn 可用性群組。 此命令需要重新啟動執行個體,而且系統將提示您確認重新啟動。
Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance
重要
如需如何控制 Cmdlet 是否
Disable-SqlAlwaysOn
重新啟動 SQL Server 服務的資訊,請參閱 本主題稍後的 Cmdlet 重新啟動 SQL Server 服務的時間?。若要檢視 Cmdlet 的語法,請使用
Get-Help
SQL Server PowerShell 環境中的 Cmdlet。 如需詳細資訊,請參閱 Get Help SQL Server PowerShell。
若要設定和使用 SQL Server PowerShell 提供者
待處理:停用AlwaysOn之後
停用 AlwaysOn 可用性群組之後,必須重新啟動 SQL Server 的實例。 SQL Server 組態管理員會自動重新啟動伺服器執行個體。 不過,如果您使用 Cmdlet Disable-SqlAlwaysOn
,則必須手動重新啟動伺服器實例。 如需詳細資訊,請參閱 sqlservr Application。
在重新啟動的伺服器執行個體:
在 SQL Server 啟動時,可用性資料庫不會啟動,因此無法存取。
唯一支援的 AlwaysOn Transact-SQL 語句是 DROP AVAILABILITY GROUP。 不支援 CREATE AVAILABILITY GROUP、ALTER AVAILABILITY GROUP,以及 ALTER DATABASE 的 SET HADR 選項。
停用 AlwaysOn 可用性群組而不會影響 WSFC 中的 SQL Server 元數據和 AlwaysOn 可用性群組組態數據。
如果您在裝載一或多個可用性群組可用性複本的每個伺服器實例上永久停用 AlwaysOn 可用性群組,建議您完成下列步驟:
如果您在停用 AlwaysOn 之前未移除本機可用性複本,請刪除(卸除)伺服器實例裝載可用性複本的每個可用性群組。 如需刪除可用性群組的相關資訊,請參閱移除可用性群組 (SQL Server)。
若要移除留下的元數據,請在屬於原始 WSFC 叢集的伺服器實例上,刪除(卸除)每個受影響的可用性群組。
任何主要資料庫仍會繼續可供所有連接存取,但是主要和次要資料庫之間的資料同步處理會停止。
次要資料庫會進入 RESTORING 狀態。 您可以刪除它們,或透過使用 RESTORE WITH RECOVERY 還原它們。 但是,還原的資料庫不再參與可用性群組資料同步處理。
Cmdlet 在何時重新啟動 SQL Server 服務
在目前正在執行的伺服器實例上,使用 Enable-SqlAlwaysOn
或 Disable-SqlAlwaysOn
變更目前的 AlwaysOn 設定可能會導致 SQL Server 服務重新啟動。 重新啟動行為取決於下列條件:
指定 -NoServiceRestart 參數 | 指定 -Force 參數 | 是否已重新啟動 SQL Server 服務? |
---|---|---|
No | 否 | 根據預設。 但指令程式會出現提示,如下所示: 若要完成這個動作,我們必須重新啟動伺服器執行個體 '<instance_name>' 的 SQL Server 服務。 是否要繼續? [Y] 是 [N] 否 [S] 暫停 [?] 說明 (預設為 "Y"): 如果指定 N 或 S,就不會重新啟動服務。 |
否 | 是 | 服務會重新啟動。 |
是 | 否 | 服務不會重新啟動。 |
是 | 是 | 服務不會重新啟動。 |