Prosta metoda na tworzenie kopii zapasowych MySQL/MariaDB
Część 1: Jak ręcznie zrobić kopię zapasową (Backup)#
Do wykonania kopii użyjemy standardowego, wbudowanego narzędzia o nazwie mysqldump. Jeżeli nie ma go w naszym systemie można zainstalować je poleceniem:
apt install mariadb-client
Jego zadaniem jest odczytanie całej struktury i danych z bazy, a następnie zapisanie ich w jednym pliku (najczęściej z rozszerzeniem .sql).
Aby to zrobić, zaloguj się na swojego Mikrusa i użyj poniższego poniższe polecenie:
mysqldump nazwa_twojej_bazy > kopia_bazy.sql
Co oznaczają poszczególne elementy?
mysqldump- wywołanie programu służącego do eksportu bazy.nazwa_twojej_bazy- nazwa konkretnej bazy, którą chcesz zabezpieczyć.>- znak przekierowania. Oznacza, że wynik działania programu ma zostać zapisany do pliku, a nie wyświetlony na ekranie.kopia_bazy.sql- nazwa pliku, który zostanie utworzony.
Jeżeli twoja baza wymaga innego użytkownika czy hasła użyj takiej składni. Przykłdowo do współdzielonej bazy dane dostępowe wyglądają tak:
Server: mysql.mikr.us
login: a100
Haslo: l0s0w3h4s10
Baza: db_a100
mysqldump -h mysql.mikr.us -u a100 -p db_a100 > kopia_bazy.sql
Po jej uruchomieniu system poprosi Cię o podanie hasła do bazy (l0s0w3h4s10).
Uwaga: wpisywane znaki nie pojawiają się.
Co oznaczają dodatkowe parametry?#
-h mysql.mikr.us- adres serwera MySQL, w naszym wypadku adres współdzielonej bazy. Jeżeli baza jest na twoim VPS-ie to możesz pominąć.-u a100- nazwa użytkownika.-p- informuje program, że hasło będzie wymagane (zostaniesz o nie zapytany).db_a100- nazwa bazy danych do eksportu.> kopia_bazy.sql- zapis wyniku do pliku.
Plik z kopią bazy pojawi się w katalogu, w którym obecnie się znajdujesz.
Część 2: Jak odtworzyć bazę danych (Restore)#
Gdy zajdzie potrzeba przywrócenia danych (np. po awarii lub podczas przenoszenia strony na nowy serwer), używamy podstawowego narzędzia mysql.
Uwaga: Zanim to zrobisz, pusta baza docelowa na serwerze musi być już utworzona.
Polecenie przywracania wygląda następująco:
mysql nazwa_twojej_bazy < kopia_bazy.sql
Dodatkowe parametry (adres serwera, użytkownik, hasło) można podać tak samo jak podczas eksportu bazy.
Ważna różnica:
Zwróć uwagę na kierunek strzałki. Zamiast > mamy <. Tym razem polecenie oznacza: weź zawartość pliku kopia_bazy.sql i zaimportuj ją do podanej bazy danych.
Część 3: Automatyzacja, czyli cykliczny backup (Cron)#
Codzienne, ręczne wpisywanie komend jest uciążliwe. Na szczęście systemy Linux posiadają narzędzie Cron, które służy do cyklicznego uruchamiania zadań według określonego harmonogramu.
Krok 1: Tworzymy skrypt do backupu#
Najpierw musimy stworzyć plik tekstowy, który będzie zawierał instrukcję dla serwera. Nazwijmy go auto_backup.sh (np. za pomocą edytora nano /root/auto_backup.sh) i wklejmy do niego następujący kod:
#!/bin/bash
# Ustawienia danych logowania
USER="twoj_uzytkownik"
PASSWORD="twoje_haslo"
DATABASE="nazwa_twojej_bazy"
# Generowanie daty, aby każdy plik miał unikalną nazwę (np. kopia_2026-02-25.sql)
DATE=$(date +"%Y-%m-%d")
DESTINATION="/storage/backup-bazy-danych/kopia_${DATE}.sql"
# Wykonanie zrzutu bazy. Parametr -p i hasło wpisujemy tu bez spacji!
mysqldump -u ${USER} -p${PASSWORD} ${DATABASE} > ${DESTINATION}
Zapisz plik. (Ctrl + s), zamknij edytor (Ctrl + x) a następnie nadaj mu uprawnienia do uruchamiania:
chmod +x /root/auto_backup.sh
Krok 2: Konfiguracja Crona#
Teraz dodamy zadanie do harmonogramu. Uruchom:
crontab -e
Otworzy się edytor zadań Crona. Dodaj na samym dole nową linię. Jeśli chcesz, aby kopia wykonywała się codziennie o godzinie 02:15 w nocy, wpisz:
15 2 * * * /root/auto_backup.sh
Zapisz zmiany i zamknij edytor.
Przy codziennej kopi zapasowej tworzonej w ten sposób, w szczególności dla większych baz danych, można dość szybko zapełnić sobie dysk na serwerze. Warto zmniejszyć okres kopi zapasowych do np. raz w tygodniu, w poniedziałak o 02:15 w nocy:
15 2 * * 1 /root/auto_backup.sh
Kopia bazy danych przechowywana na tym samym serwerze na którym jest sama baza nie chroni nas przed utratą danych w wypadku na przykład przypadkowej reinstalacji serwera. Warto w takiej sytuacji tworzyć drugą kopię zapasową na innym dysku, na przykład używając strychu.
Jeśli szukasz miejsca dla swoich developerskich potrzeb, to zapoznaj się z ofertą serwerów VPS od Mikrusa.
SerweryVPS już od 35 zł rocznie.
Dowiedz się więcej