主机更名带来的问题
解决主机更名导致的不一致问题
SELECT @@ServerName,SERVERPROPERTY('ServerName')
IF @@SERVERNAME <> SERVERPROPERTY('ServerName')
BEGIN
DECLARE @srvname sysname
SET @srvname = @@SERVERNAME
EXEC sp_dropserver @server = @srvname
SET @srvname = CAST( SERVERPROPERTY('ServerName') as sysname)
EXEC sp_addserver @server = @srvname , @local = 'LOCAL'
END
注意,必须重启 SQL Server 服务才会生效。
遇到的问题
- 问题1:执行
exec sp_dropserver 'oldserver'报如下错误:
/* 消息 15190,级别 16,状态 1,过程 sp_dropserver,第 56 行
仍有对服务器 'xxxx' 的远程登录或链接登录 */
- 解决1:删掉 [安全性\登录名] 下对老机器仍有关联的登录名
use master
DROP LOGIN distributor_admin
- 问题2:执行
exec sp_dropserver 'oldserver'报如下错误:
/* 消息 20582,级别 16,状态 1,过程 sp_MSrepl_check_server,第 32 行
无法删除服务器 'xxxx',因为该服务器用作复制过程中的发布服务器 */
- 解决2:禁用分发和发布
use master
exec sp_dropdistributor @no_checks = 1