SQL Server2005数据同步

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

 SQL Server2005中对于增、删、改和查询是有某些冲突的,很容易造成死锁。现在有台数据库里的FileDetail表是由两套程序来操作的,一套程序负责增、删、改,另一套程序负责查询,结果当数据量大的时候,很容易造成查询的那套程序查询数据很慢,甚至造成死锁的情况。原因是SQL Server2005里的设计机制是插入的时候,死锁的记录只会是某一条,并不影响下一条和上一条,但是纠结的情况来了,你插入的时候是爽了,并不影响你,可是当我查询的时候,如果发现某一条记录被死锁,那么我这条T-SQL查询的结果就是全部死锁,查询不出任何东西。

为了解决这个问题,我们可以使用同步来解决这个问题,将这台数据库分开,我们建立两个FileDetail表,一个用来给增、删、改的程序使用,另一个给查询的程序来调用,这样就可以解决以上的难题。

在SQL Server2005中,同步数据需要:发布服务器、分发服务器和订阅服务器,源数据所在的服务器是发布服务器,负责发表数据。发布服务器把要复制的数据或对象发生的改变复制到分发服务器,分发服务器用来接收数据的所有改变,它包含一个分发数据库,并保存这些改变,再把这些改变分发给订阅服务器。在复制过程中,发布服务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用。订阅服务器是接收复制数据的数据库实例。一个订阅服务器可以从多个发布服务器上接收数据。

下面的例子因为我现在没有那么多资源,只用了本机做测试,我还测试了两台之间的操作,大家有兴趣的可以弄多台来试试。

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

QQ截图20130405171334.jpg

 

首先我们开启SQL Server代理(默认是禁用的)

002.jpg

 

正在启动——》启动成功

 

现在我们来复制下数据库。

点击siccdb右键-任务-复制数据库,出现以下界面

0036.jpg

 

下一步

004.jpg

 

这里使用SQL Server身份验证,一般建议大家都用这种方式,安全,不会出错。填好之后,下一步。

006.jpg

 

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

原因

你的计算机改过计算机名

可以使用

SELECT * FROM Sys.SysServers来查询下数据库里的源服务器名

007.jpg

 

我这里是WILCOM-DEV_SQLS

我们ping下服务器的IP地址,远程登录不上的可以在C:WINDOWSsystem32driversetc下的hosts文件里配置下

008.jpg

 

下一步:

010.jpg

 

这里大家可以根据实际情况来选择,默认是第一种,我这里选择第二种,因为我的源数据库是不能断开的(断开了就要出大事了,呵呵,开个玩笑)好了,废话不多说,选中后点下一步:

011.jpg

 

这里默认会勾选你要发布的数据库,状态必须是已存在于目标上才可以发布。好了,我这里没有问题,下一步:

012.jpg

 

这里是目标数据库,我给改了下目标数据库的名字为siccdb_bak

下面选择如果目标数据库已存在的情况,我选择第一种,下一步。

013.jpg

这里大家可以不要动,保持默认就好。直接下一步

014.jpg

 

我这里就不选择计划了,大家可以自己试试看计划的执行状态。

如果你发现下面的integration Services代理账号不让选,是灰色的禁止状态,那建议你看下你的SQL Server服务有没有安装这个,如果没有,那悲催了,你就重新运行SQL Server的安装向导重新安装下这个服务吧。(下图的这个服务)

015.jpg

 

紧接着,下一步

016.jpg

 

这里就可以完成啦。

017.jpg

 

OK,复制完毕。

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

现在,我们来进行发布这个siccdb数据库,让siccdb_bak来保持和它同步。

018.jpg

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

019.jpg

 

下一步:

020.jpg

 

默认第一个,下一步。

021.jpg

 

这里是存放快照文件的目录,大家默认即可, 免的后面找不到。下一步:

022.jpg

 

这里我们选择需要发布的数据库,下一步:

023.jpg

 

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

024.jpg

 

这里我们展开表,可以发现这个库下的所有表,我们可以根据情况来勾选,好了,下一步:

025.jpg

 

这里我们还可以对选中的表添加SQL语句来筛选,因为我这里用不到,就不给大家做演示了,节约时间,赶紧写教程。下一步:

026.jpg

这里我们需要勾选立即和计划,勾选计划后,我们选择更改

027.jpg

 

我这里需要实时同步,所以我选择了每天每分钟来进行同步,大家可以根据实际情况来选择,好了,确定。

028.jpg

好了,现在来检查下是否是你选择的计划,下一步:

029.jpg

 

这里选择安全设置,

030.jpg

 

上面的信息我在前面已经说过了,如果不知道的,可以参考我前面的说明。填好后,确定。

031.jpg

 

下一步:

032.jpg

 

立即发布,下一步:

033.jpg

 

这里填好发布名称,完成。

034.jpg

 

OK,一切正常,我们关闭。

035.jpg

 

本地发布下多了一个[siccdb]:TOB就是我们刚创建的发布,现在我们需要来订阅它,右键本地订阅-新建订阅:

037.jpg

 

打开订阅向导,下一步:

038.jpg

 

这里找到了我们的发布源,下一步:

039.jpg

 

这里选择[推送订阅],简单点,不耽误时间了,下一步:

040.jpg

这里我们选择好订阅服务器和订阅数据库,下一步:

041.jpg

 

这里我们选好与分发服务器、与订阅服务器的连接:

[CropImg]042.jpg

 

填好后,确定。

043.jpg

 

选择连续运行,下一步:

044.jpg

 

选择连续运行,下一步:

045.jpg

 

创建订阅,下一步:

046.jpg

 

好了,这里就完成了。

047.jpg

 

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



本文转自shyy8712872 51CTO博客,原文链接:http://blog.51cto.com/shuyangyang/1171669,如需转载请自行联系原作者


相关实践学习
使用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
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
“震撼揭秘!Flink CDC如何轻松实现SQL Server到MySQL的实时数据同步?一招在手,数据无忧!”
【8月更文挑战第7天】随着大数据技术的发展,实时数据同步变得至关重要。Apache Flink作为高性能流处理框架,在实时数据处理领域扮演着核心角色。Flink CDC(Change Data Capture)组件的加入,使得数据同步更为高效。本文介绍如何使用Flink CDC实现从SQL Server到MySQL的实时数据同步,并提供示例代码。首先确保SQL Server启用了CDC功能,接着在Flink环境中引入相关连接器。通过定义源表与目标表,并执行简单的`INSERT INTO SELECT`语句,即可完成数据同步。
338 1
|
6月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从MySQL到Flink 1.16.2 Flink-SQL的数据同步工作出现了一个异常如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
123 0
|
6月前
|
SQL 关系型数据库 MySQL
这个错误可能是由于Flink CDC在处理MySQL和SQL Server之间的数据同步时遇到了问题
这个错误可能是由于Flink CDC在处理MySQL和SQL Server之间的数据同步时遇到了问题
114 1
|
SQL 缓存 数据库
理论:第三章:索引使用的限制条件,sql优化有哪些,数据同步问题(缓存和数据库),缓存优化
理论:第三章:索引使用的限制条件,sql优化有哪些,数据同步问题(缓存和数据库),缓存优化
129 0
|
SQL 关系型数据库 MySQL
mysql数据同步sql导入导出.sql文件
mysql数据同步sql导入导出.sql文件
122 0
|
SQL 消息中间件 缓存
基于 Flink SQL CDC 的实时数据同步方案
Flink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的数据同步方案,基于 Flink CDC 同步的解决方案以及更多的应用场景和 CDC 未来开发规划等方面进行介绍和演示。
基于 Flink SQL CDC 的实时数据同步方案
04.SQLServer性能优化之---读写分离&数据同步
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql   过段时间再继续写文章吧,本来准备把SQLServer一个系列写完的,最近状态很差很不好,调节调节吧,这样也能码出更多的好文~ 作者:毒逆天 出处:https://www.cnblogs.com/dotnetcrazy 打赏:18i4JpL6g54yAPAefdtgqwRrZ43YJwAV5z 本文版权归作者和博客园共有。
782 0
|
SQL 存储 数据库
利用SQL Server复制技术实现数据同步更新
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/2563079 利用SQL Server复制技术实现数据同步更新 Microsoft SQL Server 2000复制的概念:在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。
1034 0
|
2月前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
101 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
7天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。

热门文章

最新文章