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

2016-02-19 10:27 8 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐使用Sqlserver事务发布实现数据同步(sql2008),赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

事务的功能在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秒之后,所做的添加和修改就会同步到‘订阅数据库'上的相应表中。看来目的是达到了,呵呵。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

      作者: daizhj, 代震军

来源:https://www.tulaoshi.com/n/20160219/1594703.html

延伸阅读
一、锁的基本概念: 锁定 (Locking)是一个关系型数据库系统的常规和必要的一部分,它防止对相同数据作 并发更新 或在更新过程中查看数据, 从而保证被更新数据的完整性。它也能防止用户读取正在被修改的数据 。Sql Server动态地管理锁定,然而,还是很有必要 了解Transact- SQL查询如何影响SQL Server中的锁定。...
通常短时间的阻塞没有问题,且是较忙的应用程序所需要的。然而,设计糟糕的应用程序会导致长时间的阻塞,这就不必要地锁定了资源,而且阻塞了其他会话读取和更新它们。 在SQL Server中,一个阻塞的进程会无限期地保持阻塞,或者直到它超时(根据set lock_timeout)、服务器关闭、进程被杀死、连接完成了更新或者其他发生在原始事务上的操作导致...
代码如下: private void AddManyData_Click(object sender, RoutedEventArgs e)        {            OpenFileDialog openFileDialog = new OpenFileDialog();            openFileDialog.Filter...
标签: 电脑入门
安装SQL2008是出现提示Could not open key 操作步骤: 解决SQL Server 2008 R2安装过程中提示Could not open key的解决方法: 以管理员身份运行CMD命令提示符,输入以下语句并运行就OK了 secedit /configure /cfg %windir%infdefltbase.inf /db defltbase.sdb /verbose 重新安装就可以了。
在win7 x64系统上使用sql2008进行附加数据库(包括在x86系统正在使用的数据库文件,直接拷贝附加在X64系统中)时,提示无法打开文件,5120错误。 是因为没有操作权限,所以附加的时候出错,只要设置这个文件或文件夹安全属性即可。 解决办法: 1.打开该数据库文件存放的目录或数据库文件的属性窗口,选择“属性”菜单-选择“安全”标签-选...

经验教程

975

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部