嘗試創建分佈式可用性組時出現網路數據包負載錯誤
我正在嘗試在 SQL 2016 SP1 上創建分佈式 AG,但不斷收到以下錯誤。我已經在 VirtualBox(本地桌面)和實際的 VMWare 虛擬環境中嘗試過,但每次都會遇到相同的錯誤。
AG 在兩個 WFC 上都成功創建,但是當我嘗試“ALTER AVAILABILITY GROUP
$$ Dist AG Name $$JOIN”在“遠端”AG的主副本上,命令成功完成,但我立即在日誌中收到此錯誤:
嘗試建立與 ID 為可用性副本“AG1”的連接時發生連接超時
$$ FCAA4083-D6B8-1BAC-9E8C-6AECE34513E6 $$. 存在網路或防火牆問題,或者為副本提供的端點地址不是主機伺服器實例的數據庫鏡像端點。
在“本地”AG 的主副本上,我開始在日誌中反複收到這些錯誤:
網路數據包有效負載中指定的長度與讀取的字節數不匹配;連接已關閉。請聯繫客戶端庫的供應商。
$$ CLIENT: 192.168.56.104 $$
這些是顯示在事件查看器事件中的字節:
0000: AC 45 00 00 14 00 00 00 ¬E...... 0008: 14 00 00 00 41 00 47 00 ....A.G. 0010: 31 00 53 00 45 00 52 00 1.S.E.R. 0018: 56 00 45 00 52 00 31 00 V.E.R.1. 0020: 5C 00 41 00 47 00 31 00 \.A.G.1. 0028: 49 00 4E 00 53 00 54 00 I.N.S.T. 0030: 31 00 00 00 00 00 00 00 1.......
在這兩種環境中,我只處理一個子網和一個域。在故障排除期間,我還嘗試從 VM 主機名、實例名稱、AG 名稱和偵聽器名稱中刪除所有特殊字元。
想知道是否有人以前遇到過這種情況。我在 SP2 發行說明中沒有看到任何表明它存在錯誤的內容,但如果有人認為值得,我願意嘗試升級 SP2。(不幸的是,我暫時無法升級我的產品環境,這就是為什麼我還沒有嘗試過。)
如果有人願意嘗試重現或提供故障排除提示,我還可以發布完整的端點/AG/偵聽器創建腳本。
謝謝!
好吧,我終於找到了問題,這是我自己的愚蠢錯誤。創建分佈式可用性組時,對於 LISTENER_URL 子句,您必須指定偵聽器 DNS 名稱,但必須指定鏡像端點埠。我正在指定偵聽器 DNS 名稱和偵聽器埠。
例如,這是我的端點定義(注意埠 5022):
CREATE ENDPOINT [Hadr_endpoint] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = (192.168.159.102)) FOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = WINDOWS NEGOTIATE , ENCRYPTION = REQUIRED ALGORITHM AES) GO
這是我的監聽器定義(注意埠 1435):
ALTER AVAILABILITY GROUP [AG1] ADD LISTENER N'AG1LISTENER' ( WITH IP ((N'192.168.232.203', N'255.255.255.0') ) , PORT=1435); GO
這是定義分佈式 AG 的正確方法(注意偵聽器 DNS 名稱但端點埠):
CREATE AVAILABILITY GROUP [DistAG] WITH (DISTRIBUTED) AVAILABILITY GROUP ON 'AG1' WITH ( LISTENER_URL = 'tcp://AG1LISTENER:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC ), 'AG2' WITH ( LISTENER_URL = 'tcp://AG2LISTENER:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC ); GO
在這篇文章中突出顯示的巨大紫色註釋中非常清楚地解釋了這一點,我以前不知何故完全忽略了這一點: https ://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-distributed -availability-groups?view=sql-server-2017