Przywracanie danych z kopii zapasowej
Teoria Planowanie Odzyskiwania po Awarii (DRP)
Proces przywracania danych (Recovery) jest kluczowym elementem Planu Ciągłości Działania (BCP). Brak możliwości szybkiego i poprawnego odtworzenia danych oznacza, że sam backup jest praktycznie bezużyteczny.
Odzyskiwanie obejmuje nie tylko pliki, ale także pełną funkcjonalność systemu, aplikacji oraz dostęp użytkowników do usług.
Kluczowe metryki: RTO i RPO
RTO i RPO definiują, jak bardzo organizacja może „pozwolić sobie” na przestój i utratę danych, co bezpośrednio wpływa na wybór częstotliwości oraz rodzaju kopii zapasowych.[web:8]
- RTO (Recovery Time Objective) – maksymalny akceptowalny czas od awarii do przywrócenia działania systemu do akceptowalnego poziomu.
- RPO (Recovery Point Objective) – maksymalny akceptowalny okres utraty danych mierzony wstecz od momentu awarii (np. 15 minut).
Weryfikacja kopii zapasowej
Regularna weryfikacja backupów jest niezbędna, aby uniknąć sytuacji, w której kopia istnieje, ale nie nadaje się do użycia.[web:6]
- Integralność pliku – użycie sum kontrolnych (np. MD5, SHA256) do sprawdzenia, czy plik nie został uszkodzony podczas kopiowania czy transferu.
- Kompletność struktury – odtworzenie bazy na serwerze testowym i sprawdzenie poprawności tabel, indeksów, procedur itp.
- Spójność danych – kontrola liczników rekordów, sum kontrolnych pól numerycznych lub kluczowych zestawień raportowych.
Ćwiczenie 1 Przywracanie bazy MySQL i weryfikacja danych
Przywróć bazę szkola z pliku szkola_backup.sql do testowej bazy szkola_test. Następnie zweryfikuj, czy tabela KURS_PRZEDMIOTY zawiera oczekiwaną liczbę rekordów.
- Utwórz bazę docelową:
CREATE DATABASE szkola_test; - Przywróć dane z pliku SQL do bazy
szkola_test. - Weryfikacja:
SELECT COUNT(*) FROM KURS_PRZEDMIOTY;(np. 150 rekordów).
# Tworzenie nowej bazy docelowej
mysql -u root -p -e "CREATE DATABASE szkola_test DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
# Przywracanie bazy danych z pliku
mysql -u root -p szkola_test < szkola_backup.sql
# Weryfikacja liczby rekordów
mysql -u root -p szkola_test -e "SELECT COUNT(*) AS liczba_rekordow FROM KURS_PRZEDMIOTY;"
Ćwiczenie 2 Planowanie strategii Backup/Recovery
System finansowy wymaga RTO = 1 godzina i RPO = 15 minut. Dobierz strategię backupu i wskaż element kluczowy dla spełnienia wymagań RPO.[web:8]
| Kryterium | Wymaganie | Wpływ na strategię |
|---|---|---|
| RTO | 1 godzina | Wymaga automatyzacji procesu odzyskiwania i gotowego środowiska zapasowego. |
| RPO | 15 minut | Wymaga bardzo częstych backupów dzienników transakcji lub replikacji. |
Strategia dla RTO = 1h i RPO = 15min:
1. Pełny backup bazy danych: raz dziennie (np. w nocy).
2. Backup logów transakcji lub backupy przyrostowe: co 10–15 minut.
3. Klucz do osiągnięcia niskiego RTO:
- utrzymywanie serwera zapasowego (standby),
- replikacja bazy w trybie niemal rzeczywistym,
- zautomatyzowany skrypt przełączenia na serwer zapasowy.
Ćwiczenie 3 Weryfikacja integralności pliku
Plik archiwum_logi_bazy.tar.gz został przesłany przez sieć. Sprawdź, czy nie został uszkodzony, porównując jego sumę MD5 z wartością zapisaną w dokumentacji (np. 1a2b3c4d...).[web:8]
- Wykonaj polecenie:
md5sum archiwum_logi_bazy.tar.gz. - Jeśli suma jest identyczna z dokumentacją, plik zachował integralność.
# Generowanie sumy kontrolnej MD5
md5sum archiwum_logi_bazy.tar.gz
# Przykład wyniku:
# 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d archiwum_logi_bazy.tar.gz
Quiz Sprawdź swoją wiedzę
Odpowiedz na pytania, a następnie porównaj swoje odpowiedzi z proponowanym rozwiązaniem.
- Jakie są dwa kluczowe testy, które należy wykonać po pomyślnym odtworzeniu bazy danych?
- Która metryka (RTO czy RPO) wpływa bezpośrednio na wymaganą częstotliwość tworzenia kopii zapasowych?
- Podaj przykład komendy systemu Linux do szybkiej weryfikacji, czy plik
.sqlzawiera komendyINSERT(bez wczytywania całego pliku).
- Test integralności danych (np.
COUNT(*)w kluczowych tabelach) oraz test funkcjonalny aplikacji na odtworzonej bazie. - Na częstotliwość tworzenia kopii zapasowych wprost wpływa metryka RPO.
- Na przykład:
grep "INSERT INTO" nazwa_pliku.sqllubhead -n 100 nazwa_pliku.sql.
Checklista Podsumowanie umiejętności
Upewnij się, że potrafisz wykonać poniższe czynności samodzielnie.
- ✅ Poprawnie wykonuję przywracanie bazy danych z pliku
.sqlw MySQL. - ✅ Weryfikuję integralność plików kopii za pomocą narzędzi kryptograficznych (np.
md5sum,sha256sum). - ✅ Potrafię zinterpretować i zastosować metryki RTO i RPO w planowaniu strategii Disaster Recovery.