详解SqlServer数据库同步数据处理方案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

详解SqlServer数据库同步数据处理方案fang发表于2010-02-2016:36:31摘自:数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置SqlServer数据库同步是个比较好的解决方案。SqlServer数据库同步的配置比较烦锁,下面对其配置详细步骤进行介绍:一、数据复制前提条件1.数据库故障还原模型必需为完全还原模型。2.所有被同步的数据表都必须要用主键。3.发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。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的代理服务。点击”下一步”之后,出现配置完成界面,如下图:点击“完成”,并开始配置订阅了。如下图:以下内容摘自数据同步主要有三种方式:1.利用MySQL自身的数据库同步功能2.利用MySQL数据库的特性(数据库存在固顶目录,并且以文件形式存储),进行数据库目录同步以达到数据同步目的3.利用专用的MySQL数据库同步软件1,貌似用的是集群数据库服务器负载均衡等技术;2,模块化技术,就是相对比较独立的数据,如争车位跟朋友买卖,可以放在不同的数据库服务器上面。3,我感觉数据库里面用了比较大的缓冲池,因为开心网里面的刷新速度还可以很快,用ajax过多。如果想运行速度快,自己写通信程序来实现同步,如果想简单,用webservice,比如,提交了一个表单,需要在本服务器A的数据库上增加一条记录,同时想在远程服务器B的数据库上增加一条记录,那么,可以在服务器A上通过程序调用服务器B上的webservice的接口来实现远程写库,当然自己写通信程序,报文格式可以简单化,所以速度就很快了SQLcodeSQLServer2000同步复制技术实现步骤作者:gaojier日期:2007-06-25字体大小:小中大一、预备工作1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户(SynUser)2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:我的电脑--D:新建一个目录,名为:PUB--右键这个新建的目录--属性--共享--选择共享该文件夹--通过权限按纽来设置具体的用户权限,保证第一步中创建的用户(SynUser)具有对该文件夹的所有权限--确定3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)开始--程序--管理工具--服务--右键SQLSERVERAGENT--属性--登陆--选择此账户--输入或者选择第一步中创建的windows登录用户名(SynUser)--密码中输

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功