Проблема связана со стандартной настройкой Mysql
Master-Slave
(ведомое устройство только для чтения, двоичное ведение журнала установлено в ROW), когда одна строка вставляется в основную таблицу с первичным ключом с автоматическим приращением, например, в эту строку , получает ID 4288996
, когда одна и та же вставка реплицируется на ведомом устройстве, одна и та же строка становится другой ID
4289032
(поскольку вставка выдается без значения первичного ключа, которое генерируется автоматически).
Теперь проблема возрастает, когда в этой строке в Master вводится оператор UPDATE
:
#180430 18:00:12 server id 1 end_log_pos 429933 CRC32 0xd0d85778
Update_rows: table id 260 flags: STMT_END_F
### UPDATE `cmon`.`simple_alarm`
### WHERE
### @1=4288996
### SET
### @13=1525104012
### @15=1
# at 429933
#180430 18:00:12 server id 1 end_log_pos 429964 CRC32 0xdc9f3fa4 Xid = 452035
Поскольку в подчиненном устройстве не существует такой же строки (с другим идентификатором):
'Не удалось выполнить событие Update_rows для таблицы cmon.simple_alarm; Не могу найти запись в 'simple_alarm', Error_code: 1032; ошибка обработчика HA_ERR_KEY_NOT_FOUND; главный журнал события xxxxx_bin_log.000003, end_log_pos 429933 '
Я знаю, почему это проблема, но я не знаю, как ее решить?