Zadanie 10 - Kopie zapasowe i odtwarzanie danych

Wprowadzenie: Dlaczego kopie zapasowe są tak ważne?

Analogia: Zapisywanie ważnego dokumentu

Wyobraź sobie, że piszesz bardzo ważną pracę. Co robisz? Zapisujesz ją regularnie! A co, jeśli boisz się, że Twój komputer może się zepsuć? Zapisujesz kopię na pendrive lub w chmurze. Robisz to, ponieważ wiesz, że utrata tej pracy byłaby katastrofą.

Baza danych to serce każdej aplikacji. Przechowuje wszystkie informacje: o użytkownikach, produktach, zamówieniach, wypożyczeniach. Jej utrata (spowodowana awarią dysku, błędem ludzkim czy atakiem) może oznaczać koniec działalności firmy. Kopia zapasowa (backup) to Twoja polisa ubezpieczeniowa. To "zapisany na pendrive" stan całej bazy danych, który pozwala ją odtworzyć w razie awarii.

Złota zasada administratora

Twoja baza danych jest tak wartościowa, jak jej ostatnia, sprawdzona i działająca kopia zapasowa. Nigdy nie lekceważ regularnego backupu!

Cel zadania

Celem jest nauka tworzenia i odtwarzania kopii zapasowych bazy danych biblioteka. Poznasz dwie metody: z użyciem narzędzia wiersza poleceń mysqldump (idealne do automatyzacji) oraz za pomocą klienta graficznego HeidiSQL (wygodne do jednorazowych zadań).

Część A: Kopia zapasowa z wiersza poleceń (mysqldump)

mysqldump to program, który "czyta" bazę danych i generuje plik tekstowy .sql zawierający wszystkie polecenia potrzebne do jej odtworzenia od zera.

Krok 1: Przygotowanie i wykonanie kopii zapasowej
  1. Stwórz folder na backupy: Uruchom Eksplorator Plików i stwórz na dysku C: nowy folder o nazwie backup_db.
  2. Otwórz terminal: W panelu XAMPP kliknij przycisk "Shell".
  3. Wykonaj polecenie backupu: Wpisz poniższą komendę i naciśnij Enter.
  4. mysqldump -u root -p --routines --triggers biblioteka > C:\backup_db\biblioteka_backup.sql
          
  5. Podaj hasło: System poprosi o hasło dla użytkownika root. Wpisz je i zatwierdź.
Dogłębna analiza polecenia:
Krok 2: Inspekcja pliku z kopią zapasową

Przejdź do folderu C:\backup_db i otwórz plik biblioteka_backup.sql w dowolnym edytorze tekstu (np. Notatnik lub VS Code). Zobaczysz w nim:

Plik ten to kompletny, samodzielny "przepis" na odtworzenie Twojej bazy danych.

Krok 3: Symulacja awarii i odtwarzanie bazy

Teraz przeprowadzimy kontrolowaną "katastrofę", aby przetestować naszą kopię zapasową.

  1. Zaloguj się do serwera: W terminalu wpisz mysql -u root -p.
  2. "Awaria": Wykonaj polecenie, które nieodwracalnie usunie całą bazę biblioteka.
  3. DROP DATABASE biblioteka;
  4. Stwórz pustą bazę: Aby móc odtworzyć dane, musimy najpierw stworzyć pusty kontener.
  5. CREATE DATABASE biblioteka;
  6. Wyloguj się: Wpisz exit;.
  7. Odtwórz dane: Teraz wykonaj polecenie odwrotne do tworzenia kopii.
  8. mysql -u root -p biblioteka < C:\backup_db\biblioteka_backup.sql
          

    Zwróć uwagę na operator < - tym razem "wlewa" on zawartość pliku do programu mysql.

  9. Weryfikacja: Zaloguj się ponownie do bazy i wykonaj USE biblioteka; a następnie SHOW TABLES;. Wszystkie Twoje tabele powinny wrócić!

Część B: Kopia zapasowa z klienta GUI (HeidiSQL)

HeidiSQL oferuje wygodny interfejs graficzny do tych samych operacji.

Krok po kroku: Eksport bazy w HeidiSQL
  1. Połącz się z serwerem. W drzewie po lewej stronie kliknij prawym przyciskiem myszy na bazę biblioteka i wybierz "Eksportuj bazę danych jako SQL".
  2. W oknie eksportu skonfiguruj najważniejsze opcje:
    • Tabela(e): Zaznacz Utwórz (aby dodać CREATE TABLE) oraz Usuń (aby dodać DROP TABLE IF EXISTS - to dobra praktyka, zapobiega błędom przy odtwarzaniu).
    • Dane: To kluczowa opcja. Ustaw ją na "INSERT", aby wyeksportować dane. Wybranie "Brak danych" stworzyłoby kopię samej struktury (pustych tabel).
    • Wynik: Wybierz "Jeden duży plik".
    • Nazwa pliku: Wskaż lokalizację, np. C:\backup_db\biblioteka_heidisql.sql.
  3. Kliknij "Eksportuj". Plik zostanie wygenerowany.
  4. Odtwarzanie: Aby odtworzyć bazę z tego pliku w HeidiSQL, wystarczy otworzyć go (menu Plik -> Wczytaj plik SQL...) i uruchomić cały skrypt (klawisz F9).

Zakończenie kursu

Gratulacje!

Ukończyłeś kompletny cykl ćwiczeń z projektowania i zarządzania bazami danych. Przeszedłeś drogę od zera – instalacji serwera, przez jego zabezpieczenie, projektowanie schematu, normalizację, tworzenie relacji, zaawansowane zapytania SQL, aż po kluczową umiejętność tworzenia kopii zapasowych.

Posiadasz teraz solidne, praktyczne fundamenty, które są niezbędne w pracy każdego specjalisty IT. Dalsza nauka to już kwestia praktyki i realizowania coraz bardziej złożonych projektów. Powodzenia!