共用方式為


變更伺服器執行個體的 HADR 叢集內容 (SQL Server)

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

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

  • 開始之前:

    限制事項

    必要條件

    建議

    安全性

  • 以下列方法切換可用性複本的叢集內容:Transact-SQL

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

  • 相關工作

  • 相關內容

開始之前

警告注意事項注意

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

限制事項

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

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

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

必要條件

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

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

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

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

    複本角色

    動作

    連結

    主要

    讓可用性群組離線。

    讓可用性群組離線 (SQL Server)

    次要

    從本身的可用性群組移除複本

    將次要複本從可用性群組移除 (SQL Server)

  • 所有同步認可複本都必須是 SYNCHRONIZED,您才能從遠端叢集切換至本機叢集。

建議

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

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

相關工作

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

相關內容

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

請參閱

參考

ALTER SERVER CONFIGURATION (Transact-SQL)

概念

AlwaysOn 可用性群組 (SQL Server)

SQL Server 的 Windows Server 容錯移轉叢集 (WSFC)