MySQL delayed replication

Привет,

Днес ще споделя как лесно се слага MySQL delayed replication (закъсняла репликация).

Идеята е проста – имаме слейв сървър който е винаги изостанал от мастъра си. Това се прави с цел, той да седи като онлайн бекъп, и ако без да искаме изтрием нещо от главния сървър като таблица или база (или пък някой кадърен девелопър е truncate-нал таблица но вместо на дев го е направил на лайв – случвало ми се е!! 🙂 ), да можем бързо да вземем информацията от този изостанал слейв.

Да подчерая, че тази функция я има във версия на MySQL 5.6 и нагоре.

Ето и как се прави това :

  1. Логваме се в слейв сървъра ни с root
    mysql -u root -p
  2. Спираме слейв репликацията
    stop slave;
  3. Слагаме настройката за забавена репликация – в моя случай 7200 секунди които са 2 часа
    change master to master_delay = 7200;
  4. Стартираме отново слейв репликацията
    start slave;

Ако всичко е преминало нормално, можем да проверим дали имаме закъсняла репликация с командата :

show slave status \G; 

и търсим този ред:

SQL_Delay: 7200

 

Важна подробност! Ако ни се случи такъв сценарий, веднага трябва да спрем репликацията на този слейв сървър, за да предотвратим изтритата информация да се появи и там!!

Съвет от менвинаги правете бекъпи!

Дали на ниво база, на ниво сървър, или на ниво файлова система – бекъпите никога не са излишни, защото един ден ще ни потрябват и ако ги нямаме вероятно много ще съжаляваме!

Това е!

 

Сподели чрез...