Jeśli masz możliwość zatrzymania swojego sklepu na 1-3 godziny, migracja jest dość prosta. Wiele poradników opisuje, jak to zrobić: skopiuj pliki i bazę na nowy serwer, a następnie oddeleguj domenę. Jednak w tym wpisie skupimy się na przeprowadzeniu migracji w pełnej integralności danych w możliwie jak najkrótszym czasie (najlepiej w czasie rzeczywistym).
Sklep generuje zamówienia średnio co kilka minut, więc każda minuta źle zaplanowanej migracji to potencjalna strata dla klienta. Nie możemy sobie pozwolić na najmniejsze pomyłki. Środowisko docelowe zostało zweryfikowane i przetestowane. Wszystko działa poprawnie – mamy kopię odwzorowaną i wykonane zamówienia testowe. Pozostało tylko przenieść dane.
IP na firewallu jest przepuszczone do bazy, dostęp jest – możemy zaczynać.
1. Zatrzymanie sklepu
Zamykamy sklep, aby zatrzymać nowe zamówienia i zminimalizować możliwość utraty danych podczas migracji.
mysqldump -u user -p database_name > backup.sql
Skopiuj plik backupu na nowy serwer:
scp backup.sql user@newserver:/path/to/destination
Odtwórz bazę na nowym serwerze:
mysql -u user -p new_database_name < /path/to/destination/backup.sql
2. Modyfikacja konfiguracji bazy danych Na starym serwerze edytuj plik konfiguracyjny PrestaShop, aby odwoływał się do nowego serwera bazy danych.
Znajdź plik settings.inc.php
w folderze /config
i zmień ustawienia bazy danych:
define('_DB_SERVER_', 'new_database_server_ip');
define('_DB_NAME_', 'new_database_name');
define('_DB_USER_', 'new_database_user');
define('_DB_PASSWD_', 'new_database_password');
3. Przegrywanie plików W tej chwili migracja plików nie ma znaczenia, czy trwa 3 czy 5 godzin, ponieważ wszystkie dane są już zapisywane na nowym serwerze bazy danych.
rsync -avz /path/to/prestashop/ user@newserver:/path/to/destination/
4. Oddelegowanie rekordu A
Aby przyspieszyć proces migracji, zaktualizuj rekord A DNS, aby wskazywał na nowy serwer.
Upewnij się, że rekord TTL jest ustawiony na jak najkrótszy czas (np. 5 minut) przed migracją, aby propagacja była jak najszybsza.
5. Zmiana delegacji DNS
Po zakończeniu migracji plików i upewnieniu się, że wszystko działa poprawnie na nowym serwerze, zmień delegację DNS.
W panelu zarządzania domeną zaktualizuj wpisy DNS, aby wskazywały na nowy serwer. Propagacja może zająć od kilku minut do 48 godzin, ale zazwyczaj jest szybsza, jeśli TTL był niski.
Migracja PrestaShop na nowy serwer przy minimalnych przestojach wymaga dokładnego planowania i testowania. Kluczowe jest wykonanie backupu bazy danych, odtworzenie jej na nowym serwerze, zmiana konfiguracji, a następnie przegranie plików i aktualizacja DNS. Postępując zgodnie z powyższymi krokami, możesz zminimalizować czas przestoju i zapewnić ciągłość działania sklepu.
Aby przyspieszyć proces migracji i zminimalizować przestoje, warto zmienić wartość TTL (Time To Live) rekordu A DNS przed rozpoczęciem migracji. TTL określa, jak długo informacje o rekordzie DNS są przechowywane w pamięci podręcznej serwerów DNS. Skrócenie tej wartości sprawia, że serwery DNS częściej odświeżają informacje, co przyspiesza propagację zmian.