Przywracanie i testowanie
Moduł 8: Kopie zapasowe, środowisko testowe (staging) i aktualizacje PHP · Czas czytania: 8 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili przywrócić kopię zapasową, również obok istniejącej strony, i sprawdzić, czy jest kompletna i użyteczna.
Kluczowe pojęcia: przywracanie (restore), pełne lub częściowe, pliki lub baza danych, przywracanie obok strony, testowe przywrócenie, lista kontrolna po przywróceniu, dostosowanie adresów, import bazy danych
Kopia zapasowa jest coś warta dopiero wtedy, gdy da się ją przywrócić
Najbardziej bolesnym momentem przy kopiach zapasowych nie jest ich tworzenie, lecz odkrycie, że przywrócenie się nie udaje: brakuje bazy danych, kopia jest niekompletna, plik jest uszkodzony, albo nikt nie wie, jak to zrobić. Lepiej odkryć to w spokojny wtorek niż podczas zhakowanej soboty.
Dlatego warto regularnie testować przywracanie, najlepiej bez dotykania swojej prawdziwej strony.
Co przywracają Państwo
Nie zawsze trzeba przywracać wszystko. Proszę wybrać to, co pasuje do sytuacji:
| Sytuacja | Co przywracają Państwo |
|---|---|
| Jedna strona przypadkowo zmieniona | Nic: proszę skorzystać z wersji (lekcja 4.1) |
| Obrazek lub katalog przypadkowo usunięty | Tylko te pliki |
| Aktualizacja zepsuła stronę | Pliki tej wtyczki lub cały katalog wp-content, czasem także bazę danych (jeśli aktualizacja zmieniła bazę danych) |
| Treść usunięta z bazy danych | Bazę danych, ale proszę pamiętać, że wtedy cofnie się wszystko inne |
| Włamanie | Wszystko, w pełni (lekcja 7.5), z kopii zapasowej sprzed włamania |
Pliki i baza danych są ze sobą powiązane. Jeśli przywrócą Państwo tylko pliki z wczoraj do dzisiejszej bazy danych, wtyczka może się „pogubić”, ponieważ jej baza danych została już zaktualizowana. W razie wątpliwości: proszę przywrócić obie rzeczy z tego samego momentu.
I zawsze: to, co wydarzyło się po momencie wykonania kopii zapasowej, zostanie utracone. Nowe wpisy, komentarze, zamówienia, zapisy. Przy sklepie internetowym proszę przed przywróceniem zanotować, jakie zamówienia napłynęły od momentu wykonania kopii zapasowej.
Przywracanie obok strony
Najbezpieczniejszym sposobem testowania i ratowania rzeczy jest przywrócenie kopii zapasowej obok obecnej strony: na testowej subdomenie (test.example.com) lub w osobnym katalogu, z własną bazą danych. Prawdziwa strona pozostaje nienaruszona. Następnie mogą Państwo:
- sprawdzić, czy kopia zapasowa jest kompletna;
- wyciągnąć z niej jedną rzecz (usuniętą stronę, starszą wersję tekstu) i przenieść ją ręcznie;
- przećwiczyć plan przywracania po awarii.
Niektórzy hostingodawcy umożliwiają to jednym kliknięciem (np. w WebOké Backups opcja „przywróć obok obecnej strony”); u innych pliki i bazę danych umieszcza się na testowym miejscu ręcznie.
Proszę zwrócić uwagę na adres
Kopia zapasowa z https://example.com, umieszczona na https://test.example.com, nadal „wie”, że należy do example.com: siteurl i home w bazie danych (lekcja 1.3) oraz wszystkie linki wskazują na prawdziwą stronę. Skutek: klikają Państwo na testowej stronie i trafiają na prawdziwą, albo logują się Państwo na niewłaściwej. Dlatego po przywróceniu proszę dostosować adresy:
wp search-replace 'https://example.com' 'https://test.example.com' --all-tables --dry-run
wp search-replace 'https://example.com' 'https://test.example.com' --all-tablesAlbo za pomocą wtyczki do wyszukiwania i zamiany, która rozumie dane zserializowane (lekcja 3.2). Proszę od razu włączyć także zniechęcanie wyszukiwarek (lekcja 2.4) lub ustawić hasło na stronie testowej i upewnić się, że strona testowa nie wysyła maili do prawdziwych klientów (lekcja 8.3).
Ręczne przywracanie bazy danych
Mają Państwo plik .sql (z kopii zapasowej lub eksportu)? Proszę przywrócić go w ten sposób:
- Proszę utworzyć pustą bazę danych i użytkownika (lekcja 2.3) albo wyczyścić istniejącą (tylko jeśli są Państwo tego pewni).
- Proszę zaimportować plik w phpMyAdmin (zakładka Import). Przy dużych plikach phpMyAdmin może się zawiesić; wtedy proszę skorzystać z funkcji importu w panelu lub wiersza poleceń (
wp db import back-up.sqllubmysql). - Proszę sprawdzić w wp-config.php, czy dane bazy danych są poprawne.
- Proszę sprawdzić przedrostek tabel: czy ten z kopii zapasowej (
wp_) odpowiada wartości$table_prefixw wp-config.php? Jeśli nie, WordPress zobaczy pustą instalację i będzie chciał zainstalować się od nowa.
Lista kontrolna po przywróceniu
Przywrócenie jest udane dopiero wtedy, gdy strona naprawdę działa. Proszę sprawdzić kolejno:
- Otworzyć stronę główną oraz kilka zwykłych stron i wpisów, w oknie prywatnym.
- Obrazki: czy są widoczne (czyli uploads znajdowały się w kopii zapasowej)?
- Logowanie do Kokpitu.
- Najważniejsze funkcje: wysłanie formularza, dodanie czegoś do koszyka, wyszukiwanie.
- Bezpośrednie odnośniki: czy wszystkie strony działają, czy pojawia się błąd 404 poza stroną główną? Jeśli tak, proszę raz zapisać ustawienia w Ustawienia > Bezpośrednie odnośniki (lekcja 2.4).
- Wtyczki i motyw aktywne i zaktualizowane.
- Wersja: czy to naprawdę treść z oczekiwanej daty?
Proszę zanotować, ile trwało przywrócenie. To Państwa rzeczywisty czas przywracania: jak długo strona będzie niedostępna w razie problemu.
Jak często testować
Zasada ogólna: proszę testować co najmniej raz na kwartał (lekcja 9.4) oraz po każdej zmianie w systemie kopii zapasowych (nowa wtyczka, inny hosting, znacznie większa strona). Proszę naprzemiennie testować: raz kopię zapasową od hostingodawcy, innym razem własną kopię poza serwerem (lekcja 8.1).
W praktyce: tak wygląda to w panelu
Jako przykład używamy WebOké Backups i DirectAdmin. U innych hostingodawców przyciski nazywają się inaczej, ale wybory są te same: co przywracają Państwo i gdzie.
- Proszę najpierw utworzyć testową subdomenę w DirectAdmin (Zarządzanie subdomenami), z certyfikatem.
- W WebOké Backups proszę wybrać kopię zapasową sprzed kilku dni i zdecydować się na przywrócenie plików oraz bazy danych obok obecnej strony, w miejscu testowym.
- W przywróconej bazie danych proszę dostosować adresy do testowej subdomeny.
- Proszę przejść przez listę kontrolną.
Podsumowanie
- Kopia zapasowa jest wartościowa dopiero wtedy, gdy da się ją przywrócić; proszę testować przywracanie.
- Proszę wybrać, co przywracają Państwo; pliki i baza danych powinny pochodzić z tego samego momentu. To, co wydarzyło się po wykonaniu kopii, zostanie utracone.
- Proszę przywrócić kopię zapasową obok strony, aby przetestować lub uratować jeden element, a dopiero potem dostosować adresy.
- Przy imporcie bazy danych proszę zwrócić uwagę na przedrostek tabel oraz dane w wp-config.php.
- Po każdym przywróceniu proszę przejść przez stałą listę kontrolną i zanotować, ile to trwało.
Quiz
Zadanie
Zadanie D8.2: Przywrócenie kopii zapasowej w środowisku testowym (staging). Proszę przywrócić kopię zapasową sprzed kilku dni na testowej subdomenie własnej domeny (na przykład herstel.example.com), obok prawdziwej strony. Proszę dostosować adresy, włączyć zniechęcanie wyszukiwarek lub ustawić hasło na miejscu testowym oraz przejść przez listę kontrolną z tej lekcji. Proszę odhaczyć każdy punkt. Proszę zanotować: którą kopię zapasową (źródło i datę) Państwo wykorzystali, ile trwało przywrócenie, co poszło nie tak i jak to Państwo rozwiązali. Proszę zostawić stronę testową na potrzeby zadania A8.3 i usunąć ją dopiero potem.
Zadanie D8.2: Przywrócenie kopii zapasowej w środowisku testowym (staging)
To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.
Proszę podać czas trwania oraz przynajmniej jedno spostrzeżenie. Odpowiedź „nic” również jest dopuszczalna, pod warunkiem podania, co zostało sprawdzone.
Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.
Więcej informacji
Te artykuły opisują kroki w panelach WebOké; w innych panelach działa to w podobny sposób.
- Instrukcja DirectAdmin 16.3: Przywracanie kopii zapasowej DirectAdmin
- Instrukcja DirectAdmin 16.5: Czy to również możliwe w Mojej WebOké? WebOké Backups
- Podręcznik WebOké 6.10: WebOké Backups: przywracanie plików
- Kopie zapasowe WebOké: przeglądanie, przywracanie lub pobieranie kopii zapasowej
- Instrukcja DirectAdmin 12.5: Importowanie bazy danych, także dużych plików
- Instrukcja DirectAdmin 4.5: Tworzenie i usuwanie subdomen
