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系統配置效果圖