Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

单向同步中数据冲突处理策略问题 #1104

Open
LieLieLiekey opened this issue May 18, 2023 · 1 comment
Open

单向同步中数据冲突处理策略问题 #1104

LieLieLiekey opened this issue May 18, 2023 · 1 comment

Comments

@LieLieLiekey
Copy link

LieLieLiekey commented May 18, 2023

  • 问题:
    请教下,我目前使用 otter 进行数据库 A 到数据库 B 的单向同步时,当在 B 中插入一条数据,数据库 A 中又插入一条同样主键的数据,然后同步到 B,会出现数据同步冲突吗?有看过相关文档没找到这个信息。。。

  • 现实场景是这样:
    同步配置如下:

image
  1. 创建一个表 dch_test, 唯一键/主键 是 ID列
CREATE TABLE `dch_test` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `value` varchar(128) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  1. 然后我在数据库 B 中插入一条数据 ,此时观察了下数据库,预期的数据库 B 中有该数据, 数据库 A没有
INSERT INTO `dch_test` (`id`, `value`) VALUES (1, '第一次'); 
  1. 然后我又在数据库 A 中插入一条数据,观察了下,数据库 A 和 B 都变为 (1, '第二次')。
`INSERT INTO `dch_test` (`id`, `value`) VALUES (1, '第二次'); `,

看起来好像 A 同步这条语句到 B 后发现有冲突就直接改为UPDATE了?

@LieLieLiekey
Copy link
Author

我感觉数据冲突的处理策略主要有三种,1. 忽略冲突。2. 覆盖冲突的数据,用主站覆盖或最新数据覆盖。3. 停止同步并报错

otter这里的处理策略是第二种吗?任何时候都是?或者有没有相关控制的参数

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant