Я пытаюсь использовать Библиотека репликации MySQL Replication для выполнения репликации данных между HostA и HostB.
Репликация основана на строках, отличных от операторов. Я знаю, что в MySQL есть такая встроенная функция, но я хочу сделать это сам --- Чтение всех изменений строки из журнала журнала HostA и внесение всех этих изменений в HostB.
Проблема, с которой я сталкиваюсь, заключается в том, что я временно не могу отключить триггеры, что приведет к несинхронизации данных.
Возьмем пример, предположим, что синхронизированная база данных TestSyncDB, и в ней есть две таблицы, которые являются Data и DataOp. В таблице данных есть триггер с ней, и как только запись будет вставлена в эту таблицу, триггер создаст новую запись в DataOp.
Теперь новая запись вставляется в HostA.TestSyncDB.Data, так как есть триггер, поэтому в базе данных будет две записи, а библиотека List Replication List вернет мне два запроса, например:
- вставить в значения HostA.TestSyncDB.Data(...)
- вставить в значения HostA.TestSyncDB.DataOp(...)//с помощью триггера
Проблема заключается в том, что если я перепроверку этих двух запросов на HostB, в таблицах будут добавлены три новые записи в HostA.TestSyncDB из-за триггеров. Тогда данные никогда не будут правы.
Итак, как это решить? Можно временно отключить триггеры? Если нет, как сделать это правильно, как то, что делает репликация MySQL?