SQL Server数据库同步问题分享[未完,待续](一)

 

 SQL Server数据库同步问题分享[未完,待续](一)

 SQL Server数据库同步问题分享(二)---操作步骤[未完,待续]

SQL Server数据库同步问题分享(三)---创建订阅 
 

 

合并发布(复制)通常也是从发布数据库对象和数据的报表快照开始。并用触发器跟踪在发布服务器和订阅服务器中所做的后续数据更改和架构修改。订阅服务器与发布服务器在连接到网络时进行同步,并交换自上次同步以来发布服务器和订阅服务器间发生变化的所有行。允许站点对已经复制的数据进行匿名更改,并且在晚些时候合并更改和更加需要解决冲突。(数据合并可能导致主键冲突)

适用的情况:

(1) 多个定语服务器可能会在不同的时间更新同一数据,这些更改将传播到发布服务器和其他订阅服务器。

(2) 订阅服务器需要接手数据,脱机更改数据,并且在以后与发布服务器和其他定语服务器同步更改

(3) 订阅服务器都需要不同的数据分区

(4) 可能会发生冲突,如果发生冲突,需要具备检测和解决冲突的能力

(5) 应用程序需要最终的更改结果,而不是访问中间的数据状态。

 

工作原理:

合并复制允许不同的站点自主工作,然后将更新合并成一个统一的结果,由于更新是在多个服务器中进行,因此统一数据可能由发布服务器和多个定语服务器进行了更新,可能会出现冲突,合并复制提供解决冲突方案。在订阅服务器中更新数据时,首先将数据传播到发布服务器,然后再传播到其他订阅服务器。如果使用立即更新,将使用两阶段提交协议立即传播更改。如果使用排队更新,更改将存储在队列中;当网络连接可用时,再在发布服务器中异步应用排队事务。由于更新异步传播至发布服务器,所以发布服务器或另一台订阅服务器有可能更新同一数据,而在应用更新时会发生冲突。将根据创建发布时设置的冲突解决策略检测和解决冲突。

两种可更新订阅:

(1)     立即更新。必须连接发布服务器和订阅服务器才能在订阅服务器中更新数据。

(2)     排队更新。不必连接发布服务器和订阅服务器即可在订阅服务器中更新数据。可以在订阅服务器或发布服务器脱机时进行更新最近做数据库同步,看似非常简单的东西,可是问题一个接一个,或许我们在本机做测试,数据量小的时候根本查不到问题所在,在正式环境中每个因素都要考虑到,这里将遇到的问题以及操作步骤与大家分享一下,希望对大家有帮助!

(一)  数据库同步的必要性

1.   数据库实时备份同步,在数据库服务器出现问题时可以有正常工作时的备份

2.  数据库实时备份同步,在数据库访问压力过大时,可以用来做负载均衡

                3.  数据库实时备份,数据库服务器可以无间断的无损失迁移

4.  当数据库遭受攻击或者服务器出现问题可以启用同步机器应急

                5.  可以实现数据库之间的合并

 

(二)  数据库同步前提条件

1. 数据库故障还原模式必须是完全还原模型

 

2. 所有被同步的数据库都必须有主键

数据库被同步的数据表必须有主键,因为大家都习惯使用自增列作为主键,这里不一定要指定主键为自增列。主键主要用于事务复制

 

3. 使用计算机名来注册服务器

发布服务器,分发服务器和订阅服务器都必须使用计算机名称来进行SQLServer服务器的注册。在企业管理器里面注册服务器,如果需要             作为发布服务器,分发服务区和订阅服务器都必须使用服务器名称进行注册,不得使用IP地址以及别人注册,也不得使用带有端口号

    

4. SQL Server必须启动代理服务

SQLServer必须启动代理服务,且代理服务器必须以本地机器的账号运行

 

 

(三) SQL Server数据库同步相关定义

(1). 复制简介

复制是将数据或数据库对象从一个数据库复制和分发到另外一个数据库,并进行数据同步,从而使源数据库和目标数据库保持一致。使用复制,可以在局域网和广域网、拨号连接、无线连接和 Internet 上将数据分发到不同位置以及分发给远程或移动用户。

 

一组SQL SERVER2005复制有发布服务器、分发服务器、订阅服服务器组成,他们之间的关系类似于书报行业的报社或出版社、邮局或书店、读者之间的关系。以报纸发行为例说明,发布服务器类似于报社,报社提供报刊的内容并印刷,是数据源;分发服务器相当于邮局,他将各报社的报刊送(分发)到订户手中;订阅服务器相当于订户,从邮局那里收到报刊。在实际的复制中,发布服务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用,用于复制与一个或多个发布服务器相关联的特定数据。每个发布服务器都与分发服务器上的单个数据库(称作分发数据库)相关联。分发数据库存储复制状态数据和有关发布的元数据,并且在某些情况下为从发布服务器向订阅服务器移动的数据起着排队的作用。在很多情况下,一个数据库服务器实例充当发布服务器和分发服务器两个角色。这称为本地分发服务器。订阅服务器是接收复制数据的数据库实例。一个订阅服务器可以从多个发布服务器和发布接收数据。

 

 

 

(2). 复制类型

 

 

(3) 快照发布

快照复制就是在某一时刻对出版数据库进行一次照相,生成一个描述发布数据的瞬时状态的静态文件,然后再规定的时间复制到订阅数据库

快照发布特点:

(1)  不需要实时监控和跟踪发布数据库发生的数据库变化

(2)  复制的内容不是Insert,Update,Delete语句数据,也不是被修改的数据

(3)  对网络资源要求较高,而且要保证传输的可靠性

(4)  对订阅数据库进行一次刷新,将发布数据库完全重新复制一份到订阅数据库

 

适用条件:

(1)  很少有数据更改

(2)  在一段时间内允许具有相对发布服务器已过时的数据副本

(3)  复制少量数据

(4)  在短期内出现大量更改

 

工作机制:

(1)  发布服务器,将要发布的数据库整个做一个快照

(2)  订阅服务器的快照代理程序把发布服务器的快照读取过来,放在本地的快照文件夹内订阅服务器的发布代理程序把快照文件夹中的快照发布到订阅服务器上。历史记录和快照记录在分发服务器中

 

 

 

(4) 事务发布

复制的一种类型,在订阅服务器上应用数据的初始快照,然后当发布服务器上发生数据修改时,捕获个别的事务并传播到订阅服务器。

适用环境:

(1)  希望发生增量更改时将其传播到订阅服务器。

(2)  从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时间较短

(3)  应用程序需要访问中间数据状态,而不只是响应该行最终的数据更改.

(4)  发布服务器有大量的插入、更新和删除活动发布服务器或订阅服务器不是 SQL Server 数据库

 

(5) 具有可更新订阅的事务发布

在订阅服务器中更新数据时,首先将数据传播到发布服务器,然后再传播到其他订阅服务器。如果使用立即更新,将使用两阶段提交协议立即传播更改。如果使用排队更新,更改将存储在队列中;当网络连接可用时,再在发布服务器中异步应用排队事务。由于更新异步传播至发布服务器,所以发布服务器或另一台订阅服务器有可能更新同一数据,而在应用更新时会发生冲突。将根据创建发布时设置的冲突解决策略检测和解决冲突。

两种可更新订阅:

(1)     立即更新。必须连接发布服务器和订阅服务器才能在订阅服务器中更新数据。

(2)     排队更新。不必连接发布服务器和订阅服务器即可在订阅服务器中更新数据。可以在订阅服务器或发布服务器脱机时进行更新

 

 

 (6) 合并发布

 

合并发布(复制)通常也是从发布数据库对象和数据的报表快照开始。并用触发器跟踪在发布服务器和订阅服务器中所做的后续数据更改和架构修改。订阅服务器与发布服务器在连接到网络时进行同步,并交换自上次同步以来发布服务器和订阅服务器间发生变化的所有行。允许站点对已经复制的数据进行匿名更改,并且在晚些时候合并更改和更加需要解决冲突。(数据合并可能导致主键冲突)

适用的情况:

(1)  多个定语服务器可能会在不同的时间更新同一数据,这些更改将传播到发布服务器和其他订阅服务器。

(2)  订阅服务器需要接手数据,脱机更改数据,并且在以后与发布服务器和其他定语服务器同步更改

(3)  订阅服务器都需要不同的数据分区

(4)  可能会发生冲突,如果发生冲突,需要具备检测和解决冲突的能力

(5)  应用程序需要最终的更改结果,而不是访问中间的数据状态。

 

工作原理:

合并复制允许不同的站点自主工作,然后将更新合并成一个统一的结果,由于更新是在多个服务器中进行,因此统一数据可能由发布服务器和多个定语服务器进行了更新,可能会出现冲突,合并复制提供解决冲突方案。

 

 

 

 

 

篇幅问题,未完待续, 完整文档 下载

转载于:https://www.cnblogs.com/qingyuan/archive/2012/08/29/2661615.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(转)前置++和后置++的区别

今天在阅读《google c 编程风格》的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (i) 的自增, 自减运算符.,理由是 前置自增 (i) 通常要比后置自增 (i) 效率更高。于是我查了查…

一起谈.NET技术,异步调用与多线程的区别

随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想探讨一下如何使用并发来最大化程序的性能。 多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞…

中国最美街景,带你一次看个够

全世界只有3.14 % 的人关注了爆炸吧知识生活永远比电视剧精彩,真正的美景永远比图片美!中国960万平方公里的土地上,拥有无穷无尽的美景,足以将你的眼睛搁在天堂。抛开那些耳熟能详的景区不谈,单单是一些普通街道&#…

6计算机系统的组成是,计算机系统的组成(范文)(6页)-原创力文档

第 PAGE \* Arabic 1 页计算机系统的组成(范文)PAGE计算机系统的组成一、教学目标:知识与技能:⑴ 学生了解计算机组成各部分的名称和作用。⑵ 学生知道计算机的硬件有哪些。⑶ 学生知道什么是计算机软件,了解计算机软件的作用。⑷ 通过介绍国…

[031] 实战:书大师网站开发准备

.NET大牛之路 • 王亮精致码农 • 2021.10.19前面我们花了二十篇左右的文章讲 C# 基础和高级知识点。由于后面要讲的东西还有很多,所以 C# 的内容没办法做到讲得细而全,只能走马观花一扫而过。在后面的内容中如果有遇到 C# 高级知识点,我们再…

计算机视觉招聘_INDEMIND|SLAM、计算机视觉、深度学习算法招聘(社招实习)

公司介绍INDEMIND是一家专注于计算机视觉技术研发与嵌入式计算平台研发的人工智能公司,行业领先的计算机视觉方案提供商。公司成立于2017年,核心技术团队成员均为来自计算机视觉领域的顶级技术人员。研发团队结合自身在计算机视觉技术上的优势&#xff0…

2012暑假最后两次组队赛总结

最后两次组队赛的题都相对简单,所以两次都得到较高的题目数!一次是在hdu的diy上做,另外的是在bnu做spoj的题。先补回倒数第二场的总结。倒数第二场一共有10题,当时过的题包括一题枚举求最大值,一题二分求概率&#xff…

依赖Zookeeper生成全局唯一序列号

下面2张图来自:http://www.open-open.com/doc/view/2e0a82e0081d489dace301a2c512053c 关于Zookeeper服务安装,配置,启动, 客户端操作参见:http://aiilive.blog.51cto.com/1925756/1684451 http://aiilive.blog.51cto.com/1925756…

小眼睛有多惨?美颜都懒得救你......

1 眼睛小的人系统一般会自动识别为没睁开▼2 你想笑死我吧???▼3 大家都是狗,凭什么???▼4 这鱼是怎么跳上来的?▼5 感觉有被冒犯到▼6 这个车贴太可爱了!▼7 君子…

软件开发了10年,迷茫了

在新疆做了10年软件开发,从asp开始不断学习,每出现一个新技术自己都会夜以继日的学习,总以为这个技术会是潮流,会持续几年,但结果是不到两年就已经落伍。身边的人慢慢的离开了软件开发队伍,终于2年前自己也…

jmeter聚个报告怎么看qps_Jmeter 使用笔记之 html 报告扩展(一)

题记:在用 loadrunner 的时候可以生成一个 HTML 的报告,并且里面包含各种图表,各种详细的数据。而在使用 Jmeter 测试完后并不能直接生成 Html 的报告(无论是用 GUI 还是命令行启动)。经过查找资料发现 Jmeter 的 extras 目录下有生成 HTML 的…

.NET网站国际化策略

我所在的公司是做SAAS软件,用户群体是面向全球的,因此对应业务系统国际化就是顺理成章的事情。其实国际化重点在于多语言支持,本文就从这方面入手。多语言如上解决方案截图,BQoolCommon.Resource是多语言资源工程,下面…

将数字转化为液晶显示屏的样子

发一个很蛋疼的程序&#xff0c;将一个数字转化为液晶显示屏显示的样子&#xff1a;第一个输入是尺寸&#xff0c;第二输入是要转化的数字&#xff0c;当两个参数都为0的时候结束输入&#xff1a; #include<iostream> using namespace std;struct Print{int size;int num…

计算机标准符合,计算机专利申请要符合哪些标准

需要具体分析&#xff0c;例如&#xff0c;外观专利申请流程&#xff1a;&#xff11;、外观设计专利申请受理阶段专利局收到专利申请后进行审查&#xff0c;如果符合受理条件&#xff0c;专利局将确定申请日&#xff0c;给予申请号&#xff0c;并且核实过文件清单后&#xff0…

史上最强电池!三位诺贝尔奖获奖者研究了大半辈子,却坦言还是没看懂?

全世界只有3.14 % 的人关注了爆炸吧知识手机患了忧郁症电量总剩1%晚上十点半了&#xff0c;还剩10%的电量&#xff0c;等我用完这些电就睡觉..5%了&#xff0c;这个推文看完应该就没电了1%了&#xff0c;算了再看一个&#xff0c;还没关机呢看完了&#xff0c;还是1%&#xff0…

libgdx 学习笔记七 libgdx应用程序生命周期

简介 本章内容描述libGDX 应用程序的结构和怎么根据不同的平台版本使用不同的后台 The Application 做为任意libGDX 工程的主入口点。Application 决定平台的版本和后台图形。Application 接口提供了合适的方法来访问Graphics, Audio, Input and File I/O模块。也提供了跨平台的…

工业相机与民用相机的区别_工业相机和普通相机的区别详解

在机器视觉迅猛发展的今天&#xff0c;工业相机作为机器视觉的核心组件已得到广泛应用&#xff0c;但是很多初学者还是搞不清楚究竟工业相机与普通相机有什么区别。下面小编就带大家一起去看看工业相机和普通相机的区别吧&#xff01;工业相机一、工业相机和普通相机的区别之性…

50个Android应用!Win11支持运行了

文 | 局长出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;Android 应用现已支持在 Windows 11 上运行。微软今日宣布&#xff0c;美国地区 Windows 11 Beta 通道的预览版已支持运行 Android 应用。正如公告所说&#xff0c;如需体验在 Windows 11 上运行…

javascript规范以及设计原则

UI layer的分离 针对CSS: 尽量不要在JS中的添加过多的动态CSS&#xff0c;可以考虑使用addClass 针对JS中的事件&#xff1a; Keep JavaScript Out of HTML 避免以下的代码 <!-- Bad --><button οnclick"doSomething()" id"action-btn">Click…

服务器的类型及作用是什么,按用途分类,服务器有哪些? - 问答库

问题&#xff1a;[问答题] 按用途分类&#xff0c;服务器有哪些&#xff1f;某工程包含两个单项工程&#xff0c;分别发包给甲、乙两个承包商。在施工中发生如下事件。事件一&#xff1a;该工程签约时的计算工程价款为1000万元&#xff0c;该工程固定要素的系数为0.2&#xff1…