在正常的复制世界中,会发生以下顺序:
- MAIN ASE:删除 N 行
- RS:删除发送到复制目标的 N 行
- TARGET: 删除相同的 N 行
但是,如果发生以下事件序列会怎样?
- 目标:删除 N 行(在主服务器删除它们之前)
- MAIN ASE:删除 N 行
- RS:删除发送到复制目标的 N 行
- 目标: 没有要删除的行?!?!?!
那么会发生什么?
代表服务器是否失败?主 ASE 事务是否中止?是否每个人都表现得像从未发生过并且复制有效(因为最终结果好像确实如此)?
PS 是的,我知道,通常你不应该搞这样的噱头,并且永远不应该在复制目标上更改数据。如果不是,您应该在主服务器会话上使用“设置复制关闭”。问题是“如果确实发生这种情况会发生什么,违反了‘应该’”。