wtorek,
MySQL: Kopie zapasowe
Tworzenie kopii zapasowej (backup) i przywracanie (restore) bazy danych MySQL to bardzo ważne zadania administratora. Regularne tworzenie kopii zapasowych zapewnia bezpieczeństwo danych i daje możliwość szybkiego przywrócenia systemu w przypadku awarii.
Typowe procedury
Tworzenie kopii zapasowej bazy danych MySQL
- Można użyć polecenia mysqldump do utworzenia kopii zapasowej bazy danych. Przykład: mysqldump -u [username] -p [database_name] > backup.sql.
- Ten proces tworzy plik SQL zawierający wszystkie instrukcje potrzebne do odtworzenia bazy danych.
Przywracanie bazy danych MySQL
- Aby przywrócić bazę danych z pliku backup, użyj polecenia mysql. Przykład: mysql -u [username] -p [database_name] < backup.sql.
- To polecenie czyta plik SQL i wykonuje zawarte w nim instrukcje, odbudowując bazę danych.
Polecenie mysqldump
Opcje polecenia mysqldump
Polecenie "mysqldump" w MySQL ma wiele przydatnych opcji, które pozwalają dostosować proces tworzenia kopii zapasowych.
- "--databases": pozwala na zrzut wielu baz danych jednocześnie.
- "--tables": wybiera konkretne tabele do zrzutu z bazy danych.
- "--no-data": tworzy zrzut tylko ze struktury tabel, bez danych.
- "--add-drop-table": dodaje do zrzutu instrukcje "DROP TABLE", które usuwają istniejące tabele przed ich rekreacją.
- "--where": umożliwia dodanie klauzuli WHERE do wyboru konkretnych wierszy tabeli.
- "--single-transaction": używa pojedynczej transakcji do zrzutu, zapewniając spójność danych.
- "--quick": przesyła duże tabele wiersz po wierszu, zamiast buforować całą tabelę w pamięci.
- "--lock-tables": blokuje tabele na czas tworzenia zrzutu.
- "--compress": kompresuje dane podczas przesyłania między mysqldump a serwerem MySQL.
Te opcje pozwalają dostosować "mysqldump" do specyficznych potrzeb backupu, zarówno dla małych, jak i dużych baz danych.
Strona kodowa kopii
Użycie odpowiedniej strony kodowej (character set) jest ważne podczas tworzenia kopii zapasowych baz danych MySQL za pomocą mysqldump, szczególnie w przypadkach, gdy baza zawiera dane w różnych językach lub specjalne symbole. mysqldump pozwala określić stronę kodową za pomocą opcji --default-character-set. Na przykład, aby użyć UTF-8, możesz dodać --default-character-set=utf8 do polecenia mysqldump. Zapewni to, że wszystkie znaki zostaną poprawnie zakodowane i zapisane w pliku kopii zapasowej, a następnie mogą być prawidłowo odtworzone podczas przywracania bazy danych.
Przykłady wykorzystania opcji mysqldump
Eksportowanie wybranych tabel z określonej bazy danych
mysqldump -u username -p database_name table1 table2 > backup.sql
W tym przypadku, mysqldump eksportuje tylko table1 i table2 z database_name do pliku backup.sql.
Użycie opcji --where do eksportowania wybranych wierszy
mysqldump -u username -p database_name table_name --where="id < 1000" > backup.sql
W tym przykładzie eksportowane są tylko wiersze z table_name, gdzie wartość kolumny id jest mniejsza niż 1000.
Określenie strony kodowej
Przy użyciu mysqldump do eksportu danych, możesz określić stronę kodową, aby zapewnić prawidłowe zakodowanie znaków. Oto przykład:
mysqldump --default-character-set=utf8 -u username -p database_name > backup.sql