程序员人生 网站导航

SqlServer2005 数据库发布、订阅配置图文详解

栏目:php教程时间:2015-01-05 08:05:11
1:准备条件
<1>软件准备条件
机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器)
机器B端:Sqlserver2005 Management Studio Express + WinXP(作为定阅服务器)
(可以用别的,不过定阅服务器版本不得高于发布服务器版本)
<2>数据库复制准备条件

1. 所有被同步的数据表尽可能要用主键,如果没有主键也没有关系,SqlServer会提示为表自动生成主键

2. 发布服务器、分发服务器和定阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。

3. SQLSERVER必须启动代理服务,且代理服务必须以本地计算机的帐号运行。 不得使用IP地址和别名进行注册,比如LOCAL, “.”和LOCALHOST等。

4.如果非同1网段或远程服务器,或只能用IP,不能用计算机名的,为对方注册服务器别名。将其对应关系加到本地系统网络配置文件中。文件的具体位置在C:Windowssystem32driversetchosts,这里的配置和linux下类似:

192.168.0.1 server 192.168.0.2 client

5.SqlServer 必须启动代理服务,且代理服务必须以本地计算机的帐号运行。

6.发布服务器和定阅服务器都要设置MSDTC ,允许网络访问控制面板--->管理工具--->组件服务--->计算机--->我的电脑(Win7继续找 -->Distributed Transaction Coordinator--->本地DTC),右键属性,找到MSDTC选项卡,点击安全设置,按以下设置便可:


肯定,重启MSDTC服务。

2:准备工作的详细操作步骤

1、启动SQL代理(SQLSERVERAGENT)服务。
2、开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务(在SQL Server Configuration Manager里头配置)。

3、设置SQL SERVER 身份验证为混合验证SQL Server和WINDOWS(发布、定阅服务器均设置)
4、发布服务器和定阅服务器相互注册
步骤以下:视图---单击已注册服务器---右击 数据库引擎---新建服务器注册----填写要注册的远程服务器名称----身份验证选“SQL Server验证“----用户名(sa) 密码,对只能用IP,不能用计算机名的,为其注册服务器别名,见上。

准备工作完成,接下来我们进行发布和定阅的操作
3:发布和定阅
  发布
(1)首先我们在发布服务器上(winserver2003)打开SqlServer2005 Management Studio (企业版)。在“对象资源管理器”中找到复制节点,右键--->新建发布(注:如果你的SqlServer是express版本的话,是没有发布这1功能的,只有定阅功能!)


(2)接下来选择要发布的数据库,下1步,选择“发布类型”,我这里选择“合并发布”,

我本人理解的几种发布类型:

  • 快照复制:快照复制只在某1时刻给出版数据库中的出版数据照相,然后将数据复制到定阅者的服务器上,快照复制较为简单,其所复制的只是某1时刻数据库的瞬间数据,因此实时性差,而且值得注意的是快照复制其实不是不停地监视出版数据库中产生的变化情况,它是对出版数据库进行异性扫描,把所有出版数据中的数据从源数据库送至目标数据库,而不单单是变化的数据。如果数据量很大,那末要复制的数据就很多。因此对网络资源要求很高,不但要有较快的传输速度,而且要保证传输的可靠性。快照复制是最简单的1种复制类型,能够在出版者和定阅者之间保证数据的1致性,快照复制通常使用在以下场合:在1定时间内出现大量的更改操作,但数据总量不大,变化周期较长。
  • 事务复制:快照复制是将全部数据集发送给定阅服务器,由于体积大而造成复制周期较长,会构成复制滞后问题。那末事务复制使用事务日志来生成将复制到定阅服务器的事务,由于它只复制事务也就是变化,所以滞后也比快照复制低很多,由于将不断地在定阅服务器处得到及时利用。
    事务复制有3个组件:
    快照代理,它生成架构,数据和跟踪复制进程所需的数据;
    分发代理:它分发快照和随后的命令;
    日志读取器代理:它读取发布数据的事务日志。在事务复制中,当出版数据库产生变化时,这类变化就会立即传递给定阅者。并在较短时间内完成(几秒),而不是像快照复制那样要经过很长1段时间间隔。因此,事务复制是1种接近实时地从源到目标分发数据的方法。由于某种缘由事务复制的频率较高。所以必须保证在定阅者与出版者之间要有可靠的网络连接。
  • 合并复制:合并复制是为移动用户设计的,可以在发布服务器或是定阅服务器处履行修改,在合并代理运行时,这些修改将同步,多用于发布服务器与定阅服务都修改数据的情况下。工作原理以下:在要复制的每一个表上实现触发器,并使用包括GUID列唯1标识要复制的表中的每行。对其中的任何1个表进行修改时,都会将更改将记录1个数据表中,在合并代理运行时,它搜集数据表中的GUID,这些GUID指出了在发布服务器和定阅服务器处修改过的行。对只在发布服务器或是定阅端修改的数据则直接进行相应操作,如INSERT,UPDATE,DELETE,如果双方都有GUID则依照用户指定的方式解决冲突,默许发布服务器伏先。
配置复制:
不管是快照复制,事务性复制还是合并复制,创建复制都要经过以下几个步骤:
1.创建发布服务器。选择要发布的服务器。如果有条件的,也能够分发服务器,在这里我们就将发布服务器和分发服务器设置在同1台计算机上。
2.不论是发布服务器还是定阅服务器必须开启代理服务。
3.创建1个发布。行将需要的数据库及对象发布出来。
4.选择1个合适自己的发布类型。
5.设置复制代理及安全,即指定可以运行代理的用户帐号。
(3)下1步,选择定阅服务器类型,选择“SqlServer2005”,下1步,选择发布项目,我们选择表、视图、存储进程等。


(4)接下来设置作业计划,为了方便看到测试效果,我们设置“每隔1分钟”履行1次作业。


(5)设置快照代理安全性,连接到发布服务器时,使用sa

(6)为发布起个名字,完成发布


定阅
接下来,我们配置定阅服务器。定阅服务器是winxp系统,SqlServer版本为SqlServer 2005 Manager Studio Express ,只支持定阅。
(1)同发布,新建定阅


(2)选择发布服务器,找到我们刚刚新建的发布“Test3Copy” ,下1步


(3)选择运行代理的位置,根据需求选择是“推送”还是“要求


(4)接下来同发布类似,这里就不赘述了,定阅履行成功,在定阅数据库和发布数据库的表中都会多出1个字段来,SqlServer自动生成的标志定阅成功


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