数据同步问题,解决给200分

zxyjyzxyjy 2005-09-20 04:41:10
有两台数据库服务器(A、B),都是SQL Server,两台服务器上有完全相同的数据库及表。

客户对数据库操作(指增加,删除,修改)时,一般都是同时对两数据服务器进行操作,当其中的一台B出现了故障时,这时用户可能对另一台A服务器时行了操作,而服务器B在故障期间没有变化,现要求出故障的B在恢复正常后,其数据与A同步。

注意这里的数据库服务器没有一个主、备的关系,也就是说两台谁都有出故障的可能,出故障的一台恢复后一定要与在运行的那台实现数据同步,请问如何实现。
...全文
329 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobibobi 2005-09-22
  • 打赏
  • 举报
回复
做个双机吧
zxyjyzxyjy 2005-09-21
  • 打赏
  • 举报
回复
也就是说,该问题如果用SQL Server提供的技术来做,要么相当复杂,还不如自已实现更容易,要么就是无解。
云中客 2005-09-21
  • 打赏
  • 举报
回复
楼主,有时候技术并不能把所有问题都解决,能否想办法对你们的业务方面(或者是对数据库操作及错误处理方面做一些调整),来协调技术与业务之间的关系
在使用SQL的合并复制时,是因为是对两个服务器的数据进行合并同步,所以设置时要考虑很多问题,而且出现冲突的可能很大,所以建议你能在具体的业务方面做一些调整
zxyjyzxyjy 2005-09-21
  • 打赏
  • 举报
回复
主次切换当然由程序来切换了。
zjcxc 2005-09-21
  • 打赏
  • 举报
回复
注意我说的, 主次只是其中一个问题, 而且你的主次互相切换的话, 谁来负责这个切换工作?
zxbyhcsdn 2005-09-21
  • 打赏
  • 举报
回复
用订阅和发布吧!!
zxyjyzxyjy 2005-09-20
  • 打赏
  • 举报
回复
上面的情况如能同步,那又如何做呢?具体些。
zxyjyzxyjy 2005-09-20
  • 打赏
  • 举报
回复
那如果有主次之分,那合并复制能实现要求??

有时主断了,次在工作,主要与次同步。
有时次断了,主在工作,次要与主同步。
zjcxc 2005-09-20
  • 打赏
  • 举报
回复
同步可以考虑合并复制, 但因为你的服务器没有主次之分, 服务器正常时, 是往两个服务器同时写入的, 因此合并复制在此并不适用(当然, 复制/订阅的方法在楼主的这种情况中均不适用).

如果使用SQL的作业+job实现的话, 还得在数据库的表上加标识字段, 标识那些数据已经同步, 还不如缓存未执行的T-SQL语句简单.
zxyjyzxyjy 2005-09-20
  • 打赏
  • 举报
回复
是啊,数据全靠程序写入。
在写入数据时,仅考虑一个用户写入的情况,这点忘记说明了。
是可考虑对没有写成功的进行缓存,这是一种解决方法。

我需要知道的是能不能通过SQL Server提供的同步技术实现这个要求,如能怎样实现。
zjcxc 2005-09-20
  • 打赏
  • 举报
回复
从另一角度来说, 既然是程序写的, 那么你的程序就会侦测到那台电脑没有写入, 那么将相关的T-SQL处理代码缓存起来, 待有故障的电脑恢复后, 再重新执行这些T-SQL代码不就同步了吗?
zjcxc 2005-09-20
  • 打赏
  • 举报
回复
没有主次服务器之分, 那就意味着你的两台服务器上的数据完全靠程序同时写入两边来实现?

这样的话本身不是容易产生冲突吗? 比如User1写完A再写B, 而User2因为User1在写A,被堵塞,因此他变成了先写B, 再写A

如果User1与User2因为某种原因都只写了一半, 这不是有问题了吗? 按道理来说, 像你这种处理方式, 在程序写入时就需要保证两台服务器要么都写入, 要么都不写入吧? 否则的话数据不是很容易混乱?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