对称DS异常

SymmetricDS exceptions

我 运行 有两个 SymmetricDS 实例和 MySQL。

我必须开始和停止同步,为此我使用:

update sym_channel set enabled=0/1;

出于某种原因,当它们同步时 (enabled=1),我收到以下错误:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:     Cannot add or update a child row: a foreign key constraint fails (`test_db`.`defectstdreference`, CONSTRAINT `Relationship72` FOREIGN KEY (`improve_notice_doc_id`, `defect_id`, `client_id`) REFERENCES `improvementnoticedefect` (`doc_id`, `defect_id`, `client)

然而,有时同步会成功完成,因此所有这些异常都会显着减慢进程。

您知道这可能是什么原因造成的吗?

您创建了自己的频道还是使用默认频道?

如果您创建了自己的,它们可以相互独立同步。因此,如果您在两个 table 之间有一个外键,并且父 table 使用 channelA 而子 table 使用 channelB,则 channelB 中的更改可能会在 channelA 之前同步,从而导致外键错误。有时 channelB 可能在 channelA 之后处理,因此这可能解释了意外行为。 SymmetricDS 将重试任何错误的批次,因此最终它会按顺序排列它们。为避免这些错误,请确保您使用的自定义频道是否所有相关 table 都参与同一频道。