昨天在更新数据库的时候遇到一个奇怪的问题,先描述如下: 环境:一台sql server 2008数据库服务器,操作系统为windows 2008 server 此服务器作为replication的发布服务器,以下简称2008 另外一台sql server 2005数据库服务器,操作系统为windows 2003 server 此服务器为订阅服务器,以下简称2005 采用日志传送的方式实现数据同步。 数据库中有表A,结构为 id, data1,data2,data3,data4 因为前面replication没有及时启动,出现了一条数据没更新到订阅服务器上的情况 2008里有下面的数据: id, data1,data2,data3,data4 1 1.1 1.2 1.3 1.4 但是2005里数据为: id,data1,data2,data3,data4 1 1.1 NULL 1.3 1.4 以下为问题: 我在2008里(replication 的发布服务器)执行如下语句: update A set data2 = 1.2 where id = 1 此时2005里的数据并没有被更新!!!!! 什么原因? 后续: 在2008里执行 delete A where id = 1 结果2005里id=1的数据被删除 再执行insert A (id,data1,data2,data3,data4)values(1,1.1,1.2,1.3,1.4) 2005里数据也被新增进来,一切正常 现在怀疑是2008的replication里做了优化 对于第一步里的操作,不会传送日志,但是没有找到相关文档 有遇到此类问题的或者有相关文档的,一起分享下
2008没用过,友情帮顶.
引用 1 楼 dawugui 的回复:2008没用过,友情帮顶. ..
Apress-Pro SQL Server 2008 Replication (2009) 去ITPUB上面下
2008没用过,关注 不过update这样的动作,再怎么优化,也应该同步一致才对吧!
2008好东西啊,不过俺还是用的2000多 和 2005用了那么几次 update A set data2 = 1.2 where id = 1 这句好像有问题,因为2008的A中DATA2已经是1.2了,你再UPDATE都是没有改变它的值 应该是没有触发吧 而DELETE AND INSERT是改变了值的, 一家之言!!
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。