Najpierw przestań zmieniać stan
Pierwszy odruch, czyli kolejne próby odtworzenia na serwerze produkcyjnym, jest najkosztowniejszym błędem. Nadpisuje to resztki danych, które dałoby się odzyskać. Zanim cokolwiek zrobisz, wykonaj kopię obecnego stanu - nawet uszkodzonego - i pracuj na osobnej maszynie.
Ustal, co właściwie jest uszkodzone
- archiwum nie otwiera się w całości czy tylko część plików jest nieczytelna?
- zrzut bazy danych urywa się w połowie czy zawiera komplet, ale nie wykonuje się z powodu jednej tabeli?
- kopia jest kompletna, ale pochodzi z okresu po wystąpieniu problemu?
- czy istnieją starsze punkty przywracania, o których zapomniano?
Zrzut bazy w formie tekstowej często daje się uratować częściowo: usuwa się uszkodzony fragment i odtwarza resztę. To lepsze niż nic, zwłaszcza gdy uszkodzenie dotyczy tabeli pomocniczej, a nie zamówień.
Alternatywne źródła danych
Zanim uznasz dane za utracone, warto sprawdzić miejsca, w których kopie powstają mimochodem: kopie po stronie dostawcy hostingu, migawki maszyny wirtualnej, środowisko testowe, kopie na stacjach roboczych pracowników, eksporty wysyłane kontrahentom, skrzynki pocztowe z potwierdzeniami zamówień oraz archiwum stron w serwisach archiwizujących internet. Przy odtwarzaniu sklepów po incydentach wielokrotnie odzyskiwaliśmy listę zamówień właśnie z poczty.
Po zakończeniu odtwarzania zostaje najważniejsze pytanie: dlaczego nikt nie wiedział, że kopia jest uszkodzona. Odpowiedź prawie zawsze brzmi: bo nikt nigdy jej nie odtwarzał.
Żeby się nie powtórzyło
Kopia bez testu odtworzenia jest plikiem o nieznanej zawartości. Minimalny zestaw to: automatyczna weryfikacja poprawności archiwum po wykonaniu, alert przy braku kopii oraz przy nietypowej zmianie jej rozmiaru, kilka punktów przywracania zamiast jednego, kopia poza serwerem i bez prawa zapisu z tego serwera, a raz na kwartał pełne odtworzenie na osobnej maszynie z pomiarem czasu.