Sql-Server

什麼導致 SQL 錯誤 41106?

  • February 22, 2022

當我按照以下 Microsoft 文件嘗試通過 Powershell 將輔助副本加入可用性組時出現錯誤。

Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\<SecondaryComputer>\Instance" -Name "<AG Name>"

錯誤:

無法將本地可用性副本加入可用性組“”。該操作遇到 SQL Server 錯誤 41106 並已回滾。查看 SQL Server 錯誤日誌以獲取更多詳細資訊。解決錯誤原因後,重試 ALTER AVAILABILITY GROUP JOIN 命令。

https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/create-an-availability-group-sql-server-powershell?view=sql-server-2017#ExampleConfigureGroup

我也通過 SSMS 嘗試了 T-SQL 命令。

USE MASTER
ALTER AVAILABILITY GROUP <AG Name> JOIN;

同樣的錯誤。

我登錄的預設數據庫設置為“TempDB”。將其更改為“大師”。第一個節點存在 DNS 註冊問題。因此,次要副本無法通過電腦名與主要副本進行通信。糾正這兩個解決了這個問題。

Join-SqlAvailabilityGroup工作正常。

在我的情況下,正確設置了兩台伺服器的權限。我遇到的問題是 TCP:5022 埠(Hadr 鏡像端點)不允許從其中一台伺服器進行通信。打開埠 5022 解決了我的問題。

要檢查埠是否打開,請在 Powershell 上執行腳本(使用其他伺服器的 IP 地址):

$socket=new-object net.sockets.tcpclient
$socket.connect("IPaddress",port)
$socket.Connected

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