Tworzenie kopii za pomocą mysqldump.
Do polecenia mysqldump możemy dodawać następujące opcje:
–databases baza1, baza2, bazan – zrzuca dane z baz podanych jako argument/y
–all-databases – jw. z tym, że dla wszystkich baz
–add-drop-table dodaje DROP TABLE do kopii. Przy odtwarzaniu z tej kopii istniejące tabele zostaną usunięte.
–no-create- info – nie dodawaj do kopii informacji o strukturze danych (tylko same dane).
–no-data – nie zapisuj danych, tylko samą strukturę.
–opt nazwa_bazy – tworzy kopię wraz z wszystkimi informacjami SQL (blokowanie tabel itp.) Ta opcja tworzy pełną kopię bazy.
Wynik polecenia mysqldump należy przekierować do pliku w którym ta kopia będzie przechowywana (znak >).
Przy odtwarzaniu z pliku użyjemy znaku < (mniejszości).
Przykłady:
mysqldump –u root –databases baza1 > baza1_backup.sql –p
mysqldump –u root –databases –no-data baza1 > baza1_struktura.sql –p
Pełna kopia:
mysqldump –u root –opt baza1 > baza1_backup.sql –p
Jeżeli kopię definiujemy bezpośrednio w skrypcie bash napiszemy tak (bez spacji po „-p”):
mysqldump –u root –opt baza1 > baza1_backup.sql –phaslo
Przywracanie:
mysql –u root baza1 < baza1_backup.sql -p
(uwaga samo polecenie mysql przy przywracaniu ! nie mysqldump)
Automatyzacja wykonywania, pobierania i przechowywania kopii baz MySQL (system Linux):
a) Stwórz katalog: mkdir /root/kopie
b) Stwórz plik: touch kopia_bazy.sh
Stworzony plik uzupełnij następującym tekstem:
#!/bin/sh
DZIEN=`date +"%d-%m-%Y_%H-%M-%S"`
KATALOG=kopie
/usr/bin/mysqldump –opt firma > $KATALOG/kopia_firma_$DZIEN.sql -u root -phasło
/bin/gzip $KATALOG/kopia_firma_$DZIEN.sql
find /root/kopie/ -mtime +10 -type d -exec rm -rf {} ;
find /root/kopie/ -mtime +10 -type f -exec rm f {} ;
Dwie ostatnie linie działają w następujący sposób: wyszukaj katalogi / pliki starsze niż 10 dni i je usuń. Chodzi o automatyzację odzyskiwania miejsca na dysku, w przeciwnym razie nieusuwane kopie zapełnią przestrzeń dyskową.
c) Dodaj uruchamianie stworzonego skrypty do crona. W tym celu wydaj polecenie: crontab –e
d) W pliku crontaba wpisz:
00 13 * * * cd~;./kopia_bazy.sh
Codziennie o godz. 13.00 wykonaj skrypt kopia_bazy.sh, który mieści się w katalogu domowym użytkownika root.
Automatyczne pobieranie stworzonych kopii na PC z systemem Windows:
a) Na stacji zainstaluj WinSCP
b) W katalogu gdzie zainstalowano WinSCP stwórz 2 pliki: skrypt.txt oraz kopia.bat
c) Plik skrypt.txt uzupełnij następująco:
option batch on
option confirm off
open root:haslo@192.168.1.199
cd ~
synchronize local d:kopie /root/kopie/
close
exit
d) Plik kopia.bat:
cd c:Program FilesWinSCP
winscp.exe /console /script=skrypt.txt
e) Plik kopia.bat dodaj do harmonogramu zadań systemu Windows i uruchamiaj go o wybranej porze.