Sql-Server-2008-R2

SQL Server 2008 R2 鏡像問題

  • June 23, 2020

我有一個非常令人沮喪的問題,我已經嘗試了將近一周的時間。我有兩個 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.com172.xx.xx.83 dbm-mir.domain.com

以下是兩台伺服器上所做的事情:

  1. 檢查 SQL Server 配置管理器並確保 TCP 已啟用,然後在 IPAll 欄位中添加要使用的埠
  2. 重新啟動 SQL 服務(在絕望的時候,我重新啟動了伺服器本身,是的,即使是在生產中執行的伺服器)
  3. 執行netstat並確認端點埠是 LISTENING,(sqlserver.exe),還執行 ping 和 tracert 所有測試都很好
  4. 從 PRINCIPAL 和 MIRROR 執行telnet FQDN port,確認我可以連接到兩者
  5. 在兩台伺服器上創建端點

主要的

   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)
  1. 授予域\使用者帳戶的 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
  1. 備份和恢復數據庫和日誌,沒有恢復
  2. 在鏡像伺服器上執行 alter db set partner
ALTER DATABASE DBName SET PARTNER = 'TCP://dbm-pri.domain.com:6025'
  1. 在主體伺服器上執行 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”無法訪問或不存在…

  1. 在兩台伺服器上測試了netstat、ping、tracert和telnet,都成功了

我現在已經嘗試過很多次了,但我迷失了想法

您是否嘗試過使用 IP 地址?過去我在 R2 中看到過一個問題,即 SQL Server 無法解析 FQDN,但使用 IP 地址可以解決問題。

您可能已經嘗試過,但我必須問:您是否嘗試過通過 SSMS GUI 初始化鏡像?

在主伺服器上的 SSMS 中,右鍵點擊數據庫 –> 鏡像 –> 配置安全性。

我很好奇是否從 GUI 生成相同的錯誤消息。您可以通過 SSMS 從主伺服器建立到鏡像伺服器的連接嗎?

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