0

我正在检查 azure sql 数据库的 Azure 数据同步功能,并观察到数据未正确同步。

场景:我创建了同步组,其中有一台集线器机器 [Hub1] 和 2 个数据库,一个位于同一数据中心 [DB1],另一个来自其他数据中心 [DB2]。

案例:我在 DB2 的一个表中进行了修改,并触发了\run sync 来进行数据库同步。同步后,当我检查数据库时,我观察到只有 Hub1 表数据按照 DB2 进行了修改,而 DB1 没有修改。

当我再次触发数据库同步时,只有 DB1 根据 DB2 中的更改进行了修改。

根据我的理解和期望,在一次同步操作中,Hub1 和 DB1 都应该按照 DB2 中的修改进行修改。

为什么这个数据不匹配问题?

4

1 回答 1

1

是的,你遇到的情况是可能的。对于 1 hub-2 成员同步,它实际上会触发两个 pair-to-pair 同步:[Hub1] <-> [DB1] 和 [Hub1] <-> [DB2]。但是首先同步的顺序是随机的。

因此,在您的情况下,大多数情况下 [Hub1] <-> [DB1] 首先被触发,但由于 [Hub1] 和 [DB1] 之间的数据相同,因此没有发现任何更改已更新。然后触发 [Hub1] <-> [DB2]。因此 [Hub1] 已更新,但 [DB1] 仍未更改。但是,如果您更改 [Hub1] 上的数据,而不是成员上的数据,则不会发生此问题。

为解决您的问题,建议在有 2 个成员时设置定时同步或手动同步两次,以确保一致性。

问候,加里

于 2015-06-10T13:22:05.800 回答