SQL Server 复制需要有实际的服务器名称才能连接到服务器.请指定实际的服务器名称

时间:2021-04-11 00:34:29

新到一家公司上班,对服务器状况不是很熟悉。昨天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解析的名字给骗了。