问题概述
在SQL Server数据库中设置发布订阅功能时出现“SQL Server复制需要实际的服务器名称才能连接服务器问题”。具体如图所示:
排查过程
1, 首先通过查看数据库注册服务器名与实际服务器名是否相符。
select @@servername;
select * from sys.sysservers;
2,如果数据库服务器名称是别名,通过修改操作系统hosts文件的格式;
IP地址 服务器名
10.10.10.101 servername1
3,如果数据库注册名与实际服务名称不符,,建议首先修改数据库中被注册的服务器名称;
sp_dropserver 'servername' sp_addserver 'new servername', 'LOCAL'(注:如果select @@servername 结果为NULL时,使用sp_addserver 'new servername', 'LOCAL',NULL;)
4,修改完以上操作,重启数据库服务,然后在尝试是否解决此问题;否则通过sa用户登录到数据库中查看 数据库实例下用户 servername/username 对应的权限是否是否合适,如果有问题分配相应的角色权限即可。
总结
针对以上问题处理,不建议直接在生产环境中操作,为了不影响正常业务运行,建议搭建相应的测试环境中测试没问题后,再次在生产环境中操作,并且操作建议在业务空闲时间段进行,希望能帮助到遇到此类问题的朋友。