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

MySQL 5.6 репликация живого мастера БЕЗ простоя

После шагов по репликации существующего сервера кажется, что большинство методов полагаются на возможность либо полностью остановить главный сервер, либо, по крайней мере, предотвратить его запись с использованием flush tables with read lock; что фактически приводит к простоям, поскольку многие приложения не могут должным образом реагировать, когда не могут выполнять запись в базу данных.

Есть ли безопасный способ репликации ведущего устройства на ведомое устройство, гарантирующий нулевое время простоя и полную синхронизацию информации базы данных?

В нашем сценарии у нас есть один мастер и один подчиненный, и они оба работали хорошо. Ошибка MySQL во время обновления с 5.5 до 5.6 привела к тому, что ведомое устройство немного рассинхронизировалось, и теперь мы хотим полностью воссоздать его базы данных. На данный момент, когда мы получаем спорадические ошибки, мы пропускаем их, используя STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE; но это только означает, что репликация не на 100% похожа на мастер.

Спасибо

Хотя это старый вопрос, но если вы все еще ищете ответ - попробуйте percona xtrabackup. Если у вас есть таблицы MyISAM, используйте параметр --rsync. С его помощью мы добились почти бесшовного дампа (блокировка занимала около 5-10 секунд для БД размером около 1 ГБ).

Там есть. Когда все механизмы базы данных являются InnoDB и вы указали --single-transaction переключатель. Сюда flush tables with read lock; или --lock-all-tables не нужен.

В противном случае, думаю, других вариантов нет. Мои соболезнования.

По сути, увеличение счетчика пропуска подчиненных - это плохо, если вы не уверены, что это безопасно (например, при репликации отсутствующих пользователей grant заявления и тому подобное).