fox_m Posted March 7, 2023 (edited) Всем привет! Настраиваю на Mysql репликацию (master-slave) с использованием gtid. В большинстве манов указывается переносить дапм базы с master на slave. Но зачем это делать, если база сама появляется на slav'е после того, как я запускаю start slave? Разве так не проще? Edited March 7, 2023 by fox_m Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted March 7, 2023 Блокировки, все, к чему обращается реплика - залочено на запись, в свою очередь, все, уже залоченное на запись - недоступно реплике. Чтобы работа исходного сервера не встала, или минимально осложнилась, и заливают полный дамп. Иначе, если у вас активные транзакции и в источник пишется постоянно, реплика рискует никогда не догнать оригинал (ну или заблокировать ключевые таблицы оригинала на запись). Share this post Link to post Share on other sites More sharing options...
fox_m Posted March 7, 2023 Понял. Спасибо! Share this post Link to post Share on other sites More sharing options...
boco Posted March 8, 2023 Цитата Блокировки, все, к чему обращается реплика - залочено на запись, в свою очередь, все, уже залоченное на запись - недоступно реплике все, к чему обращается реплика - это бинлог. никакие данные на мастере не лочатся, ибо реплика к ним не обращается. отсюда и необходимость делать дамп: бинлог имеет глубину хранения. не, ну если вы храните в бинлоге абсолютно все транзакции с момента создания бд, то конечно, достаточно создать на слейве только структуру бд и запустить репликацию. =) Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted March 8, 2023 Вот только если GTID включили непосредственно перед репликацией, в бинлоге вообще ничего еще нет для репликации, и первичное заполнение приемника будет из самой БД мастера. Share this post Link to post Share on other sites More sharing options...
boco Posted March 8, 2023 то есть: 1. закидываем в бд данные 2. включаем gtid 3. включаем бинлог 4. настраиваем второй сервер, запускаем на нем slave 5. данные из бд автомагически перетекают на slave я правильно понял? вы сами так делали? Share this post Link to post Share on other sites More sharing options...
taf_321 Posted March 10, 2023 Нет, не так. Данные для слейва будут в наличии только после п.3. У вас все закончится ошибкой типа "а некуда лить, таблицы даже нету". Чтобы взлетело как вы хотите, пункты 2, 3 и 4 надо сдвинуть вверх, а п1 переместить на 4 Share this post Link to post Share on other sites More sharing options...
boco Posted March 10, 2023 ну так это будет работать тока если бинлог хранит все транзакции с момента создания бд. что, в общем случае, не так. я все пытаюсь намекнуть, что слейв ни в какую базу не лезет, а лезет тока в бинлог. и что поэтому, а не по какой-то другой причине нужен дамп бд разумной давности (для которого еще не протух бинлог). Share this post Link to post Share on other sites More sharing options...