Originally published at: https://root.bg/tutorials/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
Важна подробност! Ако ни се случи такъв сценарий, веднага трябва да спрем репликацията на този слейв сървър, за да предотвратим изтритата информация да се появи и там!!
Съвет от мен - винаги правете бекъпи!
Дали на ниво база, на ниво сървър, или на ниво файлова система - бекъпите никога не са излишни, защото един ден ще ни потрябват и ако ги нямаме вероятно много ще съжаляваме!
Това е!