2014-09-29 5 views
0

У меня в нашей системе есть настройка Мастера и ведомой репликации MariaDB. Но всякий раз, когда попытка вставить неверные данные в таблицу на ведущем устройстве, это приводит к тому, что ведомое устройство перестает работать с Slave_SQL_Running: №Завершение репликации MySQL при возникновении ошибки

Например, если вы попытаетесь вставить данные в таблицу с полем даты, значение по умолчанию и оно не равно null, и вы не указываете значение для поля даты в инструкции insert, это приводит к выводу slave (Slave_SQL_Running: Нет) с ошибкой 1364. Это всего лишь один из примеров многих перерывов, вызванных вставка данных.

Итак, мой вопрос: как я могу предотвратить это, т. Е. Когда вы пытаетесь вставить неверные данные на master, mysql должен просто выбросить ошибку, не влияя на подчиненный?

ответ

0

Посмотрите на репликацию Galera. Galera использует синхронную репликацию с несколькими серверами, поэтому, если ваш запрос фактически не сбой сервера, на котором вы его запускаете, вы не столкнетесь с такими проблемами, как сбой ведомых и т. Д.

+0

Что делать, если я хочу использовать репликацию Master-slave от MariaDB, как можно избежать этой проблемы в самой репликации MySQL, не переходя в MariaDB Galera Cluster? Как это можно решить с помощью текущей конфигурации репликации? –

+0

Возможно, проверьте, работают ли ваши серверы в строгом режиме? Вы можете проверить, вызвана ли ваша проблема строгим режимом, запустив тот же запрос с INSERT IGNORE ... Если он не нарушит вашу репликацию, вы должны выяснить, как отключить строгий режим. – raymondboswel

Смежные вопросы