`

使用Sqlserver事务发布实现数据同步

阅读更多

原文 http://www.cnblogs.com/daizhj/archive/2009/11/18/1605293.html

 

事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进 的。这里以sqlserver2008的事务发布功能为例,对发布订阅的方式简要介绍一下操作流程,一方面做个总结备份,一方面与大家进行一下分享和交 流。费话就不多说了,进入一下今天的正题:)

     这里要说明一下环境:首先我在本地局域网内有两台安装有sqlserver2008的机器(注意:已发布的快照版本无法向老版本数据库兼容,意味着 2008下创建的事务或快照发布,无法被sqlserver2005订阅)。当然这两台机器要放在同一个网段,一方面出现性能和安全性考虑,另一方面是我 目前还没有找到跨不同网段的快照应用方案(可行性的那种)。

     好了,这里我以我们产品数据库为准来介绍一下如何通过发布订阅的方式来进行数据同步。

     首先,在要发布的数据库上创建一个我们的产品数据库(这里叫做dnt_new),然后在该数据库实例的左侧导航的“复制”--“本地发布”上击右键,然后选择“新建发布”,如下:

      sqlserver_snap_1

 

      这样,系统就会启动‘发布向导’来引导大家,这里我们在欢迎界面下点击"下一步”,然后在当前窗口中选择要发布的数据库,如下:

sqlserver_snap_2

      点击下一步,然后在接下来的窗口中选择“事务发布”,如下图:

sqlserver_snap_3

        然后点击下一步,选择要同步的数据对象(数据表,存储过程,自定义函数等),如下:

sqlserver_snap_4

 

       然后就是“项目问题窗口”,因为之前已用dbo身份登陆,所以这里只要点击下一步即可,如下图:

sqlserver_snap_5

        这里可以通过“添加”方式来过滤要同步的数据信息,因为要做全表数据同步,所以这里就不做设置了,感兴趣的朋友可以自己研究一下,这里接着点击下一步,如下:

sqlserver_snap_6

      然后在‘代理安全性’窗口中,点击“安全设置”按钮:

sqlserver_snap_7

       在弹出的‘安全设置’子窗口中设置如下信息,并点击‘确定’按钮:

sqlserver_snap_8

       然后点击下一步按钮:

sqlserver_snap_9

      选择“创建发布”复选框,然后点击下一步,这时向导会让您输入“发布名称”,这里命名为“dnt_new_snap”:

sqlserver_snap_10

 

      点击“完成按钮”,这里系统就开始根据之前收集的信息来创建该发布对象信息了,如下:

sqlserver_snap_11

 

 

      到这里,‘创建发布’的工作就完成了。下面介绍一下创建订阅的流程。在另一个机器的sqlserver实例上,打开该实例并使用“复制”—“新建订阅”,如下图:

sqlserver_snap_12  

 

        这时系统就会启动“新建订阅”向导,点击下一步,并在“发布”窗口中的“发布服务器”下拉框中选择“查打发布sqlserver服务器”项,如下:

sqlserver_snap_13

     然后在弹出窗口中选择之前‘创建发布时所使用的数据库实例’并进行验进登陆,这时,发布服务器的信息就会出现在下方的列表框中:

sqlserver_snap_14  

 

        选择之前我们创建的那个发布对象“dnt_new_snap”,接着点击下一步:

sqlserver_snap_15

       在分发代理位置窗口中,选择“在分布服务器上运行所有代理”,然后点击下一步,然后在“订阅服务器”窗口中的订阅数据库列表框中选择一下要同步的订阅数据库名称(可新建):

sqlserver_snap_16

        点击下一步,然后在‘分发代理安全性’窗口中,点击列表框中的‘…’来设置安装性,并做如下设置(注意红框部分):

sqlserver_snap_18

 

 

     然后点击“确定”按钮,之后在向导上点击“下一步”按钮,这时系统就会显示“代理计划执行方式”窗口,选择“连续运行”:

sqlserver_snap_19

 

      点击下一步,在窗口中选择“立即执行”:

sqlserver_snap_20

       完成了这一步,点击下一步按钮,然后就可以创建该订阅对象了,如果一切运行正常,sqlserver就会从‘发布服务器’那边,将之前指定的数据表和存储过程等同步到当前的‘订阅数据库’中了。

       这时我们可以在源数据库(发布服务器)上的表中添加或修改指定表数据信息,在等待1-3秒之后,所做的添加和修改就会同步到‘订阅数据库’上的相应表中。看来目的是达到了,呵呵。

 

       好了,今天的内容就到这里了。

       注: 本文中的两台机器必定是可以使用sqlserver客户端互联 (在sqlserver studio中设置'允许远程链接',同时要设置相应的ip地址,以及在配置管理器中开启tcp/ip协议即可)

 

分享到:
评论

相关推荐

    使用Sqlserver事务发布实现数据同步(sql2008)

    事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的。这里以sqlserver2008的事务发布功能为例,对发布订阅的方式简要介绍一下...

    sqlserver无主键表的同步方案1

    背景介绍对sqlserver做数据库同步的时候,由于医院服务器和数据库版本的限制,选择了用发布订阅处理数据库同步,但是这个方式只能处理有主键的表,对于无主键的表

    SQL SERVER 2008 数据同步设置指南

    SQL SERVER 2008 数据同步设置指南 A、B两台服务器通过事务复制实现数据同步备份的功能

    基于FlinkSQLCDC的实时数据同步方案

    很明显这种模式是不可持续发展的,这种双写到各个数据存储系统中可能导致不可维护和扩展,数据一致性问题等,需要引入分布式事务,成本和复杂度也随之增加。我们可以通过CDC(ChangeDataCapture)工具进行解除耦合,...

    SQLServer Integration Service 数据传输导入导出

    基于SQLServer2005 Integration Service的数据导入导出的案例, XML源->数据表->Excel文件,使用数据转换组件,XML组件,Excel 文件组件,利用事务控制和隔离机制管理多个组件件的数据同步

    SQL SERVER 2000开发与管理应用实例

    9.4.2 实现客户端其他OLE DB数据源与SQL Server之间的数据交换 289 9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库中存取文件 290 9.5.1 SQL Server中的文件存取方法 290 ...

    SQL Server 2008 商业智能完美解决方案(3)

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    sqlserver 2000数据库同步 同步两个SQLServer数据库的内容

    2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作: 我的电脑 D:\ 新建一个目录,名为: PUB 右键这个新建的目录 属性 共享 选择”共享该文件夹” 通过”权限”按纽来设置具体的用户权限,保证第...

    sql数据库事务机制详解

    同步发生数据更新时,防止数据的不一致。 原子性 一致性 隔离性 持久性 事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。

    sqlserver增删改查完整详细30条

    sqlserver增删改查完整详细30条 SQL Server 是一种关系型数据库管理系统,它提供了用于处理数据库中数据的各种命令和查询。以下是一些基本的 SQL Server 增删改查(CRUD)操作的示例: 14. 事务日志(Transaction ...

    青茂数据同步工具 同步数据库部分结构的工具

    DBSync 数据同步工具是一款异构数据库之间数据同步的工具,目前支持的数据库有:access、sqlserver、oracle、 db2、sybase ase 11-15,Mysql,同时,该软件提供的ODBC的同步功能,可以间接实现对FireBird,INTERBASE等...

    基于Linux系统的sqlserver镜像模式(包含见证)

    数据库镜像通过数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境的另一个SQL Server数据库中来实现。镜像的拷贝是一个备用拷贝,一般情况下不能直接访问,只在主服务器出现错误时提供恢复,镜像服务器...

    SQLServer2000高级编程技术-已添加书签,想学存储过程、SQL编程务必要看,分析非常透彻

    目录如下: 第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和...附录A SQL Server 2000中的T-SQL和XML数据类型 附录B 练习答案

    SQL Server 2008商业智能完美解决方案 1/3

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    MSSQL SQLServer分布式集群Python自动故障转移脚本

    【MSSQL 】SQLServer分布式集群Python自动故障转移脚本 #安装依赖 pip install pymssql #windows打包 pyinstaller -w -F mssqlScript.py ######or pyinstaller -F mssqlScript.py #windows运行 ./mssqlScript.exe ...

    SQL Server 2008商业智能完美解决方案 3/3

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    SQL Server 2008商业智能完美解决方案 2/3

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    SQL Server日志文件不断增长处理方法

    先了解SQLServer需要保存的日志记录:  1、所有没有经过“检查点”的日志记录:  SQLServer定时执行(Checkpoint),保证“脏页”被写入硬盘。没做Checkpoint的,可能是只在内存中修改,数据文件还没同步。SQL...

    SQL Server 2005 镜像构建手册(sql2005数据库同步镜像方案)

    数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像不能直接访问;它只用在错误恢复的情况下才可以被访问。 要进行数据库镜像所需的最小需求包括了两个...

    sqlserver2000基础(高手也有用)

    9.4.2 实现客户端其他OLE DB数据源与SQL Server之间的数据交换 289 9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库中存取文件 290 9.5.1 SQL Server中的文件存取方法 290 ...

Global site tag (gtag.js) - Google Analytics