Sql-Server-2008-R2
SQL Server 2008 R2 鏡像問題
我有一個非常令人沮喪的問題,我已經嘗試了將近一周的時間。我有兩個 SQL Server 2008 R2 STD w/SP3 機器在 Windows 2012 R2 上執行,每個實例有兩個實例,Server1 是 PRIMARY,Server2 是 MIRROR。購買 Server2 是為了鏡像,所以還沒有實時數據庫。但是 Server1 已經投入生產。因此,這是兩者的完整詳細設置。
創建了一個域\使用者帳戶並將其用於兩個伺服器的 SQLService
主伺服器配置
- Name: SERVER1.domain.com
- 網卡1:172.xx.xx.80
- NIC2:172.xx.xx.81(用於鏡像)
- 命名實例:INSTANCE1 和 INSTANCE2
鏡像伺服器配置
- Name: SERVER2.domain.com
- 網卡1:172.xx.xx.82
- NIC2:172.xx.xx.83(用於鏡像)
- 命名實例:INSTANCE1 和 INSTANCE2
尚無證人
DNS 伺服器中的靜態 A 記錄
172.xx.xx.81 dbm-pri.domain.com
和172.xx.xx.83 dbm-mir.domain.com
以下是兩台伺服器上所做的事情:
- 檢查 SQL Server 配置管理器並確保 TCP 已啟用,然後在 IPAll 欄位中添加要使用的埠
- 重新啟動 SQL 服務(在絕望的時候,我重新啟動了伺服器本身,是的,即使是在生產中執行的伺服器)
- 執行
netstat
並確認端點埠是 LISTENING,(sqlserver.exe
),還執行 ping 和 tracert 所有測試都很好- 從 PRINCIPAL 和 MIRROR 執行
telnet FQDN port
,確認我可以連接到兩者- 在兩台伺服器上創建端點
主要的
CREATE ENDPOINT INSTANCE1_EndPoint STATE=STARTED AS TCP (LISTENER_PORT=6025,LISTENER_IP=(172.xx.xx.81)) FOR DATABASE_MIRRORING (ROLE=PARTNER)
鏡子
CREATE ENDPOINT INSTANCE1_EndPoint STATE=STARTED AS TCP (LISTENER_PORT=6025,LISTENER_IP=(172.xx.xx.83)) FOR DATABASE_MIRRORING (ROLE=PARTNER)
- 授予域\使用者帳戶的 CONNECT 權限
CREATE LOGIN [domain\user] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO GRANT CONNECT on ENDPOINT::INSTANCE1_EndPoint TO [domain\user] GO
- 備份和恢復數據庫和日誌,沒有恢復
- 在鏡像伺服器上執行 alter db set partner
ALTER DATABASE DBName SET PARTNER = 'TCP://dbm-pri.domain.com:6025'
- 在主體伺服器上執行 alter db set partner
ALTER DATABASE DBName SET PARTNER = 'TCP://dbm-mir.domain.com:6025'
錯誤:
Msg 1418, Level 16, State 1, Line 1
伺服器網路地址“TCP://dbm-mir.domain.com:6025”無法訪問或不存在…
- 在兩台伺服器上測試了netstat、ping、tracert和telnet,都成功了
我現在已經嘗試過很多次了,但我迷失了想法
您是否嘗試過使用 IP 地址?過去我在 R2 中看到過一個問題,即 SQL Server 無法解析 FQDN,但使用 IP 地址可以解決問題。
您可能已經嘗試過,但我必須問:您是否嘗試過通過 SSMS GUI 初始化鏡像?
在主伺服器上的 SSMS 中,右鍵點擊數據庫 –> 鏡像 –> 配置安全性。
我很好奇是否從 GUI 生成相同的錯誤消息。您可以通過 SSMS 從主伺服器建立到鏡像伺服器的連接嗎?