sql2012同步,sql2005连接数据库

  sql2012同步,sql2005连接数据库

  本文来自我的个人网站【思想者日记】。请保留这一来源,以供转载。

  在SQL Server2005中,添加、删除、修改和查询都存在一些冲突,很容易导致死锁。目前,数据库中的FileDetail表由两个程序操作。一个程序负责添加、删除、更改,另一个程序负责查询。这样一来,当数据量较大时,很容易导致被查询的程序查询数据较慢,甚至造成死锁。原因是SQL Server2005中的设计机制是插入时,死锁记录只会是某一条,不会影响下一条和上一条。但是,纠结的情况来了,你插的时候会很痛快,不会影响你。但是你在I查询的时候,如果发现某条记录死锁了,那么我的T-SQL查询的结果就是全部死锁,什么都找不到。

  要解决这个问题,我们可以用同步来解决这个问题。通过分离这个数据库,我们建立了两个FileDetail表,一个用于添加、删除、更改程序,一个用于查询要调用的程序,可以解决上述问题。

  在SQL Server2005中,数据同步需要:发布服务器、分发服务器和订阅服务器,源数据所在的服务器就是发布服务器,发布服务器负责发布数据。发布者将要复制的数据或对象的更改复制到分发服务器,分发服务器用于接收数据的所有更改。它包含一个分发数据库,保存这些更改,然后将它们分发给订阅者。在复制的过程中,发布者是数据库实例,通过复制向其他位置提供数据,分发者也是数据库实例,充当存储区域。订阅服务器是接收复制数据的数据库实例。订阅者可以从多个发布者接收数据。

  下面这个例子是因为我现在没有那么多资源。我只用这台机器做测试。我还测试了两台机器之间的操作。有兴趣的话可以多弄几台试试。

  现在让我们通过SQL Server2005实现数据同步:

  首先,我们打开SQL Server代理(默认情况下是禁用的)

  开始——”开始成功。

  现在让我们复制数据库。

  右键单击sic CDB-任务-复制数据库,出现如下界面

  下一步

  这里使用的是SQL Server身份验证。一般建议大家都用这个方法,安全无错。填完了,下一步。

  这里的目标服务器也使用SQL Server身份验证。如果你想使用同一网段内其他电脑的数据库,那么这里的目标服务器可以选择你的远程电脑。注意:远程计算机连接不支持IP和别名,因此您必须使用域登录名(即域计算机登录名)。下面是我在测试两台电脑同步时遇到的问题。发现登录不了?

  原因

  您的计算机更改了名称。

  可以使用

  SELECT*FROMSys。SysServers在数据库中查询源服务器名称。

  我是WILCOM-DEV_SQLS

  让我们ping一下服务器的IP地址。如果不能远程登录,可以在C:WINDOWSsystem32driversetc下的hosts文件中进行配置。

  下一步:

  你可以根据实际情况在这里选择。默认是第一种,我这里选第二种,因为我的源数据库不能断网(断网会出大事,呵呵,开玩笑)。好了,事不宜迟,选择后点击下一步:

  默认情况下,您要发布的数据库将在此处选中,并且在发布之前状态必须已经存在于目标上。好的,我这里没问题。下一步:

  这是目标数据库。我将目标数据库的名称改为siccdb_bak。

  下面,如果目标数据库已经存在,我将选择第一个,然后是下一个。

  大家都可以在这里呆着不动,保持默认就好。指导下一步

  这里就不选方案了。可以自己试试计划的执行状况。

  如果您发现以下integration Services代理帐户不允许选择,处于灰色禁止状态,建议您检查一下您的SQL Server服务是否安装了该帐户。如果没有,这是一个可悲的提醒。请重新运行SQL Server的安装向导来重新安装此服务。(下图这个服务)

  然后,下一步

  你可以在这里完成。

  好了,复制完成。

  刷新数据库,我们会发现多了一个siccdb_bak。

  现在,我们公布这个siccdb数据库,让siccdb_bak跟上。

  在数据库的同一目录下选择复制-本地发布-新建发布,启动发布向导。

  下一步:

  先默认,下一个。

  这里是存储快照文件的目录。默认可以用,但是后面找不到。下一步:

  在这里,我们选择要发布的数据库。接下来:

  这里,我们选择发布快照。你可以参考上图中的说明来尝试其他选项。相信大家都很聪明。下一步:

  在这里我们展开表,我们可以找到这个库下的所有表。我们可以根据情况检查他们。好,下一步:

  在这里,我们还可以将SQL语句添加到要过滤的选定表中。因为我这里用不到,就不给大家演示了。省点时间,赶紧写个教程。下一步:

  在这里,我们需要检查立即和计划。检查计划后,我们选择改变。

  这里需要实时同步,所以选择每天每分钟同步。可以根据实际情况选择。好吧,好吧。

  好的,现在让我们检查一下这是不是你选择的计划。接下来:

  在此选择安全设置,

  以上信息我已经说了。如果你不知道,请参考我之前的说明。填完之后,确认一下。

  下一步:

  立即释放,下一步:

  在这里填写发布名称,就完成了。

  好了,一切正常,我们关门了。

  本地发布下面还有一个【原文CDB】:tob是我们刚刚创建的发布,现在我们需要订阅它,右键本地订阅-新建订阅:

  打开订阅向导。接下来:

  我们在这里找到了我们的发布来源。下一步:

  在此选择[推送订阅]。很简单,不要浪费时间。接下来:

  这里,我们选择订阅者和订阅数据库。接下来:

  这里,我们选择与分发服务器和订阅服务器的连接:

  填完之后,确认一下。

  选择连续运行。接下来:

  选择连续运行。接下来:

  创建订阅。接下来:

  好吧,就这样。

  现在我们在siccdb中添加、删除、更改一些数据,一分钟后就会发现,siccdb_bak也同步更新了这些数据。

  本文来自我的个人网站【思想者日记】。请保留这一来源,以供转载。

sql2012同步,sql2005连接数据库