Tworzenie kopii zapasowych struktury bazy danych

Backup, automatyzacja, testy przywracania · INF.03

Teoria Po co backupy?

  • Kopia zapasowa to zabezpieczenie przed utratą danych przez awarie, błędy lub ataki
  • Przywrócenie backupu pozwala odtworzyć całą strukturę (tabele, relacje, constraints) oraz dane
  • Automatyzacja backupów eliminuje ludzkie zapominalstwo — warto stosować harmonogramy i testy przywracania
  • Backup struktury (schema only) zapisuje same polecenia CREATE, bez danych!

Ćwiczenie 1 Ręczny backup struktury MySQL

Krok po kroku:
  1. Zaloguj się do serwera MySQL
  2. Wykonaj polecenie: mysqldump -u root -p --no-data szkola > szkola_struct.sql
  3. Plik szkola_struct.sql zawiera CAŁĄ strukturę — bez danych
-- szkola_struct.sql:
CREATE TABLE `uczniowie` (
  `id` int NOT NULL AUTO_INCREMENT,
  `imie` varchar(30) NOT NULL,
  -- ... itd.
  PRIMARY KEY (`id`)
);
/* ...pozostałe tabele... */

Ćwiczenie 2 Backup Access: eksport schematu do pliku

Opis: Access/MDB/ACCDB — Strona „Plik” → Eksportuj → Kopia zapasowa bazy → tylko struktura (bez danych).
Menu → Plik → Zapisz jako → Kopia zapasowa bazy danych
lub
Narzędzia bazy danych → Relacje → Dokumentacja bazy

Ćwiczenie 3 Automatyzacja backupów na serwerze

Przykład crontab w Linux: Codzienna kopia tylko struktury:
0 3 * * * mysqldump -u root --password=HASLO --no-data szkola > /backup/szkola_struct_$(date +\%F).sql
# Raz dziennie o 3:00 w nocy!

Ćwiczenie 4 Test przywracania struktury

Zadanie: Odtwórz bazę z backupu:
  1. Utwórz pustą bazę (np. szkola_test)
  2. Załaduj plik schematu: mysql -u root -p szkola_test < szkola_struct.sql
  3. Sprawdź: tabele, relacje, constraints — gotowe do pracy!
mysql> CREATE DATABASE szkola_test;
mysql> USE szkola_test;
mysql> SOURCE szkola_struct.sql;
-- struktura zaimportowana, brak danych — możesz załadować osobno backup INSERTów!

Quiz Sprawdź wiedzę o backupie!

  1. Jak utworzyć backup tylko struktury (bez danych) w MySQL?
  2. Kiedy przydaje się backup schematu?
  3. Co należy zawsze sprawdzić po przywróceniu backupu?
  4. Jak zautomatyzować backupy?
  • mysqldump --no-data baza > plik.sql
  • Przy rozwoju projektu, migracjach i po dużych zmianach struktury
  • Tabele, relacje, constraints — czy wszystko działa tak jak w oryginale
  • Skrypty harmonogramu (crontab), narzędzia SQL/Access/cron

Checklista Sprawdź umiejętności

  • Wykonuję kopie struktury bazy (mysqldump, eksport)
  • Testuję przywracanie — nowa baza, załadunek pliku struktury
  • Automatyzuję backup przez harmonogram lub narzędzia
  • Dbam o bezpieczeństwo kopii i dokumentację procesu
Materiały: INF.03 — Backup, testy, struktura bazy · Autor: Tomasz Puchała © 2025