Pilna sprawa ze sklepem? 573 003 991 kontakt@edukowski.pl pon.–pt. 8:00–16:00
Bezpieczeństwo · 7 min czytania

Kopie zapasowe sklepu: ile, gdzie i jak testować odtwarzanie

Co kopiować (baza, pliki, zdjęcia, konfiguracja), jak często, gdzie trzymać według zasady 3-2-1 i dlaczego kopia, której nikt nie odtworzył, nie jest kopią.

Eryk Dukowski
Eryk Dukowski
· aktualizacja 2.11.2026
Bezpieczeństwo
Kopie zapasowe.
Baza wiedzy EDUKOWSKI
Potrzebujesz pomocy?

Zrobimy to za Ciebie. Opisz problem, a odpowiemy w ciągu 24 godzin roboczych.

Opisz projekt
Oznaczenia w artykule
WażnePilneWskazówkaZ praktykiKrok po kroku

Każdy sklep ma kopie zapasowe. Tak przynajmniej odpowiada każdy właściciel, dopóki nie zapytamy: z kiedy jest ostatnia, gdzie leży i kiedy ktoś ją odtwarzał. Wtedy okazuje się, że kopia jest od hostingu, sprzed nieznanego czasu, na tym samym serwerze co sklep, i nikt jej nigdy nie otwierał. Ten tekst mówi, jak zrobić kopie, które naprawdę ratują sklep, i jak sprawdzić, że działają, zanim będą potrzebne.

W skrócie

  • Kopia sklepu to cztery rzeczy naraz: baza danych, pliki sklepu, zdjęcia i konfiguracja serwera. Brak jednej z nich oznacza, że sklepu nie odtworzysz.
  • Bazę kopiuj co najmniej raz dziennie, przy dużym ruchu częściej. Pliki i zdjęcia raz w tygodniu i przed każdą zmianą.
  • Zasada 3-2-1: trzy kopie, na dwu różnych nośnikach, jedna poza serwerem i poza hostingiem.
  • Raz na kwartał odtwórz sklep z kopii na środowisku testowym i zmierz, ile to trwa. To jedyny test, który się liczy.

Czego kopia musi dotyczyć

Sklep na PrestaShop to nie jeden plik. Odtworzenie wymaga czterech elementów i każdy z nich psuje się inaczej.

ElementCo zawieraJak szybko się zmieniaCo się stanie bez niego
Baza danychprodukty, klienci, zamówienia, konfiguracja sklepu, zgodyco minutę, przy każdym zamówieniuTracisz zamówienia i klientów z okresu od kopii
Pliki sklepurdzeń PrestaShop, moduły, szablon, nadpisania, tłumaczeniaprzy aktualizacjach i zmianachSklep nie uruchomi się albo uruchomi się bez modułów
Zdjęcia i pliki klientówkatalog img, załączniki, faktury PDF, pliki do pobraniaprzy dodawaniu produktówProdukty bez zdjęć, faktury do wygenerowania na nowo
Konfiguracja serwerawersja PHP, rozszerzenia, cron, vhost, certyfikaty, zmienne środowiskowerzadko, ale bez dokumentacjiOdtworzenie na nowym serwerze trwa dni zamiast godzin

Katalog ze zdjęciami jest zwykle największy, czasem to dziesiątki gigabajtów przy sklepie z kilkoma miniaturami na produkt. Wiele narzędzi do kopii pomija go dla oszczędności miejsca. To błąd. Zdjęcia da się wygenerować na nowo tylko wtedy, gdy masz oryginały, a te też są w tym katalogu.

Jak często

Częstotliwość wynika z prostego pytania: ile godzin sprzedaży możesz stracić. Jeśli sklep przyjmuje 50 zamówień dziennie, kopia bazy raz na dobę oznacza, że przy awarii o 18:00 tracisz zamówienia z całego dnia. Baza przy takim ruchu powinna być kopiowana co godzinę albo co kilka godzin. Przy kilku zamówieniach dziennie wystarczy raz na dobę, w nocy.

  • Baza danych: co najmniej raz dziennie, przy większym ruchu co godzinę. Kopia bazy jest mała i szybka.
  • Pliki sklepu: raz w tygodniu i obowiązkowo przed każdą aktualizacją, instalacją modułu czy zmianą w szablonie.
  • Zdjęcia: raz w tygodniu, przyrostowo, czyli tylko nowe i zmienione pliki.
  • Konfiguracja serwera: po każdej zmianie, w formie dokumentu lub skryptu, który ją odtwarza.

