新到一家公司上班,对服务器状况不是很熟悉。昨天Boss让我调查两台服务器是否满足事务复制的条件。
于是直接在服务器上尝试新建发布,结果就出现了标题的错信息:SQL Server 复制需要有实际的服务器名称才能连接到服务器.请指定实际的服务器名称“AAA”。(Replication.Utilities)
心想肯定是服务器改过名字,之前也在群里听说过。
百度上一搜,基本上都是如下的解决方案:
IF SERVERPROPERTY('SERVERNAME') <> @@SERVERNAME BEGIN DECLARE @SERVER SYSNAME SET @SERVER = @@SERVERNAME EXEC SP_DROPSERVER @SERVER = @SERVER SET @SERVER = CAST(SERVERPROPERTY('SERVERNAME') AS SYSNAME) EXEC SP_ADDSERVER @SERVER = @SERVER, @LOCAL = 'LOCAL' END --完成后需要重新启动,以下结果才会相同: USE MASTER GO SELECT @@SERVERNAME SELECT SERVERPROPERTY('SERVERNAME')
可是我的服务器状况是:SERVERPROPERTY('SERVERNAME') 和 @@SERVERNAME的结果都是名字"AAA",而我只能用名字"BBB"登陆...
这个方法不能用于解决我的问题。似乎我进入自己的圈套了。
--------------------------------------------------------------------丑陋的分界线--------------------------------------------------------------------------------
后来发现:
1.我之所以不能用“AAA”登陆,是因为我是远程登陆的,而“AAA”位于IDC机房,跟我不在一个网段,远程桌面连接直接在服务器本地就能用"AAA"登陆了。
2.“BBB”这个名字应该是在DNS上为"AAA"服务器所解析的一个名字。所以远程能连接。
3.复制直接在服务器本地配置即可。(当然用"AAA"登陆)
结果:我根本就无需做任何修改嘛...自己被"BBB"这个DNS解析的名字给骗了。