Kopie MySQL / MariaDB

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.
 

Przewijanie do góry