Wskazówka

Zamówienia i płatności są odnotowane też u operatora płatności i w systemie kuriera. Po awarii da się z nich odtworzyć brakujące godziny. To nie zastępuje kopii, ale warto wiedzieć, skąd wziąć dane, gdy kopia jest sprzed kilku godzin.

Gdzie trzymać: zasada 3-2-1

Zasada 3-2-1 jest stara i nadal wystarczająca: trzy kopie danych, na dwu różnych nośnikach, z czego jedna poza miejscem, w którym sklep działa.

Trzy kopie

Sklep produkcyjny się nie liczy. Potrzebujesz trzech osobnych kopii, bo jedna może być uszkodzona, a druga może zostać zaszyfrowana razem ze sklepem przy ataku.

Dwa nośniki

Kopia na tym samym dysku, co sklep, ginie razem ze sklepem przy awarii dysku. Kopia w panelu hostingu jest na tym samym serwerze albo w tej samej serwerowni. Potrzebujesz czegoś innego: osobnego serwera, magazynu plików w chmurze, dysku sieciowego w firmie.

Jedna poza hostingiem

To najważniejszy punkt i najczęściej pomijany. Jeśli dostawca hostingu zbankrutuje, zablokuje konto za nieopłaconą fakturę albo padnie ofiarą ataku, kopie u niego giną razem ze sklepem. Jedna kopia musi leżeć u innego dostawcy, na innym koncie, z innymi hasłami. Dobrze, jeśli jest to magazyn, do którego dostęp z serwera sklepu pozwala tylko dopisywać, a nie usuwać, bo wtedy włamywacz ze sklepu nie skasuje kopii.

Ważne

Kopie od hostingu traktuj jako dodatek, nie jako plan. Nie wiesz, jak często są robione, nie wiesz, czy są kompletne, i leżą u tego samego dostawcy co sklep. Własne kopie w osobnym miejscu to warunek, nie opcja.

Retencja: jak długo trzymać

Nie wszystkie kopie są równie ważne. Włamanie albo błąd w danych często wychodzi po tygodniach, więc kopia z wczoraj zawiera ten sam problem. Potrzebujesz kopii z różnych momentów. Sprawdzony schemat: codzienne kopie z ostatnich 14 dni, tygodniowe z ostatnich dwu miesięcy, miesięczne z ostatniego roku. Starsze usuwaj, między innymi dlatego, że kopie zawierają dane osobowe klientów i RODO wymaga ustalonego czasu ich przechowywania.

Kopie powinny być szyfrowane. Plik z bazą sklepu to pełna lista klientów z adresami i telefonami. Jeśli wycieknie z magazynu kopii, masz naruszenie do zgłoszenia w UODO w 72 godziny, mimo że sklep nic nie zrobił.

Test odtworzenia: jedyny test, który się liczy

Kopia, której nikt nie odtworzył, to plik o nazwie backup. Nie wiesz, czy jest kompletna, czy baza nie jest ucięta w połowie, czy archiwum się otwiera i czy ktoś w firmie umie z niej zrobić działający sklep. Dowiesz się tego w dniu awarii, a to najgorszy moment na naukę.

Test odtworzenia krok po kroku

  1. Wybierz kopię. Losowo, nie najnowszą. Celem jest sprawdzenie procedury, nie konkretnego pliku.
  2. Odtwórz na środowisku testowym. Osobny serwer lub subdomena z hasłem. Baza, pliki, zdjęcia, konfiguracja. Z zegarem w ręku.
  3. Uruchom sklep. Strona główna, kategoria, produkt ze zdjęciem, logowanie klienta, panel administracyjny, podgląd zamówienia z fakturą.
  4. Porównaj z produkcją. Liczba produktów, zamówień i klientów na dzień kopii. Różnice oznaczają niekompletną kopię.
  5. Zapisz czas i problemy. Ile trwało odtworzenie, co nie poszło, co trzeba było dołożyć ręcznie. To jest Twój realny czas powrotu po awarii.
  6. Popraw procedurę. Jeśli brakowało konfiguracji serwera, dopisz ją. Jeśli ktoś szukał hasła przez godzinę, zapisz, gdzie są hasła.

