Replikacja danych to ciągłe powielanie informacji cyfrowych między różnymi miejscami przechowywania – serwerami, macierzami dyskowymi, centrami danych lub chmurą. Efektem jest pełna, niezależna kopia zasobu, która zapewnia wysoką dostępność i chroni przed awarią sprzętu lub całej lokalizacji. Replikacja nie zastępuje jednak kopii zapasowej – to dwa różne mechanizmy odpowiadające na różne klasy zagrożeń, o czym piszemy niżej.
Replikacja propaguje bieżący stan danych z systemu produkcyjnego do systemu zapasowego. Replikowane bywają bazy danych, maszyny wirtualne, systemy plików, woluminy macierzowe oraz stany aplikacji. Głównym celem jest dostępność (HA – High Availability), spójność w rozproszonej infrastrukturze i odporność na awarię. Replikacja działa w czasie rzeczywistym lub z niewielkim opóźnieniem i zwykle nie przechowuje historii zmian – tym różni się od backupu.
Spotykamy trzy modele replikacji różniące się sposobem propagacji zmian:
Wybór zależy od trzech parametrów: dopuszczalnej utraty danych (RPO – Recovery Point Objective), przepustowości aplikacji i budżetu. Replikacja synchroniczna zapisuje dane równocześnie w lokalizacji podstawowej i zapasowej, a potwierdzenie zapisu wraca do aplikacji dopiero po zapisaniu w obu miejscach. Daje RPO = 0 (zero utraty danych), ale wymaga szybkiego łącza o niskich opóźnieniach – każda milisekunda narzutu wydłuża czas odpowiedzi aplikacji. Stosuje się ją tam, gdzie nawet sekundowa utrata danych jest niedopuszczalna: systemy transakcyjne, bankowość, systemy medyczne.
Replikacja asynchroniczna zapisuje dane najpierw lokalnie, a do lokalizacji zapasowej propaguje z opóźnieniem. Akceptuje pewną utratę danych (RPO od sekund do godzin), jest tańsza i nie wpływa na wydajność aplikacji. Nadaje się do replikacji między odległymi centrami danych i większości zastosowań biznesowych MŚP.
MySQL oferuje replikację jako wbudowany mechanizm. Serwer główny (master) zapisuje operacje modyfikujące dane do binarnego dziennika zdarzeń (binary log), a serwer podrzędny (replica) odczytuje ten log i odtwarza operacje na swojej kopii bazy. MySQL 8 wspiera trzy tryby: asynchroniczny, półsynchroniczny oraz Group Replication (replikacja grupowa). MŚP zwykle wdrażają topologię master-replica z replikacją asynchroniczną – do odciążenia odczytu (raporty, analityka) oraz jako zabezpieczenie na wypadek awarii serwera głównego.
To najważniejsze rozróżnienie w dyskusji o ochronie danych – i najczęściej mylone przez firmy. Backup to okresowa, niezależna kopia danych z określonego punktu w czasie, przechowywana oddzielnie od systemu produkcyjnego i chroniona przed modyfikacją. Cofa się do niej, gdy trzeba odtworzyć stan sprzed awarii, błędu użytkownika lub ataku. Replikacja