1. 程式人生 > >SQL Server資料庫同步問題分享(三)—建立訂閱

SQL Server資料庫同步問題分享(三)—建立訂閱

(一) 修改FTP連線

在資料同步的時候,釋出伺服器需要生成資料快照,儲存在本地一個資料夾中。這個當然沒有任何問題,但是在訂閱伺服器需要能夠讀取這個資料夾中的快照檔案包。

 在同一個網段內,我們使用共享資料夾的確可以讀取到這些檔案,如果是公網和內網之間的同步,是公網非一個網段同步怎麼辦,我們這裡可以使用FTP來連線下來

 

      選擇本地釋出右鍵屬性:

 

   選擇允許訂閱伺服器使用FTP下載快照檔案。這裡使用ftp就可以很好的解決非同一網段讀取快照檔案的問題。

上面FTP的相關資訊可以根據自己的需要設定,並且這裡一定要注意FTP根資料夾開始的路徑一定要指向快照生成的位置,填寫路徑比如”/ftp/”. 應用確定之後會提升是否要重新生成快照檔案,這裡重新生成一次就好了,然後到客戶機使用FTP客戶端下載一次看是否可以,當然同步的時候不是使用客戶端下載。

 

FTP服務端很多,在釋出伺服器上新建FTP站點的方式很多,Windows2003有自帶的ftp服務,也可以使用Server_U,總之要能夠下載快照檔案就可以。

 

(二)  檢視釋出程式執行狀況

 

如果資料很大,這裡生成的快照可能會很慢的,點選監視可以檢視具體執行狀況

在這裡面可以看到執行的狀況,如果任何一個釋出出現檔案,上面都會顯示警告的

 

(三)  新建訂閱

          選擇釋出伺服器,即新建釋出的那臺機器

 

(四) 選擇訂閱內容

 

 

(五)  分發代理伺服器選擇

 

 這裡也可以選擇多個訂閱伺服器,上面已經解釋過釋出訂閱的一個構造,訂閱伺服器就好比報刊的讀者,某一個發行報刊可以有多個讀者

 

(六)  分發代理安全性設定

 

 選擇在windows賬戶下執行,使用者名稱和密碼填寫釋出伺服器的使用者名稱和密碼

 

連線到分發伺服器使用SQL Server登入名:這裡填寫釋出伺服器,也就是上面設定的那臺機器的。設定好之後下一步下一步完成就可以了

 

 

 

 

(七)  單個使用者問題

 

出現這個問題,大家很多人都應該遇到過。解決辦法:
use master
go
declare @SQL varchar(max)
set @SQL=”
select @[email protected]+’;kill ‘+RTRIM(spid)
from master..sysprocesses
where dbid=DB_ID(‘DBNAME’)
exec (@SQL)
go

alter database  DBNAME  set multi_user

 

 

(八)  無法開啟明確指定的資料庫

 

資料庫日誌中顯示,服務開啟明確的資料庫,這裡就要檢查資料訪問許可權是否足夠。
當然還有一種情況

 

如果出現這個問題嘗試關閉這個服務試試!不能確保一定是這個問題,但是這個服務也能夠引起這樣的問題

 

(九)  程序無法衝FTP站點下載檔案

 

這個問題遇到的太多了,出現這種問題很多,下載檔案過大下載中斷,但是本人做這個同步的時候因為涉及到多臺機器,有些機器是正常執行有些機器出現這個問題,在使用萬網的機器的時候就會有這樣一個問題,花費了很長時間這是萬網對埠禁用的問題

 

 (十) 分散式事務

上面使用事務複製,多臺機器之間建立事務關係,這應該屬於分散式事務,所以在windows上必須開啟相關服務!

 

這個服務需要開啟。

還有MSDTC也要開啟相關設定。在命令列輸入dcomcnfg 命令,我的電腦à MSDTCà安全配置

 

 

以上是windows2003 上面的配置圖

 

這個是win7系統配置效果圖