Taki test robimy raz na kwartał w ramach opieki nad sklepem i po każdej większej zmianie na serwerze. Trwa od godziny do pół dnia, zależnie od rozmiaru sklepu, i jest najlepiej wydanym czasem w całym budżecie bezpieczeństwa.

Z naszej praktyki

Sklep z branży ogrodniczej przyszedł do nas po awarii dysku na serwerze. Hosting miał kopie, ale z ostatnich siedmiu dni i wszystkie uszkodzone, bo kopiował bazę w trakcie zapisu. Właściciel miał własny plik z bazą sprzed trzech miesięcy, zrobiony ręcznie, bez zdjęć. Odtworzyliśmy sklep z tej bazy, zamówienia z trzech miesięcy uzupełniliśmy z systemu operatora płatności i brokera przesyłek, a brakujące zdjęcia z katalogu dostawcy. Sklep wrócił po czterech dniach. Dziś ma kopie bazy co godzinę, plików co tydzień, trzy lokalizacje i test odtworzenia co kwartał, który trwa 40 minut.

Automatyzacja i pilnowanie

Kopia robiona ręcznie „gdy ktoś pamięta” nie jest kopią. Cały proces powinien być automatyczny: skrypt lub narzędzie uruchamiane z crona, które robi kopię, szyfruje, wysyła poza serwer i usuwa stare według retencji. Ale automat też się psuje: kończy się miejsce, zmienia hasło do magazynu, hosting blokuje połączenie. Dlatego potrzebujesz jeszcze jednego elementu: powiadomienia, gdy kopia się nie wykonała albo jest podejrzanie mała. Brak powiadomienia o sukcesie też jest sygnałem. W opiece nad sklepem sprawdzamy to codziennie, bo najgorsza kopia to taka, która nie działa od miesiąca i nikt o tym nie wie.

Kopia zapasowa nie jest produktem. Jest procedurą, którą ktoś przetestował i wie, ile trwa.

Pytania, które słyszymy najczęściej

Czy moduł do kopii zapasowych w PrestaShop wystarcza?

Moduł potrafi zrobić kopię bazy i plików, ale zwykle zapisuje ją na tym samym serwerze i nie wysyła nigdzie dalej. Przy dużych sklepach przerywa się na limicie czasu PHP. Traktuj go jako uzupełnienie kopii z poziomu serwera.

Ile miejsca potrzebuję?

Baza po skompresowaniu to zwykle od kilkudziesięciu megabajtów do kilku gigabajtów. Zdjęcia to największa część, często kilkanaście gigabajtów i więcej. Z retencją na rok liczy się kilkukrotność rozmiaru sklepu, ale kopie przyrostowe zdjęć znacznie to zmniejszają.

Co z kopią przed aktualizacją?

To osobna kopia, poza cyklem automatycznym, z dokładnym czasem i sprawdzona przez odtworzenie, zanim ruszy aktualizacja. Trzymamy ją przez dwa tygodnie po aktualizacji.

Kto powinien mieć dostęp do kopii?

Jak najmniej osób: właściciel i firma opiekująca się sklepem. Dostęp do magazynu kopii z innymi hasłami niż do sklepu, najlepiej bez możliwości usuwania z poziomu serwera sklepu.

Nie wiesz, z kiedy jest ostatnia działająca kopia Twojego sklepu? W ramach opieki ustawiamy kopie według zasady 3-2-1, pilnujemy ich codziennie i co kwartał testujemy odtworzenie. Zobacz, co zawiera opieka nad sklepem.

Przydało się?

Oceń ten artykuł

Brak ocen. Bądź pierwszy.
Podaj dalej

Udostępnij artykuł

Eryk Dukowski
Autor
Eryk Dukowski

Właściciel EDUKOWSKI. Od 2015 roku programuję sklepy PrestaShop, moduły i integracje z systemami ERP. Piszę o tym, co widzę w codziennej pracy ze sklepami: wydajności, sprzedaży B2B, automatyzacji i migracjach.

Podobne artykuły

Wszystkie artykuły →