@vlarkanov

Mysqldump для master-slave: как сдампить и залить несколько баз за один раз?

Всем привет! Есть сервер1, на котором крутятся 6 баз. Нужно настроить слейв, куда 3 из них будут реплицироваться. Я поступаю так:
делаю дамп DB1

mysqldump -u root --master-data=2 --single-transaction DB1 > DB1.sql


Потом копирую этот дамп на сервер2, импортирую
mysql -u root DB1 < DB1.sql


Потом запускаю (используя строку CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000ххх, MASTER_LOG_POS=ххххххххх;) из дампа репликацию первой базы до тех пор, пока она не догонит позицию мастера.

Потом стопаю репликацию, запоминаю бинглог и позицию, заливаю вторую базу, реплицирую ее (первая в это время не реплицируется) до позиции, на которой остановил первую.... Вот тут подробно описано как и что я делаю konotest.ru/?p=91

Мне понятно как сдампить сразу три базы

mysqldump -uroot -p -B DB1 DB2 DB3 > databases.sql


- но вопрос как их залить в слейв и сразу начать репликацию по всем трем? Критично сделать именно через mysqldump.
  • Вопрос задан
  • 1938 просмотров
Пригласить эксперта
Ответы на вопрос 1
Делайте дамп:
mysqldump --all-databases -u root --master-data=2 --single-transaction > DBs.sql
там сразу будут все базы. Ни надо их в командной строке перечислять.
Заливайте аналогично:
mysql -u root < DBs.sql
После стартуйте репликацию

P.S. Я привык делать дамп как-то так
mysqldump --flush-privileges --flush-logs --triggers --routines --events --hex-blob --extended-insert --complete-insert --no-autocommit --lock-all-tables --master-data=2 --all-databases
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы