数据同步是我们在开发的过程中常遇到的问题,一般我们可以使用复制的办法,复制是将一组数据或数据库对象从一个数据库复制和分发到另外一个数 据库,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。使用复制,可以在局域网和广域网上将数据分发到不同位置,可以确保分布在不同地点 的数据自动同步更新,从而保证数据的一致性。
在SQL Server 2005中,复制主要需要有发布服务器、分发服务器和订阅服务器,源数据所在的服务器是发布服务器,负责发表数据。发布服务器把要复制的数据或对象发生的 改变复制到分发服务器,分发服务器用来接收数据的所有改变,它包含一个分发数据库,并保存这些改变,再把这些改变分发给订阅服务器。在复制过程中,发布服 务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用。订阅服务器是接收复制数据的数据库实例。一个 订阅服务器可以从多个发布服务器上接收数据。
复制主要有三种形式:快照复制、事务复制、合并复制。快照复制将数据以特定时刻的瞬时状态分 发,而不监视对数据的更新。如果发生了同步,就会生成完整的快照并将其发送到订阅服务器;事务性复制通常从发布数据库对象和数据的快照开始。拍摄初始快照 后,随后在发布服务器中所做的数据更改和架构修改通常在修改发生时便传递给订阅服务器。数据更改在订阅服务器中应用的更改顺序以及更改所处的事务边界与在 发布服务器中相同。合并复制通常也是从发布数据库对象和数据的报表快照开始。并用触发器跟踪在发布服务器和订阅服务器中所做的后续数据更改和架构修改。订 阅服务器与发布服务器在连接到网络时进行同步,并交换自上次同步以来发布服务器和订阅服务器间发生变化的所有行。
现在来通过SQL Server 2005来建立数据复制的操作 。
1、先在两台服务器上建立两个完全一样的数据库、表结构及存放的数据;
2、在服务器一上打开SQL Server 2005,然后选择“复制”——>“本地发布”,然后右键选择新建发布;
3、在新建发布向导中首先要求选择分发服务器,在操作中我们暂选择本机作为分发服务器,所以选择默认值。
4、选择快照的路径,一般情况下选择默认路径,根据向导选择要发布的数据库;
5、选择发布的内容,可以选择发布表,也可以发布其他的数据库对象,比如函数。在选择某一个表之后还可以选择对应的列;
6、发布的内容设置好后,然后运行SQL代理的账号。然后再按照向导给建立的复制名命。这样就建立好了发布和分发的应用了。
下面接着来配置订阅的应用。
1、先在服务器二上打开SQL Server 2005,然后选择“复制”——>“本地订阅”,然后右键选择新建订阅;
2、选择发布服务器,在发布服务器的下接列表中找到对应已经建立好的SQL SERVER 发布服务器,然后就可以看到刚才新建的发布复制名称;
3、选择订阅方式。在这里可以选择请求订阅,然后选择订阅的本地需要同步的数据库;
4、设置完本地数据库之后要求设置运行代理的安全性,设置成SQL 代理账号。订阅的设置就已经完成。
下面我们就可以做一个操作的示范,在服务器一上面新插入一条记录后,然后再去服务器二上面看看对应表的数据,会发现到,也会看到更新后的数据。