現(xiàn)在要確保在第二篇所配置的域用戶擁有訪問這個Publication的權(quán)限,因此我們要把這個用戶加入到SQL SERVER的用戶組并能管理發(fā)布這個Publication.打開我們的SQL SERVER,展開Security文件夾然后右擊Logins選擇New Login...
在Login-New這個頁面中,將第二篇所配置好的SYNCDOMAINsyncuser用戶填入Login name文本框中。
在右邊的Select a page的導(dǎo)航欄中選擇User Mapping,選上ParkSurvey數(shù)據(jù)庫,然后點擊OK。
回到SQL SERVER的資源管理器來,展開Replication和Local Publications文件夾,右擊我們剛剛發(fā)布的Publication=>ParkSurvey:ParkSurveyPublication然后選擇Properties.
在Publication Properties這個頁面中,我們可以看到我們在新建Publication時做的每項選擇,如果你想修改它們,你也可以在這里直接修改它們,而不用在新建一個Publication.
在Select a page導(dǎo)航欄中我們選擇Publication Access List,在右邊就可以顯示擁有權(quán)限建立同步快照的用戶。
點擊Add打開Add Publication Access這個頁面,只有剛剛上面的配置的映射到這個Publication的用戶才會被顯示出來。點擊OK將其加入到列表當(dāng)中來。
回到Publication Properties這個頁面,在Select a page導(dǎo)航頁面中我們選擇Subscription Options,在這里我要你將Limit concurrent processes設(shè)置成True,然后還需要將Maximun concurrent processes屬性值設(shè)置成10.為什么要這么設(shè)置呢?因為假如你擁有成千上萬個訂閱者,當(dāng)他們同時同步數(shù)據(jù)庫服務(wù)器時,服務(wù)器很大的可能會掛掉。當(dāng)我們設(shè)置成如上的值之后,當(dāng)我們的合并復(fù)制的客戶端超過10個的時候,超出的部分將會自動排成一個隊列等待其他訂閱者完成訂閱。當(dāng)然了這個值不一定要設(shè)置成10,您可以測試您的服務(wù)器,慢慢增大同時同步服務(wù)器數(shù)據(jù)庫的訂閱者的數(shù)量,得到一個的平衡點。
在Select a page導(dǎo)航欄的最后一項Data Partitions,當(dāng)訂閱者試圖同步數(shù)據(jù)時,這里會自動列出這些快照信息。當(dāng)訂閱者發(fā)送不同的HOSTNAME的值去同步不同的數(shù)據(jù)時,這些信息將幫助我們改進減少初始數(shù)據(jù)同步時間。
最后我們來看下Select a page上的Filter Rows,在這里我們只創(chuàng)建了一個帶一個參數(shù)過濾的Cities表以及與其通過CityId連接的Parks表,但其實我還有一張Survey表需要這么做,這張表有個特別之處就是我并不想讓訂閱者修改它的數(shù)據(jù),只愿意讓訂閱者同步它的數(shù)據(jù),用過濾條件的話該怎么做呢?
點擊Add按鈕,然后選擇Add Filter...在Add Filter頁面,在下拉框中我們選擇Survey表,在Filter statement文本框中我們輸入過濾條件0=1,這或許是個最簡單的方法去創(chuàng)建一個只供復(fù)制不提供合并的表了。
點擊OK,然后我們就可以將Survey表加入到了Filtered Tables列表中來了,點擊選擇它,你會在Filter的文本框中看到Where 0=1.
到這里為止,我們幾乎遍歷ParkSurveyPublication的每個屬性,我想你一定對它們有了一定的了解當(dāng)你點擊OK按鈕提交所有的更改的時候。當(dāng)你提交的改變被保存時頁面回出現(xiàn)一個提示框問你是否產(chǎn)生一個新的快照,點擊YES.
如果上面的操作未能產(chǎn)生一個新的快照,你可以在ParkSurveyPublication上點擊右鍵選擇View Snapshot Agent Status,這里你可以點擊開始創(chuàng)建快照,也可以點擊Stop結(jié)束創(chuàng)建快照,還可以點擊Monitor來監(jiān)視Publication的運行情況,狀態(tài)欄會實時響應(yīng)點擊這些按鈕后所發(fā)生的動作.
點擊Monitor來啟動Replication Monitor.
這個工具將會顯示Park Survey Publication所顯示的被訂閱情況,從上面的這個界面就可以看得出這個Publication被訂閱的次數(shù)(一行代表一個訂閱),還可以看出訂閱者同步的方式,同步所花費的時間等。也只有合并復(fù)制才有提供功能這么豐富的工具,在其他的用RDA,Web Service,DataSet等。
檢查是否已建立Publication
如果你已經(jīng)成功建立Publication,你將會在你發(fā)布復(fù)制的數(shù)據(jù)庫看到下面這些表,這里例子中是 ParkSurvey|Tables|System Tables:
•MSmerge_contents
•MSmerge_current_partition_mappings
•MSmerge_generation_partition_mappings
•MSmerge_genhistory
•MSmerge_past_partition_mappings
•MSmerge_tombstone
•MSmerge_indentity_range(如果你有使用自動增長列的情況下)
•MSmerge_conflicts_info
你可以手動rebulid這些表的索引,右鍵單擊Indexes,選擇Rebuild All,然后點擊OK,我的建議是一周執(zhí)行這種操作一次,這樣子的話,你可以新建一個SQL SERVER Job來執(zhí)行這項操作。
到此為止,如果你已經(jīng)配置上了SQL SERVER Mobile Tools,你就可以使用這個復(fù)制了。
在Login-New這個頁面中,將第二篇所配置好的SYNCDOMAINsyncuser用戶填入Login name文本框中。
在右邊的Select a page的導(dǎo)航欄中選擇User Mapping,選上ParkSurvey數(shù)據(jù)庫,然后點擊OK。
回到SQL SERVER的資源管理器來,展開Replication和Local Publications文件夾,右擊我們剛剛發(fā)布的Publication=>ParkSurvey:ParkSurveyPublication然后選擇Properties.
在Publication Properties這個頁面中,我們可以看到我們在新建Publication時做的每項選擇,如果你想修改它們,你也可以在這里直接修改它們,而不用在新建一個Publication.
在Select a page導(dǎo)航欄中我們選擇Publication Access List,在右邊就可以顯示擁有權(quán)限建立同步快照的用戶。
點擊Add打開Add Publication Access這個頁面,只有剛剛上面的配置的映射到這個Publication的用戶才會被顯示出來。點擊OK將其加入到列表當(dāng)中來。
回到Publication Properties這個頁面,在Select a page導(dǎo)航頁面中我們選擇Subscription Options,在這里我要你將Limit concurrent processes設(shè)置成True,然后還需要將Maximun concurrent processes屬性值設(shè)置成10.為什么要這么設(shè)置呢?因為假如你擁有成千上萬個訂閱者,當(dāng)他們同時同步數(shù)據(jù)庫服務(wù)器時,服務(wù)器很大的可能會掛掉。當(dāng)我們設(shè)置成如上的值之后,當(dāng)我們的合并復(fù)制的客戶端超過10個的時候,超出的部分將會自動排成一個隊列等待其他訂閱者完成訂閱。當(dāng)然了這個值不一定要設(shè)置成10,您可以測試您的服務(wù)器,慢慢增大同時同步服務(wù)器數(shù)據(jù)庫的訂閱者的數(shù)量,得到一個的平衡點。
在Select a page導(dǎo)航欄的最后一項Data Partitions,當(dāng)訂閱者試圖同步數(shù)據(jù)時,這里會自動列出這些快照信息。當(dāng)訂閱者發(fā)送不同的HOSTNAME的值去同步不同的數(shù)據(jù)時,這些信息將幫助我們改進減少初始數(shù)據(jù)同步時間。
最后我們來看下Select a page上的Filter Rows,在這里我們只創(chuàng)建了一個帶一個參數(shù)過濾的Cities表以及與其通過CityId連接的Parks表,但其實我還有一張Survey表需要這么做,這張表有個特別之處就是我并不想讓訂閱者修改它的數(shù)據(jù),只愿意讓訂閱者同步它的數(shù)據(jù),用過濾條件的話該怎么做呢?
點擊Add按鈕,然后選擇Add Filter...在Add Filter頁面,在下拉框中我們選擇Survey表,在Filter statement文本框中我們輸入過濾條件0=1,這或許是個最簡單的方法去創(chuàng)建一個只供復(fù)制不提供合并的表了。
點擊OK,然后我們就可以將Survey表加入到了Filtered Tables列表中來了,點擊選擇它,你會在Filter的文本框中看到Where 0=1.
到這里為止,我們幾乎遍歷ParkSurveyPublication的每個屬性,我想你一定對它們有了一定的了解當(dāng)你點擊OK按鈕提交所有的更改的時候。當(dāng)你提交的改變被保存時頁面回出現(xiàn)一個提示框問你是否產(chǎn)生一個新的快照,點擊YES.
如果上面的操作未能產(chǎn)生一個新的快照,你可以在ParkSurveyPublication上點擊右鍵選擇View Snapshot Agent Status,這里你可以點擊開始創(chuàng)建快照,也可以點擊Stop結(jié)束創(chuàng)建快照,還可以點擊Monitor來監(jiān)視Publication的運行情況,狀態(tài)欄會實時響應(yīng)點擊這些按鈕后所發(fā)生的動作.
點擊Monitor來啟動Replication Monitor.
這個工具將會顯示Park Survey Publication所顯示的被訂閱情況,從上面的這個界面就可以看得出這個Publication被訂閱的次數(shù)(一行代表一個訂閱),還可以看出訂閱者同步的方式,同步所花費的時間等。也只有合并復(fù)制才有提供功能這么豐富的工具,在其他的用RDA,Web Service,DataSet等。
檢查是否已建立Publication
如果你已經(jīng)成功建立Publication,你將會在你發(fā)布復(fù)制的數(shù)據(jù)庫看到下面這些表,這里例子中是 ParkSurvey|Tables|System Tables:
•MSmerge_contents
•MSmerge_current_partition_mappings
•MSmerge_generation_partition_mappings
•MSmerge_genhistory
•MSmerge_past_partition_mappings
•MSmerge_tombstone
•MSmerge_indentity_range(如果你有使用自動增長列的情況下)
•MSmerge_conflicts_info
你可以手動rebulid這些表的索引,右鍵單擊Indexes,選擇Rebuild All,然后點擊OK,我的建議是一周執(zhí)行這種操作一次,這樣子的話,你可以新建一個SQL SERVER Job來執(zhí)行這項操作。
到此為止,如果你已經(jīng)配置上了SQL SERVER Mobile Tools,你就可以使用這個復(fù)制了。