[翻译]一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)
(译者注:本篇内容较多也是合并复制最重要的一个环节之一,因此配置Publisher将分成两个章节来翻译)
当 SQL SERVER Distributor配置完成后就可以全力去配置 SQL SERVER PublisherPublisher是提供数据供设备同步复制的数据库,我们必须实现它。首先还是打开你的SQL SERVER,在资源管理器这个窗口,展开Replication这个文件夹,右 击Local Publications文件夹,然后选择 New Publication.
第一个界面还是向导界面,啥都不说了,直接点Next.
在Distributor这个界面,是选择一个服务器当作Distributor,第一个按钮是选择本地刚刚发布的Distributor,第二个按钮是选择其他服务器的,我们选择第二个,并单击Add.
弹出来的页面会指导你去连接一个SQL SERVER 服务器,我们选择上一篇刚刚配置的SYNCIDSTRIBUTOR然后点击Connect.
然后就会在刚刚选择的第二个按钮的框框下看到刚刚加进来的SYNCDISTRIBUTOR了,我们选择它并点击Next.
在Administrative Password这个界面,这个密码是用于远程的Distributor与本地的你所建立的Publisher之间的验证,我们在密码跟确认密码处输入P@ssword,然后点击Next.
在Publication Database这个界面,我们选择ParkSurvey数据库用于发布,然后点击Next.
在Publication Type这个界面,因为我们是用于跟SQL Mobile之间的同步,所以我们选择Merge Publication然后点击Next.
在Subscriber Types这个界面,我们要指定一种数据库我们需要同发布数据库同步的,这里我们选择SQL Server 2005 Compact Edition然后点击Next.
在Articles 这个界面显示的是发布的数据库要跟SQL SERVER Compact同步的,这里你将会看到列出来的供发布的表、存储过程、还有用户自定义的函数,但 是只有表才可以与SQL SERVER Compact进行同步。如果你不想把整张表都发布出去供人家复制的话,你还可以筛选一些字段,这样可以减小快照 跟SQL SERVER Compact的大小,当然一些敏感的数据也都得以保护了。
当 你单独选择一张表的时候你会发现右边出现了一个复选框Highlighted table is download only.如果你选择这个复选框的话 那就意味着这张同步到设备的数据库的数据将不会得到跟踪,这样能大大减小服务器跟设备数据库的空间。但这也就是表示订阅者不会改变这张表的数据,这样的前 提当然是订阅者不会是增加或删除或更新这张表的记录。这里我们选择Cities和Parks这两张表,将它们都标识上 Highlighted table is download only,但Survey不用这样子.然后我们选择一张表点击 Article Properties.
在这里你可以设置表的一些全局属性,下面就是这张表的所有属性。
(译者注:这里是合并复制中比较重要的一部分,仔细看,你会有收获的)
仔细地看这张属性表你会发现你有五个主要的部分。第一个 部分是Copy Objects and Settings to Subscriber,这里主要是设备从服务器复制表时是否复制 主键、外键及关联、索引、触发器等等。这里最好都是用默认值,因为系统已经为你设置好了一切。
在第二个 Destination Object的属性列表中,点击 Syncchronization direction这个属性,有三个值供我们选择一个是 Bidirectional,一个是Download- only to Subscriber,prohibit Subscriber changes,第三个值是Download-only to Subscriber,allow Subscriber changes。 第一个值是指服务器端会跟踪同步上来的这张表并允许设备端修改、更新、添加同步上来的这张表,第二个值是指服务器端不会跟踪同步上来的这张表,并不允许设 备端对这张表做任何改变,第三个值是指服务器端不会跟踪同步上来的这张表但允许设备端对它进行更改。
我们先跳过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合并复制(六)配置Publisher(下)
转载于:https://www.cnblogs.com/JustDI/archive/2008/04/03/1135613.html
[翻译]一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)相关推荐
- [翻译]一步步教你配置SQL SERVER合并复制(四)提高Distributor的安全性
上一篇:一步步教你配置SQL SERVER合并复制(三)配置Distributor 为了让已订阅数据库的设备能够更好地去联系Distributor,你必须在数据库中添加一个域用户,让设备能够通过这个用 ...
- Linux上SQL Server合并复制
Replication is a process to manage multiple copies of the same data at a different node. Microsoft S ...
- sql server 快照_在SQL Server合并复制中应用快照时出现外键问题
sql server 快照 This article will review specific SQL Server merge replication issues related to forei ...
- SQL Server 合并复制遇到identity range check报错的解决
最近帮一个客户搭建跨洋的合并复制,由于数据库非常大,跨洋网络条件不稳定,因此只能通过备份初始化,在初始化完成后向海外订阅端插入数据时发现报出如下错误: Msg 548, Level 16, State ...
- 配置SQL Server数据库连接
"Web.config"文件中提供的设置可以应用于整个应用程序,包括应用程序的子目录.在配置文件"Web.config"中,所有的配置信息都位于<conf ...
- sql server合并行_合并SQL Server复制参数化的行筛选器问题
sql server合并行 In this article we will discuss about SQL Server Merge Replication Parameterized row f ...
- 一步步教你Hadoop多节点集群安装配置
一步步教你Hadoop多节点集群安装配置 1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统HDFS(Hado ...
- 配置sql server 2000以允许远程访问
配置sql server 2000以允许远程访问 适合故障: 1. 用sql企业管理器能访问sql server 2000(因为它是采用命名管道(named pipes)方式进行方式),但用ado.n ...
- 配置SQL Server AlwaysOn高可用性组
In this article, we will learn the step by step configuration of SQL Server AlwaysOn High availabili ...
最新文章
- Windows内核对象管理
- asp.net三层结构
- jQuery常用技巧
- vc 国际化的资源文件处理
- 60条知乎神回复,大部分都比较有道理
- 嵊州职教中心计算机多少分数,嵊州中考考试分数线
- 【并查集】【最小生成树】【贪心】给水(jzoj 2015)
- IntelliTrace 调试、定位异常
- 纵坐标是横的还是竖的_纠结地板是横铺还是竖铺好?别瞎折腾了,迎着光铺才是最正确的!...
- 用sum函数求三个数和C语言,C语言用函数写两数之和.doc
- 23种设计模式(5)-适配器模式
- 单片机串口控制树莓派3B播放HDMI视频,omxplayer,
- [Mongodb]安装与启动
- EndNote X9导入论文投稿的期刊参考文献格式
- R语言查找指定值的位置(行列)1
- UT000020: Connection terminated as request was larger than 10485760
- not discrete but [0, 1]. Specify a discrete sample time in
- 影视后期制作学习(AE)(时钟动画制作)
- 数据结构学习之双向链表结构
- ECharts-旭日图(Sunburst)带时间轴
热门文章
- 数据库知识点补充::约束
- flutter打开android界面,在已有Android项目中使用Flutter
- python实现ks算法_Python实现Dijkstra算法
- Kali Linux安装中文输入法
- AndoridSQLite数据库开发基础教程(5)
- 分享Kali Linux 2016.2第46周镜像文件
- iOS 9音频应用播放音频之第一个ios9音频实例
- 开源版本_重磅!阿里开源 OpenJDK 长期支持版本 Alibaba Dragonwell
- 远程服务器返回错误: (500) 内部服务器错误。_[源码和文档分享]基于TCP SOCKET实现的远程聊天系统...
- flask mysql项目模板渲染_[Flask] Flask问题集(后端模板渲染项目)