2005-08 余楓
在SQL Server 2000裡設置和使用數據庫復制之前,應先檢查相關的幾台SQL Server服務器下面幾點是否滿足:
1、MSSQLserver和Sqlserveragent服務是否是以域用戶身份啟動並運行的(.\administrator用戶也是可以的)
如果登錄用的是本地系統帳戶local,將不具備網絡功能,會產生以下錯誤:
進程未能連接到Distributor name'
(如果您的服務器已經用了SQL Server全文檢索服務, 請不要修改MSSQLserver和Sqlserveragent服務的local啟動。
會照成全文檢索服務不能用。請換另外一台機器來做SQL Server 2000裡復制中的分發服務器。)
修改服務啟動的登錄用戶,需要重新啟動MSSQLserver和Sqlserveragent服務才能生效。
2、檢查相關的幾台SQL Server服務器是否改過名稱(需要srvid=0的本地機器上srvname和datasource一樣)
在查詢分析器裡執行:
use master
select srvid,srvname,datasource from sysservers
如果沒有srvid=0或者srvid=0(也就是本機器)但srvname和datasource不一樣, 需要按如下方法修改:
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'
修改這項參數,需要重新啟動MSSQLserver和Sqlserveragent服務才能生效。
這樣一來就不會在創建復制的過程中出現18482、18483錯誤了。