Size: a a a

2020 December 22

G

Grigorij in MySQL
И он повторно пойдёт тебе апдейтить с самого начала
источник

G

Grigorij in MySQL
и реплика развалится
источник

G

Grigorij in MySQL
нужно знать на какой позиции сейчас находится твой бекап, что бы с этой же позиции продолжить загружать данные из бинлогов
источник

IZ

Ilia Zviagin in MySQL
Stefan
я тогда не понимаю одного
зачем делать лок на таблицы, ради того чтоб взять позицию мастер лога?
если я например могу просто указать, чтоб оно начало синк с начала
STOP SLAVE; RESET SLAVE ALL; CHANGE MASTER TO MASTER_HOST="hostName", MASTER_USER="repl_user", MASTER_PASSWORD="repl_password", MASTER_LOG_FILE="blabla-bin", MASTER_LOG_POS=154; START SLAVE;
Чтобы взять консистентный бэкап для заливки на слейв.

Идея (выше уже изложенная) проста:

0) Замораживаем изменения в исходной БД.
1) делаем бэкап.
2) размораживаем изменения, Начинаем записывать лог транзакций.
3) поднимаем бэкап на слейв. Там состояние БД на момент до п(2)
4) Запускаем репликацию, и БД слейва постепенно получает все изменения с момента (2) с мастера.
источник

S

Stefan in MySQL
Grigorij
нужно знать на какой позиции сейчас находится твой бекап, что бы с этой же позиции продолжить загружать данные из бинлогов
так вот не пойму почему оно развалится тогда) я ж ведь начисто начинаю загрузку, изменения которые были, они появится должны на реплике
источник

G

Grigorij in MySQL
Но ты должен указать слейву, какие именно изменения уже были, а какие нужно догрузить
источник

G

Grigorij in MySQL
он же не знает той самой точки, в которой был сделан бекап
источник

IZ

Ilia Zviagin in MySQL
Stefan
так вот не пойму почему оно развалится тогда) я ж ведь начисто начинаю загрузку, изменения которые были, они появится должны на реплике
С какого перепуга?
источник

IZ

Ilia Zviagin in MySQL
Stefan
так вот не пойму почему оно развалится тогда) я ж ведь начисто начинаю загрузку, изменения которые были, они появится должны на реплике
Откуда им появиться?
источник

IZ

Ilia Zviagin in MySQL
Stefan
так вот не пойму почему оно развалится тогда) я ж ведь начисто начинаю загрузку, изменения которые были, они появится должны на реплике
Степан, выше Григорий очень всё хорошо описал. Прочитай внимательно ещё раз, и я уверен, всё будет ясно
источник

S

Stefan in MySQL
Grigorij
Ты бы мастер заблокировал на запись, позицию бинлога запомнил, бекап с данными сделал, мастер на запись разлочил, на слейв бекап загрузил и репликацию включил
так а если лок таблиц больно для прода например?
источник

S

Stefan in MySQL
я то не против так делать, но это ж простой
источник

G

Grigorij in MySQL
это секунда
источник

G

Grigorij in MySQL
Тебе нужно залочить таблицы и запомнить позицию бинлога и запустить бекап. Сразу после этого можно разлочивать
источник

MA

Mughees Ahmed in MySQL
Hi experts can anyone provide upgrade document for mysql 5.7 to 8 with minimum downtime. Thanks
источник

G

Grigorij in MySQL
Опять же у тебя есть снепшоты. Можно через них
источник

G

Grigorij in MySQL
А вообще бекапы лучше со слейва снимать
источник

G

Grigorij in MySQL
У меня вот такой скрипт под это:
for i in echo show databases | mysql -s -u$USER -p$PASS | egrep -v '^test$|^performance_schema$|^information_schema$';
do
   echo "stop slave;" |mysql -s -u$USER -p$PASS
   echo "show slave status;" |mysql -s -u$USER -p$PASS --vertical >>${B_DIR}/ecom_${i}_${DATE}_slave_status.txt
   /usr/bin/mysqldump -u$USER -p$PASS --single-transaction --events --triggers --routines --add-drop-database $i > $B_DIR/ecom_$i.db.$DATE &
   echo "start slave;" |mysql -s -u$USER -p$PASS
   echo "${i}:" >> ecom_all_databases_binlog_pos_${DATE}.txt
   grep -E '(Relay_Master_Log_File|Exec_Master_Log_Pos)' ${B_DIR}/ecom_${i}_${DATE}_slave_status.txt >> ecom_all_databases_binlog_pos_${DATE}.txt
   echo "" >> ecom_all_databases_binlog_pos_${DATE}.txt
   wait
done
источник

G

Grigorij in MySQL
На выходе имеем по отдельнуму файлику с бекапом каждой схемы и информации по бинлог позициям к ним
источник

G

Grigorij in MySQL
С мастера гемморойнее. Нужно как то все входящие запросы отсекать. Если холодные рестарт неустраивает, то даже нужна какая нибудь прокся перед базой.
источник