SQLServer数据库同步问题

SQLServer数据库同步问题,第1张

SQLServer数据库同步问题,第2张

通过数据复制,我们可以跨局域网和互联网在不同的数据库服务器上维护多个数据的多个副本,同时可以同步或异步地保证副本之间的数据一致性。

SQL Server提供了完善的内置数据复制能力,这是SQL Server核心引擎中非常重要的一部分。

复制SQL Server有三种方式:

快照:在某个时间点对发布数据库中的数据进行拍照,然后将其复制到订购服务器。一般用于复制静态表。

事务:复制的内容是多个语句和存储过程,这样排序数据库只读取数据库的数据修改模式,并反映这种修改。一般来说,用户更新数据库的频率很高。

合并:允许采购方和发布方双向修改,并将修改反映到双方的数据库中。如果有数据冲突,会按照一定的规则处理冲突。

目前,该公司使用一个网站,数据库位于美国、荷兰和深圳。在网站基础设施上,我们使用3DNS和BigIP实现智能域名解析和负载均衡。但由于三地有各自的数据库(SQL Server),所以需要保证各个数据库的数据一致。我们需要进行数据复制。根据用户的要求,我们做事务性复制,这在网站的前两个版本中很正常。然而,在最近两周更新了网页版本后,我们发现事务性复制经常出错。短时间间隔后,重新事务复制仍会发生。检查后错误日志发现提示:

查询处理器无法从优化器生成查询计划,因为查询无法同时更新text、ntext或image列和聚集键

检查数据库表,筛选后确定一个有问题的表(XXX_article)。经与程序员确认,发现该表属性更改为ntext类型,该字段和该表的聚集索引字段将同时更新。

所以怀疑在做事务复制的时候会同时修改这两个位置,查阅相关资料也找不到明确的官方解释。但是其他程序的人在程序代码中发现了类似的问题,解决方法是分成两个域,即更新两次。具体的技术细节还没有解释清楚。我们无法干预事务复制的进程,所以不会为xxx_article做事务复制。然后做一个xxx_article的快照拷贝,可以避免这个问题。经过测试和应用,这一问题得到了解决。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQLServer数据库同步问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情