【发布时间】:2017-05-04 08:09:50
【问题描述】:
我使用 SymetricDS,有时对称会引发错误:
INFO [slave] [DefaultDatabaseWriter] [slave-data-loader-1] Failed to process update event in batch 298578.
ERROR [slave] [DataLoaderService] [slave-data-loader-1] Failed to load batch 000-298578 StackTraceKey [UniqueKeyException:4114584735]
ERROR [master][AcknowledgeService] [master-push-default-5] The outgoing batch 001-298578 failed: ERREUR: la valeur d'une clé dupliquée rompt la contrainte unique « primary_key_constaint_name » Détail : La clé existe déjà.
我试图通过在 sym_conflict 中插入这一行来检测和纠正冲突:
insert into sym_conflict(conflict_id, source_node_group_id, target_node_group_id, detect_type resolve_type, ping_back)
values('master-win', 'master', 'slave', 'USE_CHANGED_DATA', 'INGORE', 'SINGLE_ROW');
但这不起作用。在文档中发现了这个:
USE_CHANGED_DATA :表示将使用主键加上源系统上已更改的任何数据来检测冲突。如果目标系统上存在与源系统上已更改列的旧值相同的行,则源系统上已更改的列在更新或删除期间未检测到冲突。如果在插入期间已经存在行,则检测到冲突。
对称如何检测更新中的 PK 冲突并忽略它?谢谢。
【问题讨论】:
标签: symmetricds