上一篇:一步步教你配置SQL SERVER合并复制(六)配置Publisher(下)
现在要确保在第二篇所配置的域用户拥有访问这个Publication的权限,因此我们要把这个用户加入到SQL SERVER的用户组并能管理发布这个Publication.打开我们的SQL SERVER,展开Security文件夹然后右击Logins选择New Login...
在Login-New这个页面中,将第二篇所配置好的SYNCDOMAIN\syncuser用户填入Login name文本框中。
在右边的Select a page的导航栏中选择User Mapping,选上ParkSurvey数据库,然后点击OK。
回到SQL SERVER的资源管理器来,展开Replication和Local Publications文件夹,右击我们刚刚发布的Publication=>ParkSurvey:ParkSurveyPublication然后选择Properties.
在Publication Properties这个页面中,我们可以看到我们在新建Publication时做的每项选择,如果你想修改它们,你也可以在这里直接修改它们,而不用在新建一个Publication.
在Select a page导航栏中我们选择Publication Access List,在右边就可以显示拥有权限建立同步快照的用户。
点击Add打开Add Publication Access这个页面,只有刚刚上面的配置的映射到这个Publication的用户才会被显示出来。点击OK将其加入到列表当中来。
回到Publication Properties这个页面,在Select a page导航页面中我们选择Subscription Options,在这里我要你将Limit concurrent processes设置成True,然后还需要将Maximun concurrent processes属性值设置成10.为什么要这么设置呢?因为假如你拥有成千上万个订阅者,当他们同时同步数据库服务器时,服务器很大的可能会挂掉。当我们设置成如上的值之后,当我们的合并复制的客户端超过10个的时候,超出的部分将会自动排成一个队列等待其他订阅者完成订阅。当然了这个值不一定要设置成10,您可以测试您的服务器,慢慢增大同时同步服务器数据库的订阅者的数量,得到一个最佳的平衡点。
在Select a page导航栏的最后一项Data Partitions,当订阅者试图同步数据时,这里会自动列出这些快照信息。当订阅者发送不同的HOSTNAME的值去同步不同的数据时,这些信息将帮助我们改进减少初始数据同步时间。
最后我们来看下Select a page上的Filter Rows,在这里我们只创建了一个带一个参数过滤的Cities表以及与其通过CityId连接的Parks表,但其实我还有一张Survey表需要这么做,这张表有个特别之处就是我并不想让订阅者修改它的数据,只愿意让订阅者同步它的数据,用过滤条件的话该怎么做呢?
点击Add按钮,然后选择Add Filter...在Add Filter页面,在下拉框中我们选择Survey表,在Filter statement文本框中我们输入过滤条件0=1,这或许是个最简单的方法去创建一个只供复制不提供合并的表了。
点击OK,然后我们就可以将Survey表加入到了Filtered Tables列表中来了,点击选择它,你会在Filter的文本框中看到Where 0=1.
到这里为止,我们几乎遍历ParkSurveyPublication的每个属性,我想你一定对它们有了一定的了解当你点击OK按钮提交所有的更改的时候。当你提交的改变被保存时页面回出现一个提示框问你是否产生一个新的快照,点击YES.
如果上面的操作未能产生一个新的快照,你可以在ParkSurveyPublication上点击右键选择View Snapshot Agent Status,这里你可以点击开始创建快照,也可以点击Stop结束创建快照,还可以点击Monitor来监视Publication的运行情况,状态栏会实时响应点击这些按钮后所发生的动作.
点击Monitor来启动Replication Monitor如下图所示.
这个工具将会显示Park Survey Publication所显示的被订阅情况,从上面的这个界面就可以看得出这个Publication被订阅的次数(一行代表一个订阅),还可以看出订阅者同步的方式,同步所花费的时间等。也只有合并复制才有提供功能这么丰富的工具,在其他的用RDA,Web Service,DataSet等构建的系统是找不到这样的工具的。
检查是否已建立Publication
如果你已经成功建立Publication,你将会在你发布复制的数据库看到下面这些表,这里例子中是 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,我的建议是一周执行这种操作一次,这样子的话,你可以新建一个SQL SERVER Job来执行这项操作。
到此为止,如果你已经配置上了SQL SERVER Mobile Tools,你就可以使用这个复制了。祝你愉快,下一篇是.NET Compact Framework是怎么使用这个复制的。
现在要确保在第二篇所配置的域用户拥有访问这个Publication的权限,因此我们要把这个用户加入到SQL SERVER的用户组并能管理发布这个Publication.打开我们的SQL SERVER,展开Security文件夹然后右击Logins选择New Login...
在Login-New这个页面中,将第二篇所配置好的SYNCDOMAIN\syncuser用户填入Login name文本框中。
在右边的Select a page的导航栏中选择User Mapping,选上ParkSurvey数据库,然后点击OK。
回到SQL SERVER的资源管理器来,展开Replication和Local Publications文件夹,右击我们刚刚发布的Publication=>ParkSurvey:ParkSurveyPublication然后选择Properties.
在Publication Properties这个页面中,我们可以看到我们在新建Publication时做的每项选择,如果你想修改它们,你也可以在这里直接修改它们,而不用在新建一个Publication.
在Select a page导航栏中我们选择Publication Access List,在右边就可以显示拥有权限建立同步快照的用户。
点击Add打开Add Publication Access这个页面,只有刚刚上面的配置的映射到这个Publication的用户才会被显示出来。点击OK将其加入到列表当中来。
回到Publication Properties这个页面,在Select a page导航页面中我们选择Subscription Options,在这里我要你将Limit concurrent processes设置成True,然后还需要将Maximun concurrent processes属性值设置成10.为什么要这么设置呢?因为假如你拥有成千上万个订阅者,当他们同时同步数据库服务器时,服务器很大的可能会挂掉。当我们设置成如上的值之后,当我们的合并复制的客户端超过10个的时候,超出的部分将会自动排成一个队列等待其他订阅者完成订阅。当然了这个值不一定要设置成10,您可以测试您的服务器,慢慢增大同时同步服务器数据库的订阅者的数量,得到一个最佳的平衡点。
在Select a page导航栏的最后一项Data Partitions,当订阅者试图同步数据时,这里会自动列出这些快照信息。当订阅者发送不同的HOSTNAME的值去同步不同的数据时,这些信息将帮助我们改进减少初始数据同步时间。
最后我们来看下Select a page上的Filter Rows,在这里我们只创建了一个带一个参数过滤的Cities表以及与其通过CityId连接的Parks表,但其实我还有一张Survey表需要这么做,这张表有个特别之处就是我并不想让订阅者修改它的数据,只愿意让订阅者同步它的数据,用过滤条件的话该怎么做呢?
点击Add按钮,然后选择Add Filter...在Add Filter页面,在下拉框中我们选择Survey表,在Filter statement文本框中我们输入过滤条件0=1,这或许是个最简单的方法去创建一个只供复制不提供合并的表了。
点击OK,然后我们就可以将Survey表加入到了Filtered Tables列表中来了,点击选择它,你会在Filter的文本框中看到Where 0=1.
到这里为止,我们几乎遍历ParkSurveyPublication的每个属性,我想你一定对它们有了一定的了解当你点击OK按钮提交所有的更改的时候。当你提交的改变被保存时页面回出现一个提示框问你是否产生一个新的快照,点击YES.
如果上面的操作未能产生一个新的快照,你可以在ParkSurveyPublication上点击右键选择View Snapshot Agent Status,这里你可以点击开始创建快照,也可以点击Stop结束创建快照,还可以点击Monitor来监视Publication的运行情况,状态栏会实时响应点击这些按钮后所发生的动作.
点击Monitor来启动Replication Monitor如下图所示.
这个工具将会显示Park Survey Publication所显示的被订阅情况,从上面的这个界面就可以看得出这个Publication被订阅的次数(一行代表一个订阅),还可以看出订阅者同步的方式,同步所花费的时间等。也只有合并复制才有提供功能这么丰富的工具,在其他的用RDA,Web Service,DataSet等构建的系统是找不到这样的工具的。
检查是否已建立Publication
如果你已经成功建立Publication,你将会在你发布复制的数据库看到下面这些表,这里例子中是 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,我的建议是一周执行这种操作一次,这样子的话,你可以新建一个SQL SERVER Job来执行这项操作。
到此为止,如果你已经配置上了SQL SERVER Mobile Tools,你就可以使用这个复制了。祝你愉快,下一篇是.NET Compact Framework是怎么使用这个复制的。