未指定 tcp/port 的 SQL Server 連接
在我的實驗室(Azure VM)中突然出現連接問題:
SQL 2016, sp1, cu4, Windows 2016 Datacenter
用於 SQL AG 測試的 Windows 故障轉移群集。
SQLServer-0:
預設實例(埠
1431
)
Inst1
(港口1499
)SQLServer-1:
預設實例(埠
1431
)
Inst1
(港口1499
)從 開始
SQLServer-0
,我只能使用tcp:SQLServer-1, 1431
(或tcp:SQlServer-1.kevinsdomain.com,1431
)連接到遠端實例。命名實例也是如此。
從
SQLServer-1
到也是一樣SQLServer-0
。僅對 NetBIOS 名稱進行 Ping 就可以正常工作,
ping -a
解析 FQDN。這些都沒有在埠上執行
1433
,兩台伺服器都在執行 SQL 瀏覽器NT Authority\Local Service
。這是我的測試域,以及域控制器、DNS 等。
每個上的 Windows 防火牆都打開了所有需要的埠,包括 UDP
1434
。我敢肯定有一些簡單的東西我忘了檢查,沖洗,不管。就是想不出來。
只是為了澄清您的問題…您希望連接到任一伺服器上的實例而無需指定埠號?
在這種情況下,您是否檢查過實例名稱是否已添加到您的 SQL 配置管理器中?
- 打開 SQL 配置管理器
- 展開“SQL Native Client 配置”
- 選擇“別名”
- 看看你想連接的實例是否存在,如果不存在,為該實例創建別名
希望我能回答你的問題…
這些都沒有在埠 1433 上執行,兩台伺服器都在 NT Authority\Local Service 下執行 SQL Browser
執行 SQL 服務來偵聽 port# 不是強制性的
1433
,似乎這些埠是根據您的情況定制的,這從安全形度來看是好的。此外,SQL Browser
如果您有 SQL 服務(命名實例)的固定埠並且您在連接中提到該埠,則不需要服務,即hostname,1499
僅對 NetBIOS 名稱進行 Ping 就可以正常工作, ping -a 解析 FQDN
我認為您還應該嘗試
telnet SQLServer-0 1499
確認 SQL 服務正在偵聽特定埠並且未被防火牆阻止,這些步驟可能有助於進一步排除故障用於 SQL AG 測試的 Windows 故障轉移群集
在這種情況下,您不僅需要檢查
Endpoint ports
SQL 埠。獲取配置的端點SELECT type_desc, port FROM sys.TCP_endpoints