Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 r2 sqlserver名称更改对生产数据库的影响_Sql Server 2008 R2_Transactional Replication - Fatal编程技术网

Sql server 2008 r2 sqlserver名称更改对生产数据库的影响

Sql server 2008 r2 sqlserver名称更改对生产数据库的影响,sql-server-2008-r2,transactional-replication,Sql Server 2008 R2,Transactional Replication,我正在一个不受信任的域上创建sqlserver之间的复制。但我逐渐意识到,我只能使用服务器名而不是服务器的ip地址。我尝试使用从系统管理员处获得的当前服务器名。但仍然与服务器名连接时仍显示相同的错误: sqlserver replication requires the actual servername to make connection Connection throught a server alias,IP address, any other alternate are not s

我正在一个不受信任的域上创建sqlserver之间的复制。但我逐渐意识到,我只能使用服务器名而不是服务器的ip地址。我尝试使用从系统管理员处获得的当前服务器名。但仍然与服务器名连接时仍显示相同的错误:

sqlserver replication requires the actual servername to make connection 
Connection throught a server alias,IP address, any other alternate are not supported
Specify the actual server name,'WIN-2JQ9ZRN3T'.(Replication.Utitilies).    
我运行了一个脚本来显示我的服务器名称:

Select @@SERVERNAME    
结果是:WIN-2JQ9ZRN3T。这对我来说非常奇怪。我无法使用通过management studio从sysad获得的名称进行连接,但在远程桌面上,我可以使用该名称进行远程连接。
现在,我想使用我在internet上遇到的脚本更新我的服务器名:

sp_dropserver old-server-name
go
sp_addserver real-server-name, LOCAL
go

但我不知道会有什么影响,因为我的前任在同一台服务器上配置了linkserver。请告知

您提出了一个很好的解决方案:您必须相应地更新服务器名称并重新启动SQL server,否则您将无法使用复制

另一方面,请检查复制组件是否已安装,这将节省您重新启动的时间

关于您对链接服务器的担忧,请运行

SP_LINKEDSERVERS
并检查旧服务器名称是否出现在SRV_数据源列中

另一个选项是设置sql server别名:

,结果显示3个链接服务器名称,其中一个具有:WIN-2JQ9ZRPRN3T检查使用此链接服务器的所有存储过程:选择对象名称(对象id),*从syscomments中,如“%WIN-2JQ9ZRPRN3T%”的文本选择对象名称(id),*来自syscomments,其中的文本“%WIN-2JQ9ZRPRN3T%”有效,但没有结果。这意味着不存在存储过程。我认为它使用的服务器名称是正确的,因此您可以继续进行更改。