MySQL delayed replication
Привет,
Днес ще споделя как лесно се слага MySQL delayed replication (закъсняла репликация).
Идеята е проста – имаме слейв сървър който е винаги изостанал от мастъра си. Това се прави с цел, той да седи като онлайн бекъп, и ако без да искаме изтрием нещо от главния сървър като таблица или база (или пък някой кадърен девелопър е truncate-нал таблица но вместо на дев го е направил на лайв – случвало ми се е!! 🙂 ), да можем бързо да вземем информацията от този изостанал слейв.
Да подчерая, че тази функция я има във версия на MySQL 5.6 и нагоре.
Ето и как се прави това :
- Логваме се в слейв сървъра ни с root
mysql -u root -p
- Спираме слейв репликацията
stop slave;
- Слагаме настройката за забавена репликация – в моя случай 7200 секунди които са 2 часа
change master to master_delay = 7200;
- Стартираме отново слейв репликацията
start slave;
Ако всичко е преминало нормално, можем да проверим дали имаме закъсняла репликация с командата :
show slave status \G;
и търсим този ред:
SQL_Delay: 7200
Важна подробност! Ако ни се случи такъв сценарий, веднага трябва да спрем репликацията на този слейв сървър, за да предотвратим изтритата информация да се появи и там!!
Съвет от мен – винаги правете бекъпи!
Дали на ниво база, на ниво сървър, или на ниво файлова система – бекъпите никога не са излишни, защото един ден ще ни потрябват и ако ги нямаме вероятно много ще съжаляваме!
Това е!