Moduł 8 · 8.2
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ą, także obok istniejącej strony, i sprawdzić, czy jest kompletna i nadaje się do użycia.
Kluczowe pojęcia: przywracanie (restore), całościowe lub częściowe, pliki lub baza danych, przywracanie obok strony, testowe przywrócenie, lista kontrolna po przywróceniu, zmiana adresów, import bazy danych
Kopia zapasowa jest coś warta dopiero wtedy, gdy da się ją przywrócić
Najbardziej bolesnym momentem w przypadku kopii zapasowych nie jest ich tworzenie, lecz odkrycie, że przywrócenie się nie udaje: brakuje bazy danych, kopia jest niepełna, plik jest uszkodzony albo nikt nie wie, jak to zrobić. Lepiej odkryć to w spokojny wtorek niż w sobotę, gdy strona została zhakowana.
Dlatego warto regularnie testować przywracanie, najlepiej bez dotykania prawdziwej strony.
Co Państwo przywracają
Nie zawsze trzeba przywracać wszystko. Proszę wybrać to, co pasuje do sytuacji:
| Sytuacja | Co przywrócić |
|---|---|
| Przypadkowo zmieniona jedna strona | Nic: proszę skorzystać z wersji (lekcja 4.1) |
| Przypadkowo usunięty obrazek lub katalog | 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 wszystko, co zmieniono później, również zostanie cofnięte |
| Włamanie | Wszystko, w całości (lekcja 7.5), z kopii zapasowej wykonanej na długo przed włamaniem |
Pliki i baza danych stanowią całość. Jeśli przywrócą Państwo tylko wczorajsze pliki 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ć oba elementy, z tego samego momentu.
I zawsze: wszystko, co wydarzyło się po utworzeniu kopii zapasowej, zostanie utracone. Nowe wpisy, komentarze, zamówienia, rejestracje. W sklepie internetowym przed przywróceniem proszę zanotować, jakie zamówienia wpłynęły od czasu wykonania kopii.
Przywracanie obok strony
Najbezpieczniejszy sposób testowania i ratowania danych to przywrócenie kopii zapasowej obok obecnej strony: na subdomenie testowej (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 odtworzenia.
Niektórzy dostawcy hostingu umożliwiają to jednym przyciskiem (w WebOké Backups na przykład opcja "przywróć obok bieżącej strony"); u innych pliki i bazę danych umieszcza się ręcznie w miejscu testowym.
Proszę zwrócić uwagę na adres
Kopia zapasowa strony 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 stronie testowej i trafiają na prawdziwą stronę albo logują się do niewłaściwej. Dlatego po przywróceniu proszę zmienić adresy:
wp search-replace 'https://example.com' 'https://test.example.com' --skip-columns=guid --dry-run
wp search-replace 'https://example.com' 'https://test.example.com' --skip-columns=guidNajpierw przebieg próbny z --dry-run, potem właściwy; --skip-columns=guid pozostawia bez zmian stałe identyfikatory wpisów. Można też użyć wtyczki do wyszukiwania i zamiany, która obsługuje dane serializowane (lekcja 3.2 oraz artykuł z bazy wiedzy w sekcji Dalsza lektura). Proszę też od razu włączyć opcję Proś wyszukiwarki o nieindeksowanie tej witryny (lekcja 2.4) lub ustawić hasło na stronie testowej i zadbać o to, aby strona testowa nie wysyłała e-maili do prawdziwych klientów (lekcja 8.3).
Ręczne przywracanie bazy danych
Jeśli mają Państwo plik .sql (z kopii zapasowej lub eksportu), przywracają go Państwo w ten sposób:
- Proszę utworzyć pustą bazę danych i użytkownika (lekcja 2.3) albo opróżnić istniejącą bazę (tylko jeśli są Państwo pewni).
- Proszę zaimportować plik w phpMyAdmin (zakładka Import). Przy dużych plikach phpMyAdmin może się zawiesić; wtedy proszę użyć 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ć prefiks tabel: czy prefiks w kopii zapasowej (
wp_) zgadza się z$table_prefixw wp-config.php? Jeśli nie, WordPress widzi pustą instalację i chce zainstalować się od nowa.
Lista kontrolna po przywróceniu
Przywrócenie jest udane dopiero wtedy, gdy strona naprawdę działa. Proszę sprawdzić:
- Stronę główną oraz kilka zwykłych stron i wpisów, otwierając je w oknie prywatnym.
- Obrazki: czy są widoczne (czyli czy katalog uploads znalazł się w kopii zapasowej)?
- Logowanie do panelu administracyjnego.
- Najważniejsze funkcje: wysłanie formularza, dodanie czegoś do koszyka, wyszukiwanie.
- Bezpośrednie odnośniki: czy działają wszystkie strony, czy też poza stroną główną pojawia się błąd 404? Wtedy proszę raz zapisać ustawienia w Ustawienia > Bezpośrednie odnośniki (lekcja 2.4).
- Wtyczki i motyw: czy są aktywne i zaktualizowane.
- Wersję: czy to naprawdę treść z oczekiwanej daty?
Proszę zanotować, ile trwało przywracanie. To jest Państwa rzeczywisty czas odtworzenia: jak długo strona nie działa 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 dostawca hostingu, znacznie większa strona). Warto robić to naprzemiennie: raz z kopii zapasowej dostawcy hostingu, a innym razem z własnej kopii przechowywanej poza serwerem (lekcja 8.1).
W praktyce: tak to wygląda w panelu
Jako przykład posłużą WebOké Backups i DirectAdmin. U innych dostawców hostingu przyciski nazywają się inaczej, ale wybory są te same: co przywrócić i gdzie.
- Najpierw proszę utworzyć subdomenę testową w DirectAdmin (Zarządzanie subdomenami), wraz z certyfikatem.
- W WebOké Backups proszę wybrać kopię zapasową sprzed kilku dni i zdecydować się na przywrócenie plików i bazy danych obok bieżącej strony, w miejscu testowym.
- W przywróconej bazie danych proszę zmienić adresy na subdomenę testową.
- Proszę przejść przez listę kontrolną.
Podsumowanie
- Kopia zapasowa ma wartość dopiero wtedy, gdy da się ją przywrócić; proszę testować przywracanie.
- Proszę wybrać, co przywrócić; pliki i baza danych powinny pochodzić z tego samego momentu. To, co wydarzyło się po wykonaniu kopii, zostaje utracone.
- Kopię zapasową warto przywrócić obok strony, aby ją przetestować lub uratować jedną rzecz, a następnie zmienić adresy.
- Przy imporcie bazy danych proszę zwrócić uwagę na prefiks tabel i 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 subdomenie testowej własnej domeny (na przykład herstel.example.com), obok prawdziwej strony. Proszę zmienić adresy, włączyć opcję Proś wyszukiwarki o nieindeksowanie tej witryny lub ustawić hasło w miejscu testowym i przejść przez listę kontrolną z tej lekcji. Proszę odhaczyć każdy punkt. Proszę zanotować: jakiej kopii zapasowej (źródło i data) Państwo użyli, ile trwało przywracanie, co nie poszło dobrze i jak Państwo to rozwiązali. Proszę pozostawić stronę testową na potrzeby zadania A8.3, a potem ją usunąć.
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.
Dalsza lektura
Te artykuły opisują kroki w panelach WebOké; w innych panelach działa to podobnie.
- 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
- Wyszukiwanie i zamiana w bazie danych WordPress
- Instrukcja DirectAdmin 12.5: Import bazy danych, także dużych plików
- Instrukcja DirectAdmin 4.5: Tworzenie i usuwanie subdomen
