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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

事务的功能在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协议即可)


本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/p/3837383.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
6月前
|
存储
SQLServer存储过程中事务的创建
SQLServer存储过程中事务的创建
48 0
|
9月前
|
SQL 安全 关系型数据库
SqlServer事务详解(事务隔离性和隔离级别详解)(下)
SqlServer事务详解(事务隔离性和隔离级别详解)(下)
|
9月前
|
SQL Oracle 关系型数据库
SqlServer事务详解(事务隔离性和隔离级别详解)(上)
SqlServer事务详解(事务隔离性和隔离级别详解)
|
SQL 存储 数据库
处理令人心烦的数据库事务日志 (SQL Server Transaction Log Files)
经常, 我们会被过快增长的数据库事务日志Transaction Log而困扰, 如果我们没有正确及时的处理, 可能会造成数据库交易无法进行, 服务器磁盘空间占光等问题. 在SQL Server的使用过程中, 我经常帮助用户和数据库的维护人员处理日志Transaction Log太大后造成的系统瘫痪的问题. 其实这个问题很容易避免. 今天我给大家分享下, 是什么造成了日志增长过大的问题. 和如何避免这种问题再次发生. 该文章的语句适用于SQL Server 2015 及其以后的版本 每一个数据库至少有两个文件: 一个是数据文件(Data file), 一个是事务日志文件(Transaction
669 0
|
存储 数据库连接 数据库
连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法
原文:连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法   本文出处:http://www.cnblogs.com/wy123/p/6110349.html    之前遇到过这么一种情况:   连接数据库的部分Session会出现不定时的阻塞,这种阻塞时长时短,有时候持续较长时间,有时间持续时间较短,没有什么规律。
1527 0
|
SQL 监控 数据库
sql server 备份与恢复系列二 事务日志概述
原文:sql server 备份与恢复系列二 事务日志概述   1.1  日志文件与数据文件一致性  在上一章备份与恢复里了解到事务日志的重要性,这篇重点来了解事务日志。 事务日志记录了数据库所有的改变,能恢复该数据库到改变之前的任意状态。
1085 0
|
SQL 数据库
sql server 锁与事务拨云见日(中)
原文:sql server 锁与事务拨云见日(中) 一.事务的概述    上一章节里,重点讲到了锁,以及锁与事务的关系。离上篇发布时间好几天了,每天利用一点空闲时间还真是要坚持。听《明朝那些事儿》中讲到"人与人最小的差距是聪明,人与人最大的差距是坚持"很经典的一句话一直记得。
1078 0
|
SQL 存储 数据库
sql server 锁与事务拨云见日(上)
原文:sql server 锁与事务拨云见日(上)  一.概述   讲到sql server锁管理时,感觉它是一个大话题,因为它不但重要而且涉及的知识点很多,重点在于要掌握高并发要先要掌握锁与事务,涉及的知识点多它包括各式各样的锁,锁的组合,锁的排斥,锁延伸出来的事务隔离级别, 锁住资源带来的阻塞,锁之间的争用造成的死锁,索引数据与锁等。
1429 0
|
SQL
sql server 完整备份、差异备份、事务日志备份
原文:sql server 完整备份、差异备份、事务日志备份 一、 理解:        完整备份为基础, 完整备份可以实物回滚还原,但是由于完整备份文件过大,对硬盘空间比较浪费这是就需要差异备份 或者 事务日志备份。
2035 0