Jump to content
Калькуляторы

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

Всем привет!

 

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

Edited by fox_m

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Цитата

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

2. включаем gtid

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.