Sql-Server

測試 WSFC 故障轉移將輔助副本置於 RESOLVING 模式

  • June 29, 2021

我有 2 個地點,每個地點都有自己的 WSFC。

  1. 集群 1:WSFC、Datacenter1、Node1、Node2。聽眾1
  2. 集群 2:WSFC、Datacenter2、Node3、Node4。監聽器2

創建了一個可用性組作為EXTERNAL集群類型。

SSMS 中 AG 選項的螢幕截圖,其中選擇了“EXTERNAL”作為集群類型,已圈出

在模擬故障轉移時,通過切換節點,將數據庫置於 RESOLVING 模式。

SSMS 對象資源管理器的螢幕截圖顯示有問題的數據庫未同步,並且 AG 副本之一正在解析

查看主副本上的 SQL 錯誤日誌:

可用性組“AG_AW2017”中本地可用性副本的狀態已從“NOT_AVAILABLE”更改為“RESOLVING_NORMAL”。由於 SQL Server 的本地實例正在啟動,因此狀態已更改。有關詳細資訊,請參閱 SQL Server 錯誤日誌或群集日誌。如果這是 Windows Server 故障轉移群集 (WSFC) 可用性組,您還可以看到 WSFC 管理控制台。

查看輔助副本上的 SQL 錯誤日誌:

先前建立的與具有 id 的可用性副本“主要”的連接發生連接超時

$$ 1B93C7DC-75E3-4180-9748-AC1B662781A9 $$. 存在網路或防火牆問題,或者可用性副本已轉換為解決角色

如果我嘗試使用 WSFC 作為集群類型,那麼我將無法添加 Replica。我會收到一條錯誤消息:

無法連接到 Listener2。指定的 SQL Server 實例不屬於與主節點相同的 Windows Server 故障轉移群集 (WSFC)。

花了很多時間,但仍然無法弄清楚這裡到底是什麼問題。

來自 Microsoft Docs 的CREATE AVAILABILITY GROUP

CLUSTER_TYPE

在 SQL Server 2017 中引入。用於辨識可用性組是否位於 Windows Server 故障轉移群集 (WSFC) 上。當可用性組位於 Windows Server 故障轉移群集上的故障轉移群集實例上時,設置為 WSFC。當集群由不是 Windows Server 故障轉移集群的集群管理器(如 Linux Pacemaker)管理時,設置為 EXTERNAL。當可用性組不使用 WSFC 進行集群協調時設置為 NONE。例如,當可用性組包含沒有集群管理器的 Linux 伺服器時。

由於您提到您使用的是 Windows Server 故障轉移群集,這意味著您使用的是 Windows,並且不應將“群集類型”設置為外部。它應該設置為 WSFC。

您想要的聽起來更像是 Always On 分佈式可用性組。

要創建分佈式可用性組,您必須創建兩個可用性組,每個組都有自己的偵聽器。然後,您將這些可用性組組合成一個分佈式可用性組。以下步驟提供了 Transact-SQL 中的基本範例。此範例並未涵蓋創建可用性組和偵聽器的所有細節;相反,它側重於突出關鍵要求。

從 Microsoft Docs配置 Always On 分佈式可用性組:

有關分佈式可用性組的技術概述,請參閱分佈式可用性組。

引用自:https://dba.stackexchange.com/questions/294952