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

Как настроить репликацию MySQL с минимальным временем простоя

В основном у нас есть большая база данных MySQL, и мы хотим выполнить репликацию на подчиненное устройство (настройка главного подчиненного устройства). Ребята, у вас есть пошаговое руководство, как это сделать с МИНИМАЛЬНЫМ простоем в базе данных? Резервное копирование базы данных и передача резервной копии на подчиненный сервер (даже через частную сеть) занимает около 40 минут или около того. Довольно долгое время простоя.

Я предполагаю, что вы используете InnoDB в качестве механизма хранения. Если да, то нужно включить ведение журнала. Если его сейчас нет, вам необходимо перезапустить MySQL после изменения my.cnf. Это единственное время простоя, после которого вы можете сделать дамп БД с позицией бинлога, не блокируя БД:

mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A

На основе этой резервной копии восстановите данные на ведомом устройстве. После этого вы можете следить за любым Руководство по репликации MySQL и пусть раб догонит / бежит вместе с мастером.

для запуска репликации вам нужна согласованная копия вашей базы данных на ведомом устройстве

ваши таблицы поддерживаются myisam или innodb? выяснить проблему

show table status

и посмотрите на столбец "Двигатель"

если все таблицы innodb, вы можете настроить нулевое время простоя с помощью mysqldump --single-transaction и импортировать это в ведомое устройство

если таблицы myisam, то должен быть простой, так как вам нужно заблокировать таблицы для записи, пока они копируются. mysqlhotcopy - инструмент, который поможет вам в этом.

в качестве альтернативы, если вы используете LVM (менеджер логических томов), вы можете остановить базу данных, за несколько секунд сделать снимок LVM и снова запустить базу данных. Затем вы можете сделать непротиворечивую копию из снимка.

Чтобы настроить подчиненное устройство, вам необходимо сделать снимок данных и записать положение двоичного журнала. Резервное копирование базы данных не должно приводить к простоям, хотя и снижает производительность, но вы все равно делаете резервную копию базы данных, верно? Вы можете обнаружить, что резервное копирование необходимо для блокировки некоторых таблиц, и это может привести к зависанию вашего приложения, действительно нужно посмотреть, как это реализовано для этого.

Вы можете сделать снимок диска? Это значительно сократит время простоя, если вы сможете сделать резервную копию.