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.