MSSQL自動同步設置方法
2020-10-29 21:55:02
供稿:網友
 
						MSSQL自動同步 
這里以117和75為例說明:117發布&分發服務器、75訂閱服務器 
一、準備工作: 
1、117&75上建立sqlagt用戶,隸屬于administrators組,用于啟動Sqlserveragent服務(開機自啟動),本地系統帳戶local,將不具備網絡功能,會產生錯誤 
2、117/75上企業管理器中的SQL注冊必須為本機名稱,不能為local或ip 
3、在117上建立75的SQL注冊 
4、117/75上如果安裝了MSSQL后更改過機器名,需要修改MSSQL注冊主機名: 
4.1 檢查有無sql注冊問題 
use master 
select srvid,srvname,datasource from sysservers 
如果srvid字段=0,servname與datasource的值不一樣,則需要運行下步 
4.2 修改注冊名稱 
USE master 
GO 
DECLARE @serverproperty_servername varchar(100), 
@servername varchar(100) 
SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName')) 
SELECT @servername = CONVERT(varchar(100), @@SERVERNAME) 
select @serverproperty_servername,@servername 
EXEC sp_dropserver @server=@servername 
EXEC sp_addserver @server=@serverproperty_servername, @local='local' 
4.3 再次運行3.1,servname與datasource的值會相同 
5、系統需要的擴展存儲過程是否存在(如果不存在,需要恢復): 
sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll' 
go 
sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll' 
go 
sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll' 
go 
sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 
go 
6、同步是通過內網,內網不能關閉1433端口,不能關閉文件共享,不能刪除默認共享如D$ E$ 
二、同步配置 
117角色:發布、分發服務器 117主機名稱為“117” 
75角色:訂閱服務器 75服務器名稱“75” 
1、企業管理器-->選中117節點 
工具-->復制-->配置發布、訂閱服務器和分發 
下一步-->使"117"成為它自己的分發服務器-->快照文件夾(//117/d$/mssql/ReplData)-->是-->否,使用下列默認設置-->完成 
完成后會提示 成功的將"117"啟用為"117"的分發服務器 
完成后會在117建立distribution庫,會看到復制監視器項 
2、工具-->復制-->創建和管理發布 例如同步KBOX 
選中要進行同步的數據庫-->點擊創建發布-->下一步-->選中要同步的數據庫-->下一步-->事務發布-->運行SQLServer2000的服務器--> 
選擇要同步的表(該表的表結構中一定要有主鍵才能被選擇同步)-->下一步-->下一步-->發布名稱(隨意)-->下一步-->完成 
3、在75上建立一個同名的要同步的空數據庫KBOX 
4、在創建和管理發布界面中 
展開已經創建了發布的數據庫KBOX-->選擇該庫下的發布-->再選擇強制新的訂閱-->選擇75-->訂閱數據庫名稱(默認)-->連續地 最短滯后時間--> 
是,初始化架構和數據,勾選啟動快照代理立即開始初始化處理(如75上已經有了要同步的數據庫和表結構,選擇否)-->下一步-->完成 
完成后會提示成功創建訂閱:75 
5、點擊復制監視器,第一次會提示是否希望自動刷新復制監視器,選擇是,勾選不再提示 
6、展開復制監視器,發布服務器-->117-->KBOX:KBOX 
點刷新按鈕可看到75:KBOX狀態為正在運行 
到75上的KBOX庫,可看到表結構、內容都已同步更新完成 
測試在117KBOX庫任意表插入一條數據,在75上會看到同步過來的相同數據 
注:KBOX庫新增表、表結構更改,需要手動刪除并重新強制訂閱