如果我们有多台SQL2005服务器,并且,这些服务器上的数据库,表格结构都是一样的,也就是说,数据类型完全一致。所存在的问题是,各台服务器上的SQL2005数据库的记录不一样。
现在,如何通过SQL2005本身的功能,同步更新各台数据库服务器,让各台数据库的数据时常保持一致。
关于这个问题,我们就可以使用复制的办法,复制是将一组数据或数据库对象从一个数据库复制和分发到另外一个数据库,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。
使用复制,可以在局域网和广域网上将数据分发到不同位置,可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
一、关于SQL2005服务器数据复制的概念
在SQL Server 2005中,复制主要需要有发布服务器、分发服务器和订阅服务器,源数据所在的服务器是发布服务器,负责发表数据。发布服务器把要复制的数据或对象发生的改变复制到分发服务器,分发服务器用来接收数据的所有改变,它包含一个分发数据库,并保存这些改变,再把这些改变分发给订阅服务器。在复制过程中,发布服务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用。订阅服务器是接收复制数据的数据库实例。一个订阅服务器可以从多个发布服务器上接收数据。
复制主要有三种形式:快照复制、事务复制、合并复制。快照复制将数据以特定时刻的瞬时状态分发,而不监视对数据的更新。如果发生了同步,就会生成完整的快照并将其发送到订阅服务器;事务性复制通常从发布数据库对象和数据的快照开始。拍摄初始快照后,随后在发布服务器中所做的数据更改和架构修改通常在修改发生时便传递给订阅服务器。数据更改在订阅服务器中应用的更改顺序以及更改所处的事务边界与在发布服务器中相同。合并复制通常也是从发布数据库对象和数据的报表快照开始。并用触发器跟踪在发布服务器和订阅服务器中所做的后续数据更改和架构修改。订阅服务器与发布服务器在连接到网络时进行同步,并交换自上次同步以来发布服务器和订阅服务器间发生变化的所有行。
二、同步更新各台SQL2005服务器数据的理论指导
现在来通过SQL Server 2005来建立数据复制的操作 。
1、先在两台服务器上建立两个完全一样的数据库、表结构及存放的数据;
2、在服务器一上打开SQL Server 2005,然后选择“复制”→“本地发布”,然后右键选择新建发布;
3、在新建发布向导中首先要求选择分发服务器,在操作中我们暂选择本机作为分发服务器,所以选择默认值。
4、选择快照的路径,一般情况下选择默认路径,根据向导选择要发布的数据库;
5、选择发布的内容,可以选择发布表,也可以发布其他的数据库对象,比如函数。在选择某一个表之后还可以选择对应的列;
6、发布的内容设置好后,然后运行SQL代理的账号。然后再按照向导给建立的复制名命。这样就建立好了发布和分发的应用了。
下面接着来配置订阅的应用。
1、先在服务器二上打开SQL Server 2005,然后选择“复制”→“本地订阅”,然后右键选择新建订阅;
2、选择发布服务器,在发布服务器的下接列表中找到对应已经建立好的SQL SERVER 发布服务器,然后就可以看到刚才新建的发布复制名称;
3、选择订阅方式。在这里可以选择请求订阅,然后选择订阅的本地需要同步的数据库;
4、设置完本地数据库之后要求设置运行代理的安全性,设置成SQL 代理账号。订阅的设置就已经完成。
三、同步更新多台SQL2005的实例
下面给大家一个示范,在服务器一上面新插入一条记录后,然后再去服务器二上面看看对应表的数据,会发现到,也会看到更新后的数据。
SQL SERVER 2005 同步复制技术
①准备工作
1.建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。
2.在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。打开1433端口,在防火墙中设特例
3.在发布服务器上建立一个共享目录,作为发布快照文件的存放目录。例如:在D盘根目录下建文件夹名为SqlCopy
4.设置SQL 代理(发布服务器和订阅服务器均设置)
打开服务(控制面板→管理工具→服务) →右击SQLSERVER AGENT→属性→登录→选择“此帐户“
→输入或选择第一步中创建的WINDOWS 用户
→“密码“中输入该用户密码
5.设置SQL SERVER 身份验证,解决连接时的权限问题(发布、订阅服务器均设置)
步骤为:对象资源管理器→-右击SQL实例→属性→安全性→服务器身份验证→选“SQL Server和WINDOWS“,然后点确定
6.开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务。
7.在SQL Server中创建步骤1中对应的系统用户登陆名,作为发布数据库的拥有者(设置为dbo_owner和public)。
8.以系统超级用户sa登陆SQL Server建立数据库和表。
9.发布服务器和订阅服务器互相注册
步骤如下:视图→单击以注册服务器→右键数据库引擎→新建服务器注册→填写要注册的远程服务器名称→身份验证选“SQL Server验证“→用户名(sa) 密码→-创建组(也可不建)→完成。
10.对于只能用IP,不能用计算机名的,为其注册服务器别名
②开始更新数据
发布服务器配置(在发布服务器上配置发布和订阅)
1. 选择 复制 节点
2. 右键本地发布→下一步→系统弹出对话框看提示→直到“指定快照文件夹“
→在“快照文件夹“中输入准备工作中创建的目录(指向步骤3所建的共享文件夹)→选择发布数据库→选择发布类型→选择订阅服务器类型→选择要发布的对象→设置快照代理→填写发布名称。
3. 右键本地订阅→选择发布服务器→选择订阅方式(如果是在服务器方订阅的话选择推送订阅反之,选择请求订阅)→填加订阅服务器→选择代理计划(一般选择连续运行)→其余选择默认项。
至此, SQL SERVER 2005 同步复制就完成了。使用复制技术,用户可以将一份客户端的数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。