Spec-Zone .ru
спецификации, руководства, описания, API

16.4.1.26. Ведомые Ошибки Во время Репликации

Если оператор производит ту же самую ошибку (идентичный код ошибки) и на ведущем устройстве и на ведомом устройстве, ошибка регистрируется, но репликация продолжается.

Если оператор производит различные ошибки на ведущем устройстве и ведомом устройстве, ведомый поток SQL завершается, и ведомое устройство пишет сообщение в свой журнал ошибок и ожидает администратора базы данных, чтобы решить, что сделать об ошибке. Это включает случай, что оператор производит ошибку на ведущем устройстве или ведомом устройстве, но не обоих. Чтобы решить проблему, соединитесь с ведомым устройством вручную и определите причину проблемы. SHOW SLAVE STATUS полезно для этого. Затем решите проблему и работайте START SLAVE. Например, Вы, возможно, должны были бы составить несуществующую таблицу прежде, чем можно будет запустить ведомое устройство снова.

Если это поведение проверки допустимости кода ошибки не является требуемым, некоторые или все ошибки могут кашироваться (проигнорированные) с --slave-skip-errors опция.

Для нетранзакционных механизмов хранения такой как MyISAM, возможно иметь оператор, который только частично обновляет таблицу и возвращает код ошибки. Это может произойти, например, на многократной строке вставляют, у которого есть одна строка, нарушающая ключевое ограничение, или если длинный оператор обновления уничтожается после обновления некоторых из строк. Если это произойдет на ведущем устройстве, то ведомое устройство ожидает, что выполнение оператора приведет к тому же самому коду ошибки. Если это не делает, ведомый поток SQL останавливается как описано ранее.

Если Вы тиражируетесь между таблицами, которые используют различные механизмы хранения на ведущем устройстве и ведомом устройстве, имеют в виду, что тот же самый оператор мог бы произвести различную ошибку когда выполнено против одной версии таблицы, но не другого, или мог бы вызвать ошибку для одной версии таблицы, но не другого. Например, с тех пор MyISAM игнорирует ограничения внешнего ключа, INSERT или UPDATE оператор, получающий доступ InnoDB таблица на ведущем устройстве могла бы вызвать нарушение внешнего ключа, но тот же самый оператор, выполняемый на a MyISAM версия той же самой таблицы на ведомом устройстве не произвела бы такой ошибки, заставляя репликацию остановиться.