Jeśli nigdy nie używałeś Server Pro w wersji 5.0.1 ani Community Edition w wersji 5.0.1 lub uruchomiłeś zupełnie nową instancję w wersji 5.0.1, nie musisz przeprowadzać tego procesu odzyskiwania.
- (2024-04-22 13:40 BST): Dodano krok „Zatrzymaj napływ nowych aktualizacji do systemu i zapisz wszystkie zmiany w MongoDB”.
- (2024-04-23 11:45 BST): Uwzględniono nieudane zapisy (flush) w wersji 5.0.1 oraz pomijanie zapisów, gdy uruchomiono wersję 5.0.2.
OVERLEAF_HISTORY_CHUNKS_BUCKET.
Proces odzyskiwania opóźni uruchomienie aplikacji w kontenerze Server Pro. W tym czasie witryna będzie niedostępna. Obsługujemy uruchamianie odzyskiwania tylko z jednej instancji kontenera Server Pro — wszystkie pozostałe workery skalowania poziomego muszą być wyłączone.
W razie potrzeby możesz zatrzymać i wznowić proces odzyskiwania.
Na podstawie naszych testów wydajności proces odzyskiwania może przetworzyć około 10 tys. małych projektów na minutę na nowoczesnym sprzęcie (taktowanie CPU 3 GHz i lokalny dysk NVMe). Na przykład dla instancji ze 100 tys. projektów zaplanuj okno serwisowe obejmujące co najmniej 10+2 min przestoju. Aby oszacować liczbę projektów w instancji, użyj następującego zapytania:
Proces odzyskiwania
1
Pobierz obrazy wydania
Pobierz obrazy wydania
5.0.3.2
Wskaż kilka projektów
Wskaż po identyfikatorze kilka projektów, w których brakuje historii; najlepiej takich, w których masz uprawnienia do wprowadzania zmian.
3
Zaplanuj prace serwisowe
Zaplanuj okno serwisowe na czas przestoju.
4
Zatrzymaj wszystkie workery oprócz jednego
W konfiguracji ze skalowaniem poziomym zatrzymaj wszystkie workery oprócz jednego.
5
Zatrzymaj nowe aktualizacje i zapisz wszystkie zmiany w MongoDB
Zatrzymaj napływ nowych aktualizacji do systemu i zapisz wszystkie zmiany w MongoDB:
-
Zamknij edytor i ręcznie rozłącz wszystkich użytkowników w panelu administratora pod adresem
https://my-server-pro.example.com/admin#open-close-editorna karcie „Open/Close Editor”. -
Zatrzymaj usługę Websocket/real-time.
-
Poczekaj, aż usługa real-time zakończy działanie, co sygnalizuje
down:. -
Zatrzymaj kontener git-bridge, jeśli jest włączony.
-
Jeśli nigdy nie uruchamiałeś wersji 5.0.2: wykonaj ręczny zapis (flush) aktualizacji dokumentów i poczekaj, aż zakończy się powodzeniem.
W przypadku błędu możesz powtórzyć polecenie. Jeśli w kolejnych uruchomieniach widzisz niezerową wartość
failureCount, przerwij migrację (przywróć usługi za pomocądocker restart git-bridge sharelatex) i skontaktuj się z pomocą techniczną. -
Jeśli nigdy nie uruchamiałeś wersji 5.0.2: upewnij się, że wszystkie zmiany zostały zapisane z redis.
Jeśli
redis-clizwróci jakikolwiek wynik, przerwij migrację (przywróć usługi za pomocądocker restart git-bridge sharelatex) i skontaktuj się z pomocą techniczną. -
Spróbuj zapisać wszystkie oczekujące zmiany historii.
Będzie to zapis w trybie „best effort”, ponieważ niektóre projekty mają uszkodzoną historię z powodu błędnej migracji bazy danych. Wszelkie niepowodzenia zostaną naprawione przez ponowną synchronizację historii na końcu procesu odzyskiwania.
6
Wykonaj kopię zapasową
Rozważ wykonanie spójnej kopii zapasowej instancji.
7
Zaktualizuj
Zaktualizuj do wersji
5.0.3.8
Automatyczne odzyskiwanie
Proces odzyskiwania uruchamia się automatycznie przy starcie kontenera.
9
Śledź postęp
Postęp skryptu możesz śledzić, obserwując plik logu
/var/lib/overleaf/data/history/doc-version-recovery.log. Na początku wyświetla on łączną liczbę projektów, a następnie podsumowanie po każdych 1000 przetworzonych projektach.10
Poczekaj na zakończenie procesu odzyskiwania
Poczekaj na zakończenie procesu odzyskiwania, obserwując powyższy plik logu do momentu pojawienia się wiersza
Done. lub czekając, aż na standardowym wyjściu kontenera Server Pro pojawi się Finished recovery of doc versions..11
Zweryfikuj proces odzyskiwania
Zweryfikuj proces odzyskiwania, otwierając panel historii dla kilku projektów, w których wcześniej brakowało historii.
-
Przyspiesz ponowną synchronizację projektów, które chcesz przetestować (zostaną one i tak w końcu przetworzone, ale nie chcemy czekać na ich kolej).
(Powtórz dla każdego testowanego identyfikatora projektu, zastępując
000000000000000000000000kolejno każdym identyfikatorem projektu.) -
Otwórz edytor projektu
https://my-server-pro.example.com/project/000000000000000000000000 - Otwórz panel „History” projektu i sprawdź najnowszą zawartość.
- Opcjonalnie: ponownie zamknij panel „History”. Wprowadź zmianę w kodzie, np. dodaj komentarz w nagłówku.
- Opcjonalnie: uruchom ponowną kompilację, aby wywołać zapis lokalnej zmiany. Ponownie otwórz panel „History” i sprawdź zmianę. Na koniec cofnij zmianę.
12
W przypadku skalowania poziomego...
Ponownie uruchom pozostałe workery.
13
Pozostaw instancję uruchomioną
Pozostaw uruchomioną instancję, która wykonała proces odzyskiwania. Będzie ona w tle ponownie synchronizować historię wszystkich projektów ze współbieżnością 1. Spowoduje to nieznacznie podwyższone obciążenie bazowe. (Możesz zrestartować instancję, ale wówczas ponowna synchronizacja rozpocznie się od początku).
14
Daj nam znać, gdy skończysz
Klienci Server Pro: poinformujcie zespół pomocy technicznej o zakończeniu procesu odzyskiwania.

