Перейти к содержимому
Калькуляторы

MySQL репликация и GTID

Всем привет!

 

Настраиваю на Mysql репликацию (master-slave) с использованием gtid. В большинстве манов указывается переносить дапм базы с master на slave. Но зачем это делать, если база сама появляется на slav'е после того, как я запускаю start slave? Разве так не проще?

Изменено пользователем fox_m

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Блокировки, все, к чему обращается реплика - залочено на запись, в свою очередь, все, уже залоченное на запись - недоступно реплике. Чтобы работа исходного сервера не встала, или минимально осложнилась, и заливают полный дамп. Иначе, если у вас активные транзакции и в источник пишется постоянно, реплика рискует никогда не догнать оригинал (ну или заблокировать ключевые таблицы оригинала на запись).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Цитата

Блокировки, все, к чему обращается реплика - залочено на запись, в свою очередь, все, уже залоченное на запись - недоступно реплике

все, к чему обращается реплика - это бинлог. никакие данные на мастере не лочатся, ибо реплика к ним не обращается. отсюда и необходимость делать дамп: бинлог имеет глубину хранения.

 

не, ну если вы храните в бинлоге абсолютно все транзакции с момента создания бд, то конечно, достаточно создать на слейве только структуру бд и запустить репликацию. =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот только если GTID включили непосредственно перед репликацией, в бинлоге вообще ничего еще нет для репликации, и первичное заполнение приемника будет из самой БД мастера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

то есть:
1. закидываем в бд данные

2. включаем gtid

3. включаем бинлог

4. настраиваем второй сервер, запускаем на нем slave

5. данные из бд автомагически перетекают на slave

 

я правильно понял? вы сами так делали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет, не так. Данные для слейва будут в наличии только после п.3. У вас все закончится ошибкой типа "а некуда лить, таблицы даже нету". Чтобы взлетело как вы хотите, пункты 2, 3 и 4 надо сдвинуть вверх, а п1 переместить на 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.