一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)
2008-11-01 10:08:58 来源:WEB开发网我们先跳过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.
Article lssues这个页面提示你一个标识着唯一列的项将被加入到Publisher中的表。点击Next.
(译者注:下一篇将讲述如何让特定的人同步特定的表)
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接