適用於:SQL Server
SQL Server 多子網路容錯移轉叢集是一種設定,其中每個容錯移轉叢集節點都連線到不同的子網路或一組不同的子網路。 這些子網路可以位於相同位置,或位於散佈於不同地理區域的站台。 地理上分散的站點中的叢集有時稱為 延伸叢集。 因為沒有所有節點都可以存取的共用儲存體,所以應該在多個子網路上的資料儲存體之間複寫資料。 當您複寫資料時,有多個可用的資料複本。 因此,除了具有高可用性之外,多重子網路容錯移轉叢集也提供了災害復原方案。
SQL Server 多子網路容錯移轉叢集 (兩個節點、兩個子網路)
下圖代表 SQL Server 中的雙節點、雙子網路容錯移轉叢集執行個體 (FCI)。
多子網路容錯移轉叢集執行個體組態
以下是使用多個子網路的 SQL Server FCI 的一些範例:
SQL Server FCI SQLCLUST1 包含 Node1 和 Node2。 Node1 會連接到 Subnet1。 Node2 會連接到 Subnet2。 SQL Server 安裝程式會將此設定視為多子網路叢集,並將 IP 位址資源相依性設定為
OR。SQL Server FCI SQLCLUST2包括 Node1、Node2 和 Node3。 Node1 和 Node2 會連接到 Subnet1。 Node 3 會連接到 Subnet2。 SQL Server 安裝程式會將此設定視為多子網路叢集,並將 IP 位址資源相依性設定為
OR。 由於 Node1 和 Node2 位於相同的子網路,這個組態會提供額外的本機高可用性。SQL Server FCI SQLCLUST3包括 Node1 和 Node2。 Node1 位於 Subnet1 上。 Node2 位於 Subnet1 和 Subnet2 上。 SQL Server 安裝程式會將此設定視為多子網路叢集,並將 IP 位址資源相依性設定為
OR。SQL Server FCI SQLCLUST4包括 Node1 和 Node2。 Node1 會連接到 Subnet1 和 Subnet2。 Node2 也會連接到 Subnet1 和 Subnet2。 SQL Server 安裝程式會將 IP 位址資源相依性設定為
AND。注意
此組態不會被視為多子網路容錯移轉叢集組態,因為叢集節點位於同一組子網路上。
IP 位址資源考量
在多子網路容錯移轉叢集設定中,容錯移轉叢集中的所有節點都不擁有 IP 位址,而且在 SQL Server 啟動期間,它們可能並非全部在線上。 從 SQL Server 2012 (11.x) 開始,您可以將 IP 位址資源相依性設定為 OR。 這樣做可讓 SQL Server 在至少有一個有效的 IP 位址可以系結時上線。
注意
在 SQL Server 2012 (11.x) 之前的 SQL Server 版本中,延伸 V-LAN 技術會用於多月臺叢集設定,以公開單一 IP 位址以跨月臺容錯移轉。 現在 SQL Server 可以跨不同子網叢集節點,您可以跨多個月臺設定 SQL Server 容錯移轉叢集,而不需要實作延展 V-LAN 技術。
IP 位址資源或相依性考量
如果您將 IP 位址資源相依性設定為 OR:
當目前擁有 SQL Server 叢集資源群組的節點上的其中一個 IP 位址失敗時,不會自動觸發容錯移轉,直到該節點上所有有效的 IP 位址都失敗為止。
發生容錯移轉時,如果 SQL Server 可以系結至目前節點上至少一個有效的 IP 位址,則它會上線。 啟動時未系結至 SQL Server 的 IP 位址會列在錯誤記錄檔中。
當 SQL Server FCI 與 SQL Server 資料庫引擎的獨立執行個體並存安裝時,請小心避免 IP 位址上的 TCP 連接埠號碼衝突。 當資料庫引擎的兩個執行個體設定為使用預設 TCP 埠 (1433) 時,通常會發生衝突。 若要避免衝突,請將一個執行個體設定為使用非預設固定連接埠。 在獨立執行個體上設定固定連接埠通常更容易。 將資料庫引擎設定為使用不同的埠,可防止非預期的 IP 位址/TCP 埠衝突,當 SQL Server FCI 失敗至待命節點時,會封鎖執行個體啟動。
容錯移轉期間的用戶端復原延遲
根據預設,多子網路 FCI 會啟用其網路名稱的 RegisterAllProvidersIP 叢集資源。 在多子網路配置中,網路名稱的線上和離線 IP 位址都會在 DNS 伺服器上註冊。 然後,用戶端應用程式會從 DNS 伺服器擷取所有已註冊的 IP 位址,並嘗試依序或平行連線到位址。 這表示多子網路容錯移轉中的用戶端復原時間不再取決於 DNS 更新延遲。 根據預設,用戶端會依序嘗試 IP 位址。 當用戶端在其連接字串中使用選擇性 MultiSubnetFailover=True 參數時,它會改為同時嘗試 IP 位址,並連線到第一個回應的伺服器。 此設定有助於在發生容錯移轉時將用戶端復原延遲降到最低。 如需詳細資訊,請參閱 Always On 用戶端連線 (SQL Server) 和建立或設定可用性群組接聽程式 (SQL Server)。
使用舊版用戶端程式庫或非 Microsoft 資料提供者時,您無法在連接字串中使用 MultiSubnetFailover 參數。 為確保用戶端應用程式以最佳方式與 SQL Server 多重子網路 FCI 搭配使用,針對每個額外 IP 位址,請嘗試將用戶端連接字串中的連線逾時調增 21 秒。 此設定可確保用戶端的重新連線嘗試不會逾時,然後才能循環瀏覽多子網路 FCI 中的所有 IP 位址。
SQL Server Management Studio 和 sqlcmd 的預設用戶端連線逾時期間為 15 秒。
注意
如果您使用多個子網路並具有靜態 DNS,則在執行容錯移轉之前,您必須先設定一個程序來更新與接聽程式相關聯的 DNS 記錄。 否則,網路名稱將無法上線。
相關內容
| Description | 文章 |
|---|---|
| 安裝 SQL Server 容錯移轉叢集 | 建立新的 SQL Server 容錯移轉叢集 (安裝程式) |
| 現有 SQL Server 容錯移轉叢集的就地升級 | 升級 SQL Server 容錯移轉叢集執行個體 (安裝程式) |
| 維護 SQL Server 容錯移轉叢集 | 新增或移除 SQL Server 容錯移轉叢集中的節點 (安裝程式) |
| 使用 [容錯移轉叢集管理] 嵌入式管理單元來檢視 Windows Server 容錯移轉叢集事件和記錄 | 檢視容錯移轉叢集的事件和記錄 |
| 使用 Windows PowerShell 為 Windows Server 容錯移轉叢集中的所有節點 (或特定節點) 建立記錄檔 | Get-ClusterLog 容錯移轉叢集 Cmdlet |