数据库复制详解

一、需求

        为了解决数据同步,我们经常使用各种各样的导入导出程序,过程繁琐,下面将介绍数据库复制实现数据库同步,SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置SqlServer数据库同步是个比较好的解决方案。SqlServer数据库同步的配置比较烦锁。

       学习数据库复制主要需要学习一下几点:

     1.数据库复制原理

      2.数据库复制的过程

     3.数据库复制的需要注意的事项

二、数据库复制基础知识

1.复制概念

        复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。

clip_image002[6]

2.数据复制角色

复制服务有三个角色,分别是发布服务器,分发服务器和订阅服务器。他们分别做不同的工作。就像我们日常买书和报纸的概念是一样的。

发布服务器: 也称为出版服务器,主要负责数据的发布和出版工作。这个角色就好比我们的出版社或者报社。

分发服务器: 主要负责将发布服务器的内容分发给订阅者。他是连接发布服务器和订阅服务器的桥梁。这个角色就好比我们的邮递员,将书和报纸送到我们的手里。

订阅服务器: 主要负责接收发布的内容。这个角色就好比我们自己订阅书和报纸,是一个订阅者的角色。

3.数据发布类型

数据库复制发布有4

分别是:快照发布、事务性发布、具有可更新订阅的事务性发布、合并发布

 每一种都有各自的优缺点.其中本人主要使用快照发布,和事务发布.至于为什么不使用其他的,是因为除这两种之外其他的都为互相同步.可能照成自增主键冲突问题,并且网上还有人说有可能会照成死循环.当然我没试过.

快照发布:

发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照。

原理: 对当前数据库进行拍照然后将所得的照片发过去恢复数据

优点: 快照发布可以有效的保证数据的完整性.可以控制快照生成的间隔时间等.

缺点: 由于是快照原理就是对当前数据库进行拍照然后将所得的照片发过去恢复数据,所以会存在三个问题

1. 由于是恢复的过程,所以会对整个表先进行删除再进行恢复.所以会存在很小的一段时间数据库找不到表的情况,因为删了么.这段时间由当前同步表的大小决定

2. 由于是快照是对整个数据表进行拍照,所以在数据量大的表会存在老数据再做无效传输.

3. 由于每次同步数据比较大所以会存在不及时性.

适用: 经常改变的,并且数据量不大的表.

 

事务性发布:

在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。

原理: 记录表数据的变化,将变化同步到订阅服务器表.

优点: 数据同步及时,一般几秒就能同步.不管表数据如何庞大多没事.

缺点:

1. 订阅服务器表不能更改,否者很有可能同步失败.

2. 只对以后有变化的数据进行同步,所以对旧数据丢失情况没办法恢复.缺乏完整性.

3. 由于对发布表进行更改立马就会进行同步,所以连接订阅服务器经常频繁.

适用: 不是经常变动的数据表.

 

具有可更新订阅的事务性发布:

SQL Server 订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。来自订阅服务器的事务被应用于发布服务器。

 

合并发布:

在订阅服务器收到已发布数据的初始快照后,发布服务器和订阅服务器可以独立更新已发布数据。更改会定期合并。Microsoft SQL Server Mobile Edition 只能订阅合并发布。

 

 

4.数据订阅模式

   数据订阅的模式有推式订阅和请求订阅两种。推式订阅主要是分发服务器将数据推给订阅服务器。 请求订阅是订阅服务器主动向分发服务器取数据。这就好比我们自己订阅杂志和报纸一样,如果人家送货上门,这就是推式订阅,消耗的是分发服务器的资源,也就是消耗送货人员的资源。如果是请求订阅,我们就需要自己到书店去购买,这样消耗的就是我们自己的资料。消耗的是订阅服务器的资源。

 

三、数据库复制的过程

1.配置发布服务器

 

根据自己的需求选择发布类型,点击下一步。

 

选择自己发布的数据.

制定数据库复制计划。

这一步很关键,需要填写执行计划的计算机用户名和sqlserver登录名,登录名必须有交换数据库的权限。

后面的操作很简单,这里不在贴图,注意我这里是把发布服务器当作分发服务器用的。

2.配置订阅服务器

配置订阅服务器

现在的例子是采用推送订阅的方式,请求订阅大概也相同,如下图我们选择发布项目,如果选择推送订阅的方式。

在指定订阅服务器时要注意,如果不是在同一局域网,需要在发布服务器注册订阅服务器名,选择订阅服务器时,只支持订阅服务器名称,不知道ip、别名。

下面说一下怎样在发布服务器注册订阅服务器名,找到系统的C:\WINDOWS\system32\drivers\etc\hosts文件,用记事本打开,进行如下设置:

这时我们就可以不用ip用服务器名称连接到订阅服务器,如下图

 

订阅的时候这里一定要注意,上面的部分是分发服务器的帐号,下面的部分是订阅服务器的sql登录帐号,我在这里就犯过错误,都填写成了分发服务器帐号

后面的部分按照要求配置,这时发布与订阅就基本上完成了。

 

数据库复制比较好的博客:http://www.cnblogs.com/gbmf/articles/1496013.html

数据库复制常见问题:http://kb.cnblogs.com/page/71979/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值