我正在检查azure sql数据库的Azure数据同步功能,并观察到数据未正确同步。
方案: 我创建了一个Sync组,其中一个集线器[Hub1]和两个数据库一个在同一个数据中心[DB1]中,另一个来自其他数据中心[DB2]。
案例: 我在一个DB2表中进行了修改,并触发了\ ran sync来进行数据库同步。在同步之后,当我检查数据库时,我观察到只有根据DB2修改的Hub1表数据却没有修改DB1。
当我再次触发数据库同步时,只有DB1根据DB2中的更改进行了修改。
根据我的理解和期望,在一个同步操作中,Hub1和DB1都应该根据DB2中的修改进行修改。
为什么这个数据不匹配问题?
答案 0 :(得分:1)
是的,你遇到的情况是可能的。对于1个集线器2成员同步,它实际上将触发两个成对同步:[Hub1]< - > [DB1]和[Hub1]< - > [DB2]。但是首先同步的顺序是随机的。
所以在你的情况下,主要是[Hub1]< - >首先触发[DB1],但由于[Hub1]和[DB1]之间的数据相同,因此未发现更新。然后[Hub1]< - > [DB2]被触发。所以[Hub1]已更新,但[DB1]仍未更改。但是,如果您更改[Hub1]上的数据,而不是成员,则此问题不会发生。
要解决您的问题,建议您设置预定同步或在有2个成员时手动同步两次以确保一致性。
此致 加里