当前位置:文档之家› 利用MSSQL复制技术 实现数据同步

利用MSSQL复制技术 实现数据同步

三分钟学会Sql Server的复制功能有两个服务器,装了两个数据库,一个是主的,一个是备用的,下面的的功能就将主数据库的数据库,实时同步到备用数据库上,使他们的数据内容,基本上保持一致。

根据网络情况,可能达到10秒左右的延时,即主数据库添加,删除,更新的内容,一般在10秒内就可以同步到备用数据库上。

三分钟的视频操作演示在最下面,不要忘记看了。

1、配置分布发服务器2、新建发布3、这里介绍事务发布4、选择要发布的表,注意:只有带主键的表才可以发布5、这是个问题,因为很多表中,我们会有这个自动编号的功能,不过你可以自己修改存储过程来实现这个功能。

加上用到SET IDENTITY_INSERT xxxtable ON的功能6、发布建好后,我们有强制新订阅来发布,如果要同步到多台机器,只要操作多次,选择不同的订阅服务器就可以了。

7、选择订阅的服务器,可以一次选多台8、选择订阅服务器上的数据库名称9、根据要求,选择是否初始化,初始化的过程,就是将在订阅服务器上创建传输用的存储过程,新建表,同步初始的数据。

10、通过初始化建的表,像自动编号这样的结构是没有用,需要自己来修改。

11、这里有同步需要的存储过程,根据自己的业务需要,可以改一下,比如支持自动编号的功能我个人一般使用下面操作:1、把复制用的存储过程放在主数据库上,同时根据业务需要,适当的改一下存储过程的内容2、禁止对主数据写操作,备份主数据库3、在备用的服务器上还原数据库4、使用复制功能5、开启对主数据库写这样,主数据和备用数据的表结构就完全一致。

看了上面的图片,花了不知道有没有三分钟,当然只看的话,十分钟可能也不会明白,操作一下才可以。

利用MSSQL复制技术实现数据同步复制的概念Microsoft? SQL Server? 2000 的复制是在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。

使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过Internet 分发给远程或移动用户。

复制还能够使用户提高应用程序性能,根据数据的使用方式物理分隔数据(例如,将联机事务处理(OLTP) 和决策支持系统分开),或者跨越多个服务器分布数据库处理。

---------------------------------------------------------------------------SQL复制的基本元素包括发布服务器、订阅服务器、分发服务器、发布、项目发布服务器发布服务器是提供数据以便复制到其它服务器的服务器。

发布服务器可以具有一个或多个发布,每个发布代表一组逻辑相关的数据。

除了指定其中哪些数据需要复制之外,发布服务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。

分发服务器分发服务器是作为分发数据库宿主并存储历史数据和/或事务以及元数据的服务器。

分发服务器的角色根据执行的复制类型而不同。

有关更多信息,请参见复制类型。

远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。

本地分发服务器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。

订阅服务器订阅服务器是接收复制数据的服务器。

订阅服务器订阅的是发布而不是发布中分离的项目;并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。

根据复制的类型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布到其它订阅服务器。

发布发布是一个数据库中的一个或多个项目的集合。

这种多个项目的分组使得指定逻辑相关的一组数据和数据库对象以一起复制变得更容易。

项目项目是指定要复制的数据表、数据分区或数据库对象。

项目可以是完整的表、某几列(使用垂直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图或用户定义函数。

订阅订阅是对数据或数据库对象的复本的请求。

订阅定义将接收的发布和接收的时间、地点。

订阅的同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。

发布可以支持强制订阅和请求订阅的混合。

---------------------------------------------------------------------------SQL复制的工作原理SQL SERVER 主要采用出版物、订阅的方式来处理复制。

源数据所在的服务器是出版服务器,负责发表数据。

出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器---------------------------------------------------------------------------SQL SERVER复制技术类型,三种复制技术,分别是(详细的说明参考SQL联机帮助):1、快照复制2、事务复制3、合并复制====================================================================== ======下介绍实现复制的步骤。

(以快照复制为例)准备工作:1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户--我的电脑--控制面板--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:我的电脑--D:\ 新建一个目录,名为: PUB--右键这个新建的目录--属性--共享--选择"共享该文件夹"--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限--确定3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)开始--程序--管理工具--服务--右键SQLSERVERAGENT--属性--登陆--选择"此账户"--输入或者选择第一步中创建的windows登录用户名--"密码"中输入该用户的密码4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)企业管理器--右键SQL实例--属性--安全性--身份验证--选择"SQL Server 和Windows"--确定5.在发布服务器和订阅服务器上互相注册企业管理器--右键SQL Server组--新建SQL Server注册...--下一步--可用的服务器中,输入你要注册的远程服务器名--添加--下一步--连接使用,选择第二个"SQL Server身份验证"--下一步--输入用户名和密码--下一步--选择SQL Server组,也可以创建一个新组--下一步--完成6.对于只能用IP,不能用计算机名的,为其注册服务器别名(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)开始--程序--Microsoft SQL Server--客户端网络实用工具--别名--添加--网络库选择"tcp/ip"--服务器别名输入SQL服务器名--连接参数--服务器名称中输入SQL服务器ip地址--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号====================================================================== ========正式开始:1.配置发布服务器a. 选中指定[服务器] 节点b. 从[工具] 下拉菜单的[复制] 子菜单中选择[发布、订阅服务器和分发] 命令c. 系统弹出一个对话框点[下一步] 然后看着提示操作--直到"指定快照文件夹"--在"快照文件夹"中输入准备工作中创建的目录: \\<服务器名>\pub一[下一步] 直操作到完成。

d. 当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器同时也生成一个分发数据库(distribution)---------------------------------------------------------------------------2.创建发布a. 选中指定的服务器b. 从[工具] 菜单的[复制] 子菜单中选择[创建和管理发布] 命令。

此时系统会弹出一个对话框c. 选择要创建发布的数据库,然后单击[创建发布]d. 在[创建发布向导] 的提示对话框中单击[下一步] 系统就会弹出一个对话框。

对话框上的内容是复制的三个类型。

我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)e. 单击[下一步] 系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如ORACLE或ACCESS之间进行数据复制。

但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器f. 单击[下一步] ,选择要发布的对象(如表,视图,存储过程,一般是表)g. 然后[下一步] 直到操作完成。

当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。

---------------------------------------------------------------------------3.设计订阅a. 选中指定的订阅服务器b. 从[工具] 下拉菜单中选择[复制] 子菜单的[请求订阅]c. 按照提示单击[下一步] 操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。

d. 单击[完成] 完成订阅操作。

----------------------------------------------------------------------------完成上面的步骤其实复制也就是成功了。

但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。

展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。

接下来就是判断复制是否成功了打开C:\Program Files\Microsoft SQLServer\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。

相关主题