變更哪個叢集管理 Always On 可用性群組複本的中繼資料

適用於:SQL Server - 僅限 Windows

本主題說明如何在 SQL Server 2012 SP1 (11.0.3x) 和更新版本中,使用 Transact-SQL 切換 SQL Server 執行個體的 HADR 叢集內容。 「HADR 叢集內容」會決定哪個 Windows Server 容錯移轉叢集 (WSFC) 叢集管理伺服器執行個體所裝載可用性複本的中繼資料。

僅在跨叢集將 Always On 可用性群組移轉至新 WSFC 叢集的 SQL Server 2012 SP1 (11.0.3x) 執行個體時,才切換 HADR 叢集內容。 Always On 可用性群組的跨叢集移轉支援在最短的可用性群組停機時間內,將 OS 升級為 Windows 8 或 Windows Server 2012。 如需詳細資訊,請參閱 針對作業系統升級進行 AlwaysOn 可用性群組的跨叢集移轉

警告

僅在跨叢集移轉 Always On 可用性群組部署時,才切換 HADR 叢集內容。

限制事項

  • 您只能將 HADR 叢集內容從本機 WSFC 叢集切換至遠端叢集,然後從遠端叢集切換回本機叢集。 您無法將 HADR 叢集內容從某一個遠端叢集切換至另一個遠端叢集。

  • HADR 叢集內容只有在 SQL Server 執行個體未裝載任何可用性複本時,才能切換至遠端叢集。

  • 遠端 HADR 叢集內容隨時可以切換回本機叢集。 不過,只要伺服器執行個體裝載任何可用性複本,內容就不能再次切換。

必要條件

  • 變更 HADR 叢集內容的伺服器執行個體必須執行 SQL Server 2012 SP1 (11.0.3x) 或更新版本 (Enterprise Edition 或更新版本)。

  • 伺服器執行個體必須針對 AlwaysOn 啟用。 如需詳細資訊,請參閱啟用和停用 Always On 可用性群組 (SQL Server)

  • 若要符合從本機叢集內容切換至遠端叢集的資格,伺服器執行個體不可裝載任何可用性複本。 sys.availability_replicas 目錄檢視不應傳回任何資料列。

    如果伺服器執行個體上有任何可用性複本存在,您必須先執行下列其中一項操作,才能變更 HADR 叢集內容:

    複本角色 動作 連結
    主要 讓可用性群組離線。 讓可用性群組離線 (SQL Server)
    次要 從本身的可用性群組移除複本 將次要複本從可用性群組移除 (SQL Server)
  • 所有同步認可複本都必須是 SYNCHRONIZED,您才能從遠端叢集切換至本機叢集。

建議

  • 我們建議您指定完整網域名稱。 這是因為,為了尋找簡短名稱的目標 IP 位址,ALTER SERVER CONFIGURATION 會使用 DNS 解析。 在某些情況下,根據 DNS 搜尋順序,使用簡短名稱可能會產生混淆。 例如,請考慮下列命令,該命令是在 abc 網域 (node1.abc.com) 中的節點上執行。 預期的目的地叢集是 CLUS01 網域 ( xyz ) 中的clus01.xyz.com叢集。 不過,本機網域主機也會裝載名為 CLUS01 (clus01.abc.com) 的叢集。

    如果已指定目標叢集的簡短名稱 CLUS01,則 DNS 名稱解析可能會傳回錯誤叢集 clus01.abc.com的 IP 位址。 為避免發生這類混淆情況,請指定目標叢集的完整名稱,如下列範例所示:

    ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = 'clus01.xyz.com'  
    

權限

  • SQL Server 登入

    需要 CONTROL SERVER 權限。

  • SQL Server 服務帳戶

    伺服器執行個體的 SQL Server 服務帳戶必須具備:

    • 開啟目的地 WSFC 叢集的權限。

    • 遠端 WSFC 讀寫存取。

使用 TRANSACT-SQL

變更可用性複本的 WSFC 叢集內容

  1. 連接到裝載可用性群組之主要複本或次要複本的伺服器執行個體。

  2. 使用 ALTER SERVER CONFIGURATION 陳述式的 SET HADR CLUSTER CONTEXT 子句,如下所示:

    ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = { 'windows_cluster' | LOCAL }

    其中

    windows_cluster
    WSFC 叢集的叢集物件名稱 (CON)。 您可以指定簡短名稱或完整網域名稱。 我們建議您指定完整網域名稱。 如需詳細資訊,請參閱本主題稍後的 建議

    LOCAL
    本機 WSFC 叢集。

範例

下列範例會將 HADR 叢集內容變更為不同叢集。 為了識別目的地 WSFC 叢集 clus01,此範例會指定完整叢集物件名稱 clus01.xyz.com

ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = 'clus01.xyz.com';  

下列範例會將 HADR 叢集內容變更為本機 WSFC 叢集。

ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = LOCAL;  

後續操作:切換可用性複本的叢集內容之後

新的 HADR 叢集內容會立即生效,不需要重新啟動伺服器執行個體。 HADR 叢集內容設定是持續性的執行個體層級設定,即使伺服器執行個體重新啟動也會保持不變。

藉由查詢 sys.dm_hadr_cluster 動態管理檢視確認新的 HADR 叢集內容,如下所示:

SELECT cluster_name FROM sys.dm_hadr_cluster  

此查詢應該會傳回您設定其 HADR 叢集內容之叢集的名稱。

當 HADR 叢集內容切換至新的叢集時:

  • SQL Server 執行個體目前裝載之所有可用性複本的中繼資料都會清除。

  • 之前屬於某個可用性複本的所有資料庫現在都會是 RESTORING 狀態。

相關工作

相關內容

另請參閱

Always On 可用性群組 (SQL Server)
SQL Server 的 Windows Server 容錯移轉叢集 (WSFC)
ALTER SERVER CONFIGURATION (Transact-SQL)