日期:2014-05-17  浏览次数:20582 次

分库数据同步的问题
兄弟们,小弟遇到个问题:
sql2008 我们现在的系统,打算把读和写分开.
库1 包含的是基础数据和运算的表
库2 将库1运算出的表的值复制到库2

现在有个问题,每次运算完事不能马上在库2上查询到,因为可能会有延迟,怎样尽量去减少他的延迟保证数据的同步性?

我初步的想法是
第一:在库1 和库2的表上面加一个字段作为版本号,每当库1运算的时候版本号+1 然后插入到库2,这样查询库2
的时候每次两个库的表进行最新版本号的比较,如果相同则让查询,否则不让]
第二:在库1每次更改或者增加或者删除的时候 分步骤,首先进行删除动作,第二进行数据的复制动作,全都做完了的话再告诉他
数据修改完,否则就还在进行中

请大家帮忙完善完善,或者提出自己的建议,
另外数据库的订阅和发布是干嘛的?


------解决方案--------------------
订阅和发布是数据同步复制技术,用于不同服务器间数据的同步,就你的场景可以尝试使用。
------解决方案--------------------
复制订阅 是数据同步的一种技术。拿你的例子来说,就是将你 库1上制定的表或其它对象 实时的(理论上是实时的,如果数据量大(上亿)而且业务繁忙会有延迟)以日志的方式推送或被订阅到 订阅服务器上,然后在订阅服务器数据库上以日志方式还原为实际的数据。目前来说 不管是跨服务器跨机房 复制订阅是最合适的方法。也最有效。它有效的实现了数据的 读写分离,减轻了主库的IO 压力。
------解决方案--------------------
复制订阅案例