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