首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2008

SQL Server 2008 複寫錯誤:需要實際伺服器名稱解決方案

     編輯:SQL Server 2008

問題背景

Windows Server 2008 R2 安裝 SQL Server 2008 R2 後,修改了電腦名稱(加入 AD 網域)。配置資料庫鏡像/複寫發布時出現錯誤:

SQL Server 複寫需要有實際的伺服器名稱才能連接到伺服器。不支援透過伺服器別名、IP 位址或任何其他替代名稱進行連接。請指定實際的伺服器名稱...
複寫錯誤截圖

根本原因

SQL Server 內部儲存的伺服器名稱(@@SERVERNAME)仍為舊電腦名稱,與目前作業系統電腦名稱不一致。複寫、鏡像、連結伺服器等功能強制要求兩者一致。

診斷腳本

USE master;
GO
SELECT @@SERVERNAME AS [SQL內部名稱];
SELECT SERVERPROPERTY('ServerName') AS [實際伺服器名稱];

若兩者輸出不一致,即為問題所在。

修正步驟

-- 1. 移除舊伺服器名稱
sp_dropserver 'old_server_name';
GO

-- 2. 加入目前電腦名稱為本地伺服器
sp_addserver 'current_computer_name', 'local';
GO

驗證與生效

  1. 重新執行診斷腳本,確認兩者一致
  2. 必須重啟 SQL Server 服務(MSSQLSERVER 或具名實例)
  3. 再次驗證,問題解決

多實例環境注意

若伺服器有多個 SQL Server 實例,每個實例都必須分別執行上述 3 步驟,分別連線到各實例執行。

相關影響範圍

  • 資料庫鏡像端點建立
  • 複寫發布/訂閱配置
  • 連結伺服器建立
  • 分散式交易協調 (MSDTC)
  • AlwaysOn 可用性群組

最佳實務建議

  1. 安裝 SQL Server 前確定最終電腦名稱,避免事後變更
  2. 若必須變更,安裝 SQL Server 前先完成電腦更名與加域
  3. 變更後立即執行 sp_dropserver/sp_addserver 並重啟服務
  4. 建立部署清單檢查項目,防止遺漏
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved