Tworzenie kopii zapasowej bazy danych jest kluczowym elementem utrzymania integralności i trwałości danych.
W MySQL, narzędzie mysqldump
jest często używane do tego celu. Pozwala ono na tworzenie “kopii zapasowych” bazy danych lub kolekcji baz danych. Dodatkowo, narzędzie pv
pozwala na monitorowanie postępu procesu przywracania kopii zapasowej.
- Dump wszystkich baz danych
Aby utworzyć kopię zapasową wszystkich baz danych, można użyć polecenia mysqldump
z przełącznikiem --all-databases
:
mysqldump -u [username] -p --all-databases > alldb_backup.sql
W tym przypadku, [username]
to nazwa użytkownika, który ma uprawnienia do wykonywania operacji na bazach danych. Po wykonaniu polecenia, zostanie utworzony plik alldb_backup.sql
, który zawiera kopię zapasową wszystkich baz danych.
- Dump pojedynczej bazy danych
Jeśli chcesz utworzyć kopię zapasową tylko jednej bazy danych, możesz to zrobić, podając nazwę bazy danych jako argument dla mysqldump
:
mysqldump -u [username] -p [database_name] > db_backup.sql
Tutaj, [database_name]
to nazwa bazy danych, której kopię zapasową chcesz utworzyć.
- Dump pojedynczej tabeli
Możesz również utworzyć kopię zapasową tylko jednej tabeli z bazy danych. W tym celu, musisz podać zarówno nazwę bazy danych, jak i nazwę tabeli jako argumenty dla mysqldump
:
mysqldump -u [username] -p [database_name] [table_name] > table_backup.sql
W tym przypadku, [table_name]
to nazwa tabeli, której kopię zapasową chcesz utworzyć.
- Wykorzystanie przełączników
Narzędzie mysqldump
oferuje wiele przełączników, które pozwalają na dostosowanie procesu tworzenia kopii zapasowej. Oto kilka przykładów:
--add-drop-table
: Dodaje poleceniaDROP TABLE
przed każdym poleceniemCREATE TABLE
w pliku kopii zapasowej. Jest to przydatne, gdy chcesz zastąpić istniejące tabele podczas przywracania kopii zapasowej.--no-data
: Powoduje, żemysqldump
nie zapisuje żadnych danych tabeli (tylko schematy).--lock-tables
: Blokuje wszystkie tabele na czas tworzenia kopii zapasowej.--password[=password]
,-p[password]
: Umożliwia podanie hasła. Jeśli nie podasz hasła po przełączniku,mysqldump
poprosi o nie.--quick
: Przyspiesza proces tworzenia kopii zapasowej dla dużych baz danych.--single-transaction
: Tworzy kopię zapasową z jednej transakcji, co jest przydatne dla dużych baz danych InnoDB.
- Przywracanie kopii zapasowej
Po utworzeniu kopii zapasowej, możesz ją przywrócić za pomocą polecenia mysql
:
mysql -u [username] -p [database_name] < db_backup.sql
Tutaj, [database_name]
to nazwa bazy danych, do której chcesz przywrócić kopię zapasową.
- Monitorowanie postępu przywracania za pomocą pv
Narzędzie pv
pozwala na monitorowanie postępu procesu przywracania kopii zapasowej. Możesz je zainstalować za pomocą menedżera pakietów swojego systemu, na przykład apt
na Ubuntu:
sudo apt install pv
Następnie, możesz użyć pv
podczas przywracania kopii zapasowej:
pv db_backup.sql | mysql -u [username] -p [database_name]
Pamiętaj, że tworzenie regularnych kopii zapasowych jest ważnym elementem utrzymania bazy danych. Narzędzia mysqldump
i pv
są potężnymi narzędziami, które mogą pomóc w tym procesie. Jednak zawsze upewnij się, że twoje kopie zapasowe są bezpieczne i że potrafisz je przywrócić, zanim napotkasz na prawdziwy problem.