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

SQL Server 2008 修改 @@SERVERNAME 完整指南:含複寫環境特殊處理

     編輯:關於SqlServer

伺服器名稱變更(如主機改名)後,@@SERVERNAME 仍保留舊值,需手動同步。標準流程兩步驟,但複寫環境需額外處理分發者清理。

標準修改流程

-- 1. 刪除舊伺服器登錄
EXEC sp_dropserver @server = 'OLD_SERVER_NAME';

-- 2. 新增新伺服器登錄並標記為本地
EXEC sp_addserver @server = 'NEW_SERVER_NAME', @local = 'LOCAL';

-- 3. 重啟 SQL Server 服務生效

複寫環境特殊處理:分發者阻擋刪除

若執行 sp_dropserver 報錯:
無法刪除伺服器 'OLD_NAME',因為該伺服器用作複寫過程中的分發伺服器

需先移除分發者角色:

EXEC sp_dropdistributor @no_checks = 1, @ignore_distributor = 1;
GO

-- 再執行標準流程
EXEC sp_dropserver @server = 'OLD_SERVER_NAME';
EXEC sp_addserver @server = 'NEW_SERVER_NAME', @local = 'LOCAL';
-- 重啟服務

驗證與輔助查詢

-- 檢視 sys.servers 確認變更
SELECT * FROM sys.servers;

-- 確認 @@SERVERNAME 新值
SELECT @@SERVERNAME;

注意事項

  • 修改前務必備份 master 資料庫
  • 叢集環境需在叢集管理員先修改虛擬伺服器名稱
  • 連結伺服器、作業、維護計畫中硬編碼舊名稱需同步更新
  • 複寫拓撲變更涉及訂閱者/發佈者重新配置,建議維護窗口操作

掌握標準流程與複寫例外處理,確保伺服器身份變更零風險。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved