Назад | Перейти на главную страницу

MySQL slave-skip-errors = 0?

Я переношу кластер со следующим набором ошибок пропуска ведомого устройства:

slave-skip-errors = 0,1062,1053,1051

Конечно, пока все идет, никто не знает, почему это было так настроено, кто это сделал, и даже если они работают в компании. Я также знаю, почему НЕ ставить какие-либо ошибки пропуска ведомого устройства, но я совершенно не понимаю, что такое «0». Репликация, которую я настраиваю, не будет иметь ошибок пропуска ведомого устройства.

Смотря на http://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html Я могу найти все пропущенные коды. Я могу только предположить, что ноль - это своего рода уловка для ошибок пропуска ведомого? Мой гугл-фу не так силен в этом вопросе, я действительно не могу найти ответа на свой вопрос, поэтому я надеюсь, что какой-нибудь гуру MySQL здесь сможет подтвердить или опровергнуть 0, и если это действительно так что-нибудь.

Спасибо!

Их не должно быть, эта конфигурационная директива должна быть установлена ​​по умолчанию (не игнорируя ни одну из ошибок). Так просто, как, что. А на вашем месте я бы переинициализировал всю реплику. На логическом уровне это почти неизбежно рассинхронизируется.

Эта городская легенда (настройка не по умолчанию slave-skip-errors) возникает из двух вещей:

  • непонимание того, как работает репликация
  • забавный факт, что MySQL не устанавливает реплику на read-only по умолчанию, поэтому любые клиенты, которые все еще подключаются к нему (из-за устаревших дескрипторов соединения или застрявших пулов соединений), могут легко повредить его. Так что каждая реплика, вероятно, должна быть read-only, если только не будет циклической цепной репликации (с моей точки зрения - еще одна чушь) или хотя бы окончательного понимания, почему это должно быть чтение-запись.