Importowanie i eksportowanie bazy danych

Synchronizacja i migracje między serwerami · INF.03

Teoria Metody importu i eksportu danych

  • Import i eksport przenoszą strukturę oraz dane bazy między serwerami lub środowiskami (np. produkcja → test).[web:11][web:12]
  • Popularne narzędzia: mysqldump, mysql, phpMyAdmin, pg_dump, SQL Server Management Studio.
  • Eksport tworzy plik .sql, CSV lub inny format, który można przenieść na inny serwer lub wykorzystać jako kopię zapasową.[web:11][web:12]
  • Synchronizacja baz to utrzymywanie spójnych danych i struktur pomiędzy dwoma instancjami (np. główną i zapasową).[web:17]
  • Migracje to kontrolowane, wersjonowane zmiany schematu bazy (np. dodanie kolumny), zwykle powiązane z wersjonowaniem kodu aplikacji.[web:16][web:19]

Poprawnie zaplanowane eksporty, importy i migracje zmniejszają ryzyko utraty danych oraz błędów po wdrożeniach.

Ćwiczenie 1 Eksport bazy MySQL do pliku SQL

Zadanie: Wyeksportuj całą bazę szkola do pliku szkola.sql z poziomu wiersza poleceń.[web:11][web:12]
# Eksport bazy "szkola" do pliku szkola.sql
mysqldump -u root -p szkola > szkola.sql
            

Ćwiczenie 2 Import bazy MySQL z pliku SQL

Zadanie: Zaimportuj bazę na serwerze testowym z pliku szkola.sql do bazy szkola_test.[web:12][web:13]
# Import pliku szkola.sql do bazy szkola_test
mysql -u root -p szkola_test < szkola.sql
            

Ćwiczenie 3 Synchronizacja tabel między serwerami

Opis: Wyobraź sobie, że posiadasz dwie bazy: główną i kopię na serwerze zapasowym. Chcesz zsynchronizować tabelę uczniowie, aby dane były identyczne.[web:17][web:20]
# Przykład użycia pt-table-sync (Percona Toolkit)
pt-table-sync --execute \
  h=localhost,D=szkola,t=uczniowie \
  h=backupserver,D=szkola,t=uczniowie

# Narzędzie porównuje wiersze i aktualizuje docelową tabelę,
# aby była spójna ze źródłową.
            

Ćwiczenie 4 Migracje bazy z wersjonowaniem

Opis: Narzędzia takie jak Flyway lub Liquibase umożliwiają kontrolowane wdrażanie zmian schematu (migracje) z zachowaniem historii wersji.[web:16][web:19]
-- Przykład migracji Flyway (skrypt SQL, np. V2__add_telefon.sql):
ALTER TABLE uczniowie ADD COLUMN telefon VARCHAR(20);

-- Przykład migracji Liquibase (XML):

  
    
  

            

Quiz Sprawdź wiedzę!

  1. Jak wyeksportować bazę MySQL do pliku SQL z wiersza poleceń?
  2. Jak zaimportować bazę z pliku SQL do istniejącej bazy na serwerze?
  3. Na czym polega synchronizacja między dwiema bazami danych?
  4. Co to są migracje bazy danych i po co się je wersjonuje?
  • Użycie mysqldump, np. mysqldump -u user -p baza > baza.sql.[web:11][web:12]
  • Polecenie mysql z przekierowaniem pliku, np. mysql -u user -p baza < baza.sql.[web:12][web:13]
  • Utrzymywanie spójnych danych i struktur między dwoma instancjami bazy (np. porównanie i wyrównanie różnic tabel).[web:17][web:20]
  • Kontrolowane zmiany schematu (np. ALTER TABLE) zapisywane w wersjach, aby każda zmiana była powtarzalna i możliwa do odtworzenia.[web:16][web:19]

Checklista Sprawdź umiejętności

  • Eksportuję i importuję bazy MySQL między serwerami za pomocą mysqldump i mysql.
  • Potrafię zsynchronizować dane między tabelami na różnych serwerach przy użyciu dedykowanych narzędzi lub skryptów.[web:17][web:20]
  • Planuję i realizuję migracje bazy z użyciem narzędzi do wersjonowania (np. Flyway, Liquibase).[web:16][web:19]
  • Dbam o spójność i bezpieczeństwo danych podczas każdego importu, eksportu i migracji.[web:11][web:12]