[解決方案]sql server復制需要有實際的服務器名稱才能連接到服務器


  在配置數據同步的時候,要求相互同步的兩台機器的數據庫必須通過默認實例名稱進行連接。如果你的默認實例已經刪掉了,在當前實例上進行新建發布操作時候,會提示你:“由於未在SqlServer的此實例上安裝復制組件,Microsoft SQL server 無法訪問這些組件,請參閱SQL Server……”

  注意下面還有一個附加的提示,它的意思就是說默認實例名和當前的實例名稱不一致。其實這個才是導致不能復制的主要原因。把它解決了,你就可以進行復制了。

  產生的原因是因為安裝完SqlServer之后,又修改了計算機的名稱。

解決“SqlServer復制需要有實際的服務器名稱才能連接到服務器。不支持通過服務器別名、Ip地址或任何其他備用名稱進行連接。”
  
  一:首先看一下,你的默認實例名稱和當前的實例名稱是否一致,我們在SqlServer2005 Management Studio中新建查詢

SELECT @@SERVERNAME,SERVERPROPERTY('SERVERNAME')

可以看到查詢出來兩個不同的結果,說明當先運行的實例不是默認實例。可以通過以下方法將當前運行的實例改為默認實例。

 解決方法一:

USE master   
GO
-- 設置兩個變量   
DECLARE @serverproperty_servername varchar(100),@servername varchar(100)   
-- 取得Windows NT 服務器和與指定的 SQL Server 實例關聯的實例信息   
SELECT @serverproperty_servername=CONVERT(varchar(100), SERVERPROPERTY('ServerName'))   
-- 返回運行 Microsoft SQL Server 的本地服務器名稱   
SELECT @servername=CONVERT(varchar(100), @@SERVERNAME)   
-- 顯示獲取的這兩個參數   
select @serverproperty_servername,@servername
--如果@serverproperty_servername和@servername不同(因為你改過計算機名字),再運行下面的   
--刪除錯誤的服務器名   
EXEC sp_dropserver @server=@servername
--添加正確的服務器名   
EXEC sp_addserver @server=@serverproperty_servername, @local='local'

解決方法二:

  由於需要需要配置一個發布訂閱,可是一直報告:" sql server 復制需要有實際的服務器名稱才能連接到服務器,不支持通過別名、ip地址或其他任何備用名稱進行連接。請指定實際的服務器名稱“xxxx”(Replication Utlities)。"
       經過一番分析發現是在安裝完sql server 后修改過機器名稱,運行下面兩條語句既可以看出來:

use master
go
select @@servernameselect serverproperty('servername')

  如果這兩個結果不一致,說明機器改過名字,在配置復制的時候就會報上面的錯誤。

  要修復此問題,執行下面的語句,完成后重新啟動SQL服務   

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')

一切正常,復制也能用了!

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM