一:【準(zhǔn)備條件】
<1>軟件準(zhǔn)備條件
機(jī)器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作為發(fā)布服務(wù)器)
機(jī)器B端:Sqlserver2005 Management Studio Express + WinXP(作為訂閱服務(wù)器)
(可以用別的,不過訂閱服務(wù)器版本不得高于發(fā)布服務(wù)器版本)
<2>數(shù)據(jù)庫復(fù)制準(zhǔn)備條件
1. 所有被同步的數(shù)據(jù)表盡量要用主鍵,,如果沒有主鍵也沒有關(guān)系,,SqlServer會提示為表自動生成主鍵,,如圖
2. 發(fā)布服務(wù)器、分發(fā)服務(wù)器和訂閱服務(wù)器必須使用計算機(jī)名稱來進(jìn)行SQLSERVER服務(wù)器的注冊,。
3. SQLSERVER必需啟動代理服務(wù),,且代理服務(wù)必須以本地計算機(jī)的賬號運行。 不得使用IP地址以及別名進(jìn)行注冊,,比如LOCAL, “.”以及LOCALHOST等,。
如果非同一網(wǎng)段或者遠(yuǎn)程服務(wù)器,或者只能用IP,不能用計算機(jī)名的,為對方注冊服務(wù)器別名,。將其對應(yīng)關(guān)系加到本地系統(tǒng)網(wǎng)絡(luò)配置文件中,。文件的具體位置在C:\Windows\system32\drivers\etc\hosts
配置方式: 用記事本打開hosts文件,,在文件的最下方添加IP地址和主機(jī)名的對應(yīng)關(guān)系。如圖:
4.SqlServer 必需啟動代理服務(wù),,且代理服務(wù)必需以本地計算機(jī)的賬號運行,。
5.發(fā)布服務(wù)器和訂閱服務(wù)器都要設(shè)置MSDTC ,允許網(wǎng)絡(luò)訪問控制面板--->管理工具--->組件服務(wù)--->計算機(jī)--->我的電腦(Win7繼續(xù)找 -->Distributed Transaction Coordinator--->本地DTC),,右鍵屬性,,找到MSDTC選項卡,點擊安全設(shè)置,,按如下設(shè)置即可
)
確定,,重啟MSDTC服務(wù)。
二:準(zhǔn)備工作的詳細(xì)操作步驟
1,、在發(fā)布服務(wù)器上,新建一個共享目錄,作為發(fā)布的快照文件的存放目錄,,為共享目錄添加EveryOne的完全控制權(quán)限。
2,、確定發(fā)布服務(wù)器上用來發(fā)布的數(shù)據(jù)庫和訂閱服務(wù)器的用來訂閱的數(shù)據(jù)庫結(jié)構(gòu)要保持一致,或者訂閱服務(wù)器新建一個空數(shù)據(jù)庫(不創(chuàng)建表),。
3,、將發(fā)布端和訂閱端的數(shù)據(jù)庫所有者均設(shè)置為sa。
4,、啟動SQL代理(SQLSERVERAGENT)服務(wù),。
5、開啟SQL Server 2005的網(wǎng)絡(luò)協(xié)議TCP/IP和管道命名協(xié)議并重啟網(wǎng)絡(luò)服務(wù),。
6,、設(shè)置SQL SERVER 身份驗證為混合驗證SQL Server和WINDOWS(發(fā)布、訂閱服務(wù)器均設(shè)置)
7,、發(fā)布服務(wù)器和訂閱服務(wù)器互相注冊
步驟如下:視圖---à單擊已注冊服務(wù)器---à右擊 數(shù)據(jù)庫引擎---à新建服務(wù)器注冊----à填寫要注冊的遠(yuǎn)程服務(wù)器名稱----à身份驗證選“SQL Server驗證“----à用戶名(sa) 密碼,,對于只能用IP,不能用計算機(jī)名的,,為其注冊服務(wù)器別名,,見上。
準(zhǔn)備工作完成,,接下來我們進(jìn)行發(fā)布和訂閱的操作
二,、【發(fā)布和訂閱】
一:發(fā)布
(1)首先我們在發(fā)布服務(wù)器上(winserver2003)打開SqlServer2005 Management Studio (企業(yè)版)。在“對象資源管理器”中找到復(fù)制節(jié)點,,右鍵--->新建發(fā)布(注:如果你的SqlServer是express版本的話,,是沒有發(fā)布這一功能的,只有訂閱功能!)
(2)接下來選擇要發(fā)布的數(shù)據(jù)庫,,下一步,,選擇“發(fā)布類型”,,我這里選擇“合并發(fā)布”
(3)下一步,選擇訂閱服務(wù)器類型,,選擇“SqlServer2005”,,下一步,選擇發(fā)布項目,,我們選擇表,、視圖、存儲過程等,。
(4)如果你的表沒有主鍵,,SqlServer會提示你,為沒有主鍵的表自動添加主鍵,。
(5)接下來設(shè)置作業(yè)計劃,,為了方便看到測試效果,我們設(shè)置“每隔一分鐘”執(zhí)行一次作業(yè),。
(6)設(shè)置快照代理安全性,,連接到發(fā)布服務(wù)器時,用模擬進(jìn)程即可,。
(7) 為發(fā)布起個名字,,完成發(fā)布
二:訂閱
接下來,我們配置訂閱服務(wù)器,。訂閱服務(wù)器是winxp系統(tǒng),,SqlServer版本為SqlServer 2005 Manager Studio Express ,只支持訂閱。
(1)同發(fā)布,,新建訂閱
(2)選擇發(fā)布服務(wù)器,,找到我們剛剛新建的發(fā)布“Test3Copy” ,下一步
(3)選擇運行代理的位置,,根據(jù)需求選擇是“推送”還是“請求”!
(4)接下來同發(fā)布類似,,這里就不贅述了,訂閱執(zhí)行成功,,在訂閱數(shù)據(jù)庫和發(fā)布數(shù)據(jù)庫的表中都會多出一個字段來,,SqlServer自動生成的!標(biāo)志訂閱成功。
三,、【查看同步狀態(tài)】
查看同步狀態(tài),,只能在發(fā)布服務(wù)器上查看。具體操作步驟:(下列圖中的發(fā)布跟上面提到的不是同一個發(fā)布)
(1)打開“復(fù)制”——>右鍵發(fā)布名稱——>“啟用復(fù)制監(jiān)視器”
(2)展開“我的發(fā)布服務(wù)器”——>發(fā)布服務(wù)器機(jī)器名稱-——>發(fā)布名稱,。在右側(cè)會看到訂閱服務(wù)器的狀態(tài)“正在同步”,。右鍵,選擇“屬性”可以打開詳細(xì)說明。
(3)打開屬性后,,會彈出同步歷史記錄的對話框,。這里有插入、更新,、刪除等操作的記錄,。
當(dāng)然這篇文章里還有許多細(xì)節(jié)可能說的不那么清楚,難免也會出現(xiàn)一些問題,,我會在隨后的下篇博客中寫一下遇到的問題及解決方案,。大家有什么問題,歡迎相互交流