SqlServer数据库同步方案详解.docx
《SqlServer数据库同步方案详解.docx》由会员分享,可在线阅读,更多相关《SqlServer数据库同步方案详解.docx(22页珍藏版)》请在冰豆网上搜索。
SqlServer数据库同步方案详解
同步是项目中经常使用到的环节,假设一个项目中的数据同时存在于不同的数据库中,而这些数据库需要被多个不同的网域调历时,配置SqlServer数据库同步是个比较好的解决方案。
SqlServer数据库同步的配置比较烦锁,下面对其配置详细步骤进行介绍:
一、数据复制前提条件
1.数据库故障还原模型必需为完全还原模型。
2.所有被同步的数据表都必需要用主键。
3.发布效劳器、分发效劳器和定阅效劳器必需利用运算机名称来进行效劳器的注册。
4.SQLSERVER必需启动代理效劳,且代理效劳必需以本地运算机的帐号运行。
二、解决前提条件实施步骤
1.将数据库故障还原模型调整为完全还原模型。
具体步骤如下:
打开SQLSERVER企业治理器à选择对应的数据库à单击右键选择属性à选择”选项”à故障还原模型选择完全还原模型。
2.所有被同步的数据表都必需要用主键。
(要紧指事务复制)若是没有主键的数据表,增加一个字段名称为id,类型为int型,标识为自增1的字段。
3.发布效劳器、分发效劳器和定阅效劳器必需利用运算机名称来进行SQLSERVER效劳器的注册。
在企业治理器里面注册的效劳器,若是需要用作发布效劳器、分发效劳器和定阅效劳器,都必需以效劳器名称进行注册。
不得利用IP地址和别名进行注册,比如LOCAL,“.”和LOCALHOST等。
若是非同一网段或远程效劳器,需要将其对应关系加到本地系统网络配置文件中。
文件的具体位置在%systemroot%\system32\drivers\etc\hosts
配置方式:
用记事本打开hosts文件,在文件的最下方添加IP地址和主机名的对应关系。
如图:
SQLSERVER必需启动代理效劳,且代理效劳必需以本地运算机的帐号运行。
启动SQLSERVER代理的方式:
我的电脑à单击右键”治理”à效劳àSQLSERVERAGENT将其设为自动启动。
如图:
以本地运算机帐户运行的配置方式:
打开SQLSERVER企业治理器,选择治理SQLSERVER代理。
单击右键属性。
将系统帐户更改本钱地帐户且此本地帐号要求有系统治理员的权限。
一样设置为administrator那个帐户。
以上前提条件知足以后,就能够够配置数据库复制效劳了。
三、了解复制配置概念和原理
1.数据复制角色
复制效劳有三个角色,别离是发布效劳器,分发效劳器和定阅效劳器。
他们别离做不同的工作。
就像咱们日常买书和报纸的概念是一样的。
发布效劳器:
也称为出版效劳器,要紧负责数据的发布和出版工作。
那个角色就比如咱们的出版社或报社。
分发效劳器:
要紧负责将发布效劳器的内容分发给定阅者。
他是连接发布效劳器和定阅效劳器的桥梁。
那个角色就比如咱们的邮递员,将书和报纸送到咱们的手里。
定阅效劳器:
要紧负责接收发布的内容。
那个角色就比如咱们自己定阅书和报纸,是一个定阅者的角色。
2.数据定阅模式
数据定阅的模式有推式定阅和拉式定阅两种。
推式定阅主若是分发效劳器将数据推给定阅效劳器。
拉式定阅是定阅效劳器主动向分发效劳器取数据。
这就比如咱们自己定阅杂志和报纸一样,若是人家送货上门,这确实是推式定阅,消耗的是分发效劳器的资源,也确实是消耗送货人员的资源。
若是是拉式定阅,咱们就需要自己到书店去购买,如此消耗的确实是咱们自己的资料。
消耗的是定阅效劳器的资源。
3.数据发布类型
数据发布类型可发为三种(SQL2000):
A.快照复制
当符合以下一个或多个条件时,利用快照复制本身是最适合的:
·很少更改数据。
·在一段时刻内许诺具有相对发布效劳器已过时的数据副本。
·复制少量数据。
·在短时间内显现大量更改
B.事务复制
事务性复制通经常使用于效劳器到效劳器环境中,在以下各类情形下适合采纳事务性复制:
·希望发生增量更改时将其传播到定阅效劳器。
·从发布效劳器上发生更改,至更改抵达定阅效劳器,应用程序需要这二者之间的滞后时刻较短。
·应用程序需要访问中间数据状态。
例如,若是某一行更改了五次,事务性复制将许诺应用程序响应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改。
·发布效劳器有大量的插入、更新和删除活动。
C.归并复制
归并复制通经常使用于效劳器到客户端的环境中。
归并复制适用于以下各类情形:
·多个定阅效劳器可能会在不同时刻更新同一数据,并将其更改传播到发布效劳器和其他定阅效劳器。
·定阅效劳器需要接收数据,脱机更改数据,并在以后与发布效劳器和其他定阅效劳器同步更改。
·每一个定阅效劳器都需要不同的数据分区。
·可能会发生冲突,而且在冲突发生时,您需要具有检测和解决冲突的能力。
·应用程序需要最终的数据更改结果,而不是访问中间数据状态。
例如,若是在定阅效劳器与发布效劳器进行同步之前,定阅效劳器上的行更改了五次,那么该行在发布效劳器上仅更改一次来反映最终数据更改(也确实是第五次更改的值)。
四、数据复制实施步骤
A.配置发布效劳器
打开SQLSERVER企业治理器à选择已注册的SQL效劳器à工具à向导
弹出选择向导后,选择“配置发布和分发向导”后,显现如下向导:
点击”下一步”
选择此效劳器作为分发效劳器和分发效劳器,点击下一步
选择快照文件夹,注意此处必段要利用网络途径。
点击下一步,
利用默许设置,点击下一步后点击完成,显现正在配置对话框,如以下图:
配置完成后显现如下对话框:
现在,说明咱们的发布服器配置成功了!
点击确信后,会谈出如下窗口。
如以下图:
现在SQLSERVER企业治理器中多了一项复制监视器。
如以下图:
发布效劳器配置成功以后,咱们能够开始来配置发布效劳器了。
B.配置分发效劳器
分发能够配置在分发效劳器上,也能够配置到其他的SQLSERVER
效劳器上。
此处咱们将散布效劳器和分发效劳器配置在同一台效劳器上。
下面是需要发布数据库的配置步骤:
打开SQLSERVER企业治理器à选择已注册的SQL效劳器à工具à向导
弹出选择向导后,点击”复制”选择”创建发布向导”,选择需要发布的数据库。
如以下图:
点击“创建发布”后,显现向导,点击“下一步”显现如下界面:
此界面要求确认选择需要发布的数据库,系统会自动选中第一次选择的数据库,只需要点击“下一步”后显现如下界面:
现在需要选择发布的类型,跟据咱们对发布类型的描述和网络带宽情形,选择适合的发布类型,比较经常使用的是快照发布和事务发布。
下面就以这两个发布为例进行配置。
第一咱们选择快照发布,点击“下一步”,显现如下界面:
现在向导提示咱们选择定阅效劳器的类型。
由于咱们此刻用的都是
SQLSERVER2000,因此现在咱们只选择“运行SQLSERVER2000的效劳器”即可(系统默许选项),然后点击“下一步”,显现如下界面:
现在显现选择数据库对象进行发布,咱们能够全数选择,也可只选择需要发布的表、存储进程、视图和自概念函数等。
咱们点击表的“全数发布”,点击“下一步”,显现如下界面:
由于咱们采纳的是快照复制,因此会显现一个”IDENTITY属性未传输到定阅效劳器的问题(确实是指可不能转输int类型为自增1的属性,可是数据会进行传输)”,现在咱们点击下一步,显现如下界面:
显现以上界面后,咱们再次点击“下一步”,会显现如下对话框:
能够选择对概念数据的挑选,比如进行垂直(数据的列)或水平(数据的行)的挑选。
此处咱们选择否(系统默许),然后点击”下一步”,如以下图:
显现配置完成的界面,点击完成即可。
如以下图:
发布效劳器创建完成后,会显现如下界面:
致此,发布效劳器的配置就完成了。
现在咱们能够通过复制监视器来查看现有效劳器的各项复制代理的工作情形。
如以下图:
当发布效劳器配置完成以后,咱们能够被发布的数据库多了一个手托着的图标。
如以下图:
注:
若是需要对某数据库进行事务复制,只需要在散布类型当选择“事务发布”就能够够了。
如以下图:
其他操作与快照复制相同。
需要注意的是“事务复制”要求数据表必需要有主键,不然无法对表进行发布。
发布效劳器配置完成以后,咱们可能进行定阅效劳器的配置了。
C.配置定阅效劳器
定阅效劳器有两种方式。
一种是推式定阅,一种是拉式定阅。
具体选择那一种定阅方式。
需要考虑几方面的因素:
①对网络的考虑比如外网远程效劳器需要定阅本地数据,由于本地效劳器没有公网IP,那么需要采取由本地向远程效劳器进行推式定阅,即强制定阅的形式。
②对效劳器性能的考虑比如定阅效劳器和分发效劳器都是外网IP地址或内网IP地址。
可是要求复制进程中可不能对分发效劳器产生过大的压力。
现在,咱们能够采取拉式定阅的方式。
拉式定阅消耗的是定阅效劳器的资源,而可不能对分发效劳器的性能产生大的阻碍。
推式定阅的具体配置如下:
打开SQLSERVER企业治理器à选择已注册的SQL效劳器工具向导复制创建强制定阅向导。
如以下图:
选择需要强制定阅的数据库,单击“强制新定阅“后显现了强制新定阅的欢迎向导。
如以下图:
点击“下一步”,选择需要定阅效劳器,如以下图:
单击“下一步”,显现定阅数据库的名称,如以下图:
现在,创建一个适合的数据库名点“阅读或创建”就能够够选择现
有的数据库或创建一个新的数据库了。
如以下图:
若是需要新建一个数据库,咱们能够点击“新建”,显现了新建数据库的对话框。
如以下图:
新建完数据库以后,点击“下一步”如以下图:
选择分发代理何时更新定阅内容,能够利用最短的滞后时刻,也
能够选择利用调度,现在咱们选择持续池(默许设置),然后点击”下一步”,显现如下界面:
点击“下一步”进行初始化架构和数据,现在系统会检测SQLSERVER代理效劳的工作状态。
如以下图:
若是状态是“正在运行”,可点击“下一步”,若是状态是未知,那么需要检查一下SQLSERVER代理效劳是不是启动,若是没有,那么需要启动一下SQLSERVER的代理效劳。
点击”下一步”以后,
显现配置完成界面,如以下图:
点击“完成”,并开始配置定阅了。
如以下图:
至此推式定阅配置完成。
(拉式定阅配置与此大体相同,需要在定阅效劳器上通过复制向导配置请求定阅即可)