У меня довольно большая база данных (~ 50 млн строк) на одном сервере Centos. Я хочу настроить репликацию, но в существующей базе данных нет двоичных журналов.
Есть ли способ ретроспективно добавить двоичные журналы, чтобы данные можно было реплицировать?
Если нет, я предполагаю, что единственный способ - сбросить базу данных с помощью mysqldump, а затем импортировать ее на недавно установленный сервер, на котором включены двоичные журналы, а затем использовать этот новый сервер в качестве нового мастера - какие-либо проблемы с этим? Нужно ли мне экспортировать / импортировать данные с какими-либо конкретными флагами?
Есть ли способ ретроспективно добавить двоичные журналы, чтобы данные можно было реплицировать?
Да. Хотя для этого требуется перезапуск сервера, вы можете в любой момент обновить один сервер MySQL до мастера в кластере репликации.
Шаги довольно хорошо описаны в руководстве: https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html
По сути, вы обновляете свой единственный MySQL до мастера, начиная собирать двоичные журналы. После запуска двоичного журнала вы можете создать начальный экспорт из работающего ведущего устройства, чтобы заполнить ведомые устройства. Бегать mysqldump
с --master-data=1
вариант. Эта опция позволит ведомому устройству определить, в какой момент экспорт был создан на ведущем устройстве.
После завершения этого экспорта ведомое устройство может использовать master-data
чтобы запросить мастер для воспроизведения любых и всех транзакций из двоичных журналов на главном устройстве, которые произошли с момента создания экспорта mysqldump.