[解决方案]sql server复制需要有实际的服务器名称才能连接到服务器
在配置數據同步的時候,要求相互同步的兩臺機器的數據庫必須通過默認實例名稱進行連接。如果你的默認實例已經刪掉了,在當前實例上進行新建發布操作時候,會提示你:“由于未在SqlServer的此實例上安裝復制組件,Microsoft SQL server 無法訪問這些組件,請參閱SQL Server……”
注意下面還有一個附加的提示,它的意思就是說默認實例名和當前的實例名稱不一致。其實這個才是導致不能復制的主要原因。把它解決了,你就可以進行復制了。
產生的原因是因為安裝完SqlServer之后,又修改了計算機的名稱。
解決“SqlServer復制需要有實際的服務器名稱才能連接到服務器。不支持通過服務器別名、Ip地址或任何其他備用名稱進行連接。”
??
一:首先看一下,你的默認實例名稱和當前的實例名稱是否一致,我們在SqlServer2005 Management Studio中新建查詢
可以看到查詢出來兩個不同的結果,說明當先運行的實例不是默認實例。可以通過以下方法將當前運行的實例改為默認實例。
?解決方法一:
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 后修改過機器名稱,運行下面兩條語句既可以看出來:
如果這兩個結果不一致,說明機器改過名字,在配置復制的時候就會報上面的錯誤。
要修復此問題,執行下面的語句,完成后重新啟動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')一切正常,復制也能用了!
?
?
?
?
轉載于:https://www.cnblogs.com/ShenJH/archive/2013/01/15/2860564.html
總結
以上是生活随笔為你收集整理的[解决方案]sql server复制需要有实际的服务器名称才能连接到服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: github 使用总结-----转
- 下一篇: [转载]一个Spectral Clust