Podczas aktualizacji do nowego obrazu Dockera wszystkie migracje, które nie zostały jeszcze uruchomione, zostaną wykonane automatycznie. Może to potrwać pewien czas w zależności od rozmiaru zbioru danych — postęp możesz śledzić w logach. Więcej informacji znajdziesz w naszej dokumentacji dotyczącej logowania.
Przechowywanie danych
Overleaf Community Edition i Server Pro przechowują swoje dane w trzech oddzielnych miejscach:- Baza danych MongoDB: tutaj znajdują się dane użytkowników i projektów.
- Redis: pełni rolę wysokowydajnej pamięci podręcznej dla danych w trakcie przetwarzania, przechowując głównie informacje związane z edycjami projektów i współpracą.
- System plików Overleaf: przechowuje nieedytowalne pliki projektów (w tym obrazy), a także pełni rolę tymczasowej pamięci podręcznej na dysku podczas kompilacji projektów.
Może to być
~/sharelatex_data lub ~/overleaf_data, w zależności od tego, kiedy Twoja instancja została skonfigurowana.W przypadku plików projektów i danych pełnej historii projektów obsługujemy również magazyny zgodne z S3.
Wykonywanie spójnej kopii zapasowej
Podczas tworzenia spójnej kopii zapasowej należy uwzględnić trzy magazyny danych:- MongoDB
- Redis
- Dane systemu plików Overleaf
3.5.0 proces zamykania automatycznie zamyka witrynę i rozłącza użytkowników.
Aby zatrzymać instancję, uruchom bin/docker-compose stop sharelatex, jeśli korzystasz z wdrożenia opartego na Toolkit, lub docker compose stop sharelatex, jeśli korzystasz z Docker Compose.
Po zatrzymaniu kontenera sharelatex możesz rozpocząć tworzenie kopii zapasowej.
Gdy proces tworzenia kopii zapasowej zakończy się pomyślnie, musisz uruchomić kontener sharelatex. W tym celu uruchom bin/docker-compose start sharelatex, jeśli korzystasz z wdrożenia opartego na Toolkit, lub docker compose start sharelatex, jeśli korzystasz z Docker Compose.
- Kopie zapasowe powinny być przechowywane na innym serwerze niż ten, na którym działa Twoja instancja Overleaf, najlepiej w zupełnie innej lokalizacji.
- Replikacja baz danych na wiele instancji MongoDB może zapewnić pewną redundancję, ale nie chroni przed uszkodzeniem danych.
- Testowanie kopii zapasowych to najlepszy sposób, aby upewnić się, że są kompletne i działają.
MongoDB
MongoDB zawiera narzędzie wiersza poleceń o nazwie mongodump, które może służyć do tworzenia kopii zapasowej danych użytkowników i projektów przechowywanych w bazie danych.Dane systemu plików Overleaf
W przypadku wdrożeń opartych na Toolkit ścieżka, w której przechowywane są nieedytowalne pliki, jest określona wconfig/overleaf.rc za pomocą zmiennej środowiskowej OVERLEAF_DATA_PATH, ale w zależności od tego, kiedy utworzono Twoją instancję, może to być data/sharelatex.
Aby utworzyć kompletną kopię zapasową, należy rekurencyjnie skopiować ten katalog za pomocą narzędzia takiego jak rsync.
Redis
Redis przechowuje sesje użytkowników i oczekujące aktualizacje dokumentów, zanim zostaną one zapisane w MongoDB. Zalecaną konfiguracją trwałości danych w Redis jest tryb Append Only File (AOF). Użytkownicy Toolkit mają domyślnie włączoną trwałość AOF w nowych instalacjach; obecni użytkownicy mogą znaleźć więcej informacji o włączaniu AOF tutaj. Jeśli zdecydujesz się nadal używać migawek RDB wraz z trwałością AOF, możesz skopiować plik RDB w bezpieczne miejsce jako kopię zapasową.Migracja danych między serwerami
Najlepiej, jeśli w nowej instancji nie ma jeszcze żadnych wartościowych danych. Nie mamy procedury scalania danych z różnych instancji. Zakładając, że nowa instancja nie zawiera jeszcze danych, możesz wykonać następujące kroki. Ogólnie rzecz biorąc, tworzymy archiwum tar z wolumenówmongo, redis i overleaf, kopiujemy je na nowy serwer i tam je rozpakowujemy.
Toolkit
Docker Compose
mongo, redis i overleaf.
Podczas uruchamiania jako użytkownik root (lub z sudo) tar zachowuje właściciela/grupę plików oraz uprawnienia, co ma kluczowe znaczenie przy przywracaniu kopii zapasowej.
Szczegółowy opis folderów
Poniższe foldery mają dodatkowe oznaczenia:
- (b) uwzględnij w kopiach zapasowych, najlepiej gdy instancja jest zatrzymana, aby zapewnić spójność
- (d) można usunąć
- (e) pliki tymczasowe, można je usunąć, gdy instancja jest zatrzymana
~/mongo_data(b)- katalog danych mongodb
~/redis_data(b)- katalog danych bazy redis
~/overleaf_data- bin
- synctex (d)
- nieużywany w najnowszym wydaniu; wcześniej używano niestandardowego pliku binarnego synctex (synctex służy do mapowania źródła między plikami .tex a plikiem pdf)
- synctex (d)
- data
- cache (e)
- pamięć podręczna plików binarnych dla kompilacji
- compiles (e)
- tutaj odbywa się kompilacja latex
- db.sqlite (d)
- nieużywany w najnowszym wydaniu; wcześniej przechowywał szczegóły pamięci podręcznej clsi (obecnie przeniesione do prostych map w pamięci lub odczytywane przez skanowanie dysku)
- db.sqlite-wal (d)
- nieużywany w najnowszym wydaniu, zobacz db.sqlite
- output (e)
- magazyn wyników kompilacji latex, udostępnianych klientowi
- template_files (b)
- podglądy obrazów systemu szablonów (tylko Server Pro)
- user_files (b)
- pliki binarne projektów
- history (b)
- pliki pełnej historii projektów
- cache (e)
- tmp
- dumpFolder (e)
- pliki tymczasowe z obsługi plików zip
- uploads (e)
- buforowanie przesyłanych plików (przesyłanie plików binarnych/nowego projektu z pliku zip)
- projectHistories (e)
- pliki tymczasowe dla migracji pełnej historii projektów
- dumpFolder (e)
- bin

