WEB开发网
开发学院数据库MSSQL Server 一步步教你配置SQL SERVER合并复制(五)配置Publ... 阅读

一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)

 2008-11-01 10:08:58 来源:WEB开发网   
核心提示: 我们先跳过Identification这块来直接看 Identity Range Management,这个属性块只有当你的表中包含一个自增长的列时才会存在,这里我不要去修改它,一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)(4),而是我想让你理解它是做什么的

我们先跳过Identification这块来直接看 Identity Range Management,这个属性块只有当你的表中包含一个自增长的列时才会存在。这里我不要去修改它,而是我想让你理解它是做什么的。很多时候数据库的表中都会包含一个自增长的列来当做一个唯一的主键,但那里有一个问题就是当服务器将这张表同步给很多设备时,当它们都在表里新增一个列的时候,它们会在表里添加相同的主键但内容却是不一样的。当它们把这些修改提交回服务器时,这时就会发生主键冲突,于是就只有一个设备的修改能提交到服务器,其他设备的修改都不能提交到服务器来。SQL SERVER解决这个问题的方法是给每个订阅者1000个自增长列的的范围,打个比方一个设备的自增长的ID范围是1~1000,另外一个就可能是1001~2000.这样的话,我们的主键就不会再起冲突了。这样的话你就不用去担心主键会冲突了,当然了,你也可以修改1000的数值让它变得更大或者更小来满足你的需求。

接下来来看看Merging Changes这个属性块,第一个属性你可以看到的是Tracking level,默认的系统会最优化地帮你选择Row-level tracking这个值,这表明然后有两个订阅者在相同的一行的任何一个字段同时

做了改变,Merge Agent这个冲突管理器就会自动启动,两个订阅者中只有一个订阅者可以将修改更新至服务器数据库,另外的一个订阅者的修改则自动被加入了冲突表。如果选择Column-level tracking这个值的话,它异味者如果两个订阅者修改的是同一行的不同列,那它们的修改都会被提交到供Publisher,这样的作用就是减少数据冲突。从性能上讲,Row-level tracking的性能要好过Column-level当你的表中不包含image、ntext、binary、or nvarchar(max)等类型的字段。

当我们点击Resolver这个选项栏,或许你很惊讶,因为你并没有看到很多的内容,这个地方是选择一个管理冲突的工具,我没有选择自定义的冲突管理工具,因为我觉得默认的冲突管理器已经能够很好地解决我们的问题,选择Cancel然后点击Next.

一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)

Article lssues这个页面提示你一个标识着唯一列的项将被加入到Publisher中的表。点击Next.

一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)

(译者注:下一篇将讲述如何让特定的人同步特定的表)

上一页  1 2 3 4 

Tags:步步 配置 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接