DB
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ę!
- Jak wyeksportować bazę MySQL do pliku SQL z wiersza poleceń?
- Jak zaimportować bazę z pliku SQL do istniejącej bazy na serwerze?
- Na czym polega synchronizacja między dwiema bazami danych?
- 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
mysqlz 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ą
mysqldumpimysql. - 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]