Kopia zapasowa Magento 2 – backup bazy danych i plików

Jak wykonywać skuteczne kopie zapasowe sklepu Magento 2 i MageOS: backup bazy MySQL, pliki media i kodu, harmonogram automatyczny oraz procedura przywracania.

2 marca 2026 · Magento 2 / MageOS · 7 min czytania

Spis treści

  1. Co należy objąć backupem w Magento 2?
  2. Backup bazy danych MySQL przez CLI
  3. Backup plików: kod, media, konfiguracja
  4. Backup przez panel Magento 2
  5. Automatyczny harmonogram backupu
  6. Przywracanie sklepu z backupu
  7. Często zadawane pytania

Co należy objąć backupem w Magento 2?

Kopia zapasowa Magento 2 składa się z trzech elementów, które razem umożliwiają pełne przywrócenie sklepu po awarii lub ataku. Brak któregokolwiek z nich może uniemożliwić lub znacznie utrudnić odtworzenie sklepu.

  • Baza danych MySQL — zawiera: zamówienia, klientów, produkty, konfigurację, treści CMS, ceny, recenzje. Jest najważniejszym elementem backupu — bez bazy sklep nie może działać
  • Katalog pub/media — zdjęcia produktów, pliki do pobrania, dokumenty. Może zajmować kilkadziesiąt GB, ale zmienia się stosunkowo rzadko
  • Kod aplikacji i konfiguracja — pliki PHP, moduły, szablony, plik app/etc/env.php. Przy użyciu git możesz trzymać kod w repozytorium — backup dotyczy wtedy głównie env.php z danymi dostępowymi
Ważne: Katalog var/ (logi, cache, sesje) i generated/ (wygenerowany kod PHP) NIE muszą być backupowane — są generowane automatycznie przez Magento po każdym uruchomieniu.

Backup bazy danych MySQL przez CLI

Backup bazy danych przez SSH to najszybsza i najbardziej niezawodna metoda. Dane połączenia z bazą znajdziesz w pliku app/etc/env.php (klucze: dbname, username, password, host).

Wykonaj dump bazy przez mysqldump

Komenda: mysqldump -u [user] -p[haslo] [nazwa_bazy] --single-transaction --quick | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz. Opcja --single-transaction zapewnia spójność danych przy aktywnym sklepie (bez blokowania tabel). Opcja --quick przyspiesza dump dużych baz.

Alternatywnie: użyj n98-magerun2

Narzędzie n98-magerun2 odczytuje dane połączenia z env.php automatycznie: n98-magerun2 db:dump --compression="gzip" backup.sql.gz. Nie trzeba podawać hasła ręcznie.

Przenieś backup do zewnętrznej lokalizacji

Backup na tym samym serwerze co sklep nie chroni przed awarią dysku lub ransomware. Prześlij backup do zewnętrznej lokalizacji: SFTP, rsync, Nextcloud (aiquila), AWS S3, Backblaze B2. Automatyzuj przez skrypt cron.

Backup plików: kod, media, konfiguracja

Backup katalog pub/media (zdjęcia produktów)

Komenda: tar -czf media_backup_$(date +%Y%m%d).tar.gz pub/media/. Katalog media może być duży (kilka–kilkadziesiąt GB). Przy synchronizacji przyrostowej używaj rsync: rsync -avz pub/media/ user@backup-server:/path/to/media/.

Backup konfiguracji (env.php)

Plik app/etc/env.php zawiera dane połączenia z bazą danych, klucze szyfrowania i konfigurację środowiska. Backupuj go oddzielnie i przechowuj bezpiecznie (nie umieszczaj w publicznym repozytorium git!).

Backup kodu (opcjonalnie z git)

Jeśli używasz git do zarządzania kodem, kod Magento jest bezpieczny w repozytorium. Backupuj wtedy tylko env.php, moduły niebędące w repo i ewentualne customizacje. Backup całego katalogu: tar -czf magento_code_$(date +%Y%m%d).tar.gz --exclude=var --exclude=generated --exclude=pub/static .

Automatyczny harmonogram backupu

Ręczne wykonywanie backupów jest zawodne — łatwo o tym zapomnieć szczególnie w gorącym okresie sprzedażowym. Automatyzacja przez cron jest niezbędna dla sklepów produkcyjnych.

Przykładowy wpis cron (crontab -e) wykonujący nocny backup bazy o 2:00:

Przykład crona: 0 2 * * * cd /var/www/magento && mysqldump -u magento -p[haslo] magento_db --single-transaction | gzip > /backup/db_$(date +\%Y\%m\%d).sql.gz && find /backup/ -name "db_*.sql.gz" -mtime +30 -delete. Komenda wykonuje dump bazy, kompresuje i usuwa backupy starsze niż 30 dni.
Wskazówka: Testuj procedurę przywracania z backupu co najmniej raz na kwartał. Backup, którego nie przetestowałeś, może się okazać bezużyteczny — uszkodzone pliki, niepełny dump, zmienione hasła.

Przywracanie sklepu z backupu

Procedura przywracania sklepu Magento 2 z backupu:

Przywróć bazę danych

Utwórz nową bazę (lub wyczyść istniejącą): mysql -u root -p -e "DROP DATABASE IF EXISTS magento_db; CREATE DATABASE magento_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;". Następnie: gunzip -c backup_20260302.sql.gz | mysql -u magento -p magento_db.

Przywróć pliki

Wgraj kod na serwer (przez git lub upload), a następnie przywróć media: tar -xzf media_backup.tar.gz -C /var/www/magento/. Skopiuj env.php: cp env_backup.php app/etc/env.php.

Uruchom setup i wyczyść cache

Po przywróceniu plików i bazy: php bin/magento setup:upgrade, następnie php bin/magento setup:di:compile i php bin/magento cache:flush. Sprawdź, czy sklep działa poprawnie w przeglądarce.

Często zadawane pytania

Jak często wykonywać backup Magento 2?

Dla sklepów aktywnych (kilkadziesiąt zamówień dziennie) zaleca się: backup bazy danych codziennie (nocny), backup plików media raz w tygodniu (rzadko się zmieniają), backup kodu i konfiguracji po każdej aktualizacji lub wdrożeniu. Backupy powinny być przechowywane przez minimum 30 dni w co najmniej dwóch lokalizacjach (na serwerze i zewnętrznej).

Jak przywrócić sklep Magento 2 z backupu?

Przywracanie Magento 2 z backupu: (1) Przywróć bazę danych: mysql -u [user] -p [dbname] < backup.sql, (2) Wgraj pliki kodu na serwer, (3) Przywróć pliki media z archiwum tar.gz, (4) Sprawdź app/etc/env.php — połączenie z bazą, (5) Uruchom: php bin/magento setup:upgrade && php bin/magento cache:flush. Pełne przywrócenie zajmuje zazwyczaj 30–60 minut.

Czy SMARTX wykonuje automatyczny backup sklepu Magento 2?

Tak, wszystkie plany Magento 2 i MageOS w smartxhosting.pl obejmują automatyczny backup infrastruktury na poziomie hosta (snapshoty Proxmox). Jednak dla pełnej ochrony danych e-commerce zaleca się dodatkowy backup na poziomie aplikacji — kopię bazy danych i plików media w zewnętrznej lokalizacji. Skontaktuj się z SMARTX w sprawie dostępnych opcji backupu aplikacyjnego.

Zobacz też

Szukasz bezpiecznego hostingu z backupem dla Magento 2?

Plany Magento 2 i MageOS w smartxhosting.pl obejmują automatyczne snapshoty infrastruktury i możliwość konfiguracji backupu aplikacyjnego. Twoje dane są bezpieczne.

Sprawdź plany Magento 2
Magento 2 MageOS backup kopia zapasowa przywracanie MySQL
Czy ta informacja była pomocna? 0 klientów oceniło tę informację jako przydatną (0 Głosów)