Jak naprawić Jellyfin po zapełnieniu woluminu bazy danych

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Gdy wolumin bazy danych Jellyfin się zapełni, zatrzymaj nowe zapisy, zabezpiecz bazę danych i pliki WAL, bezpiecznie zwolnij miejsce oraz sprawdź poprawność bazy przed wznowieniem normalnych zadań.

Czy Jellyfin nie uruchamia się, zgłasza błędy SQLite lub otwiera się bez użytkowników po całkowitym zapełnieniu woluminu? Nie usuwaj od razu plików bazy danych ani nie uruchamiaj zadań czyszczących. Najpierw zapisz informacje o woluminie, liczbie wolnych bajtów, nazwach plików bazy danych, stanie kontenera oraz ostatniej poprawnej kopii zapasowej.

Powstrzymaj awarię przed przekształceniem się w lawinę zapisów

Zatrzymaj Jellyfin oraz każdy importer, skaner lub kontener pomocniczy zapisujący dane na tym samym woluminie. Sprawdź, który punkt montowania jest pełny, w tym liczbę i-węzłów, oraz zabezpiecz główną bazę danych wraz z ewentualnymi plikami towarzyszącymi `-wal` i `-shm`. Pełny dysk może pozostawić pliki konfiguracyjne puste lub zapisane częściowo; przypadek zależny od wersji pokazuje, że samo zwolnienie miejsca może nie przywrócić uruchamiania (przypadek odzyskiwania po zapełnieniu woluminu).

Zwalniaj miejsce z niepotrzebnych dzienników, ukończonych plików transkodowania lub znanej pamięci podręcznej możliwej do odbudowania dopiero po skopiowaniu trwałego stanu. Nigdy nie usuwaj bazy danych jako pierwszego kroku.

Przed czyszczeniem zapisz rozmiar bazy danych, rozmiary plików WAL, dzienników i pamięci podręcznej oraz pozostałą ilość wolnego miejsca. Pozwoli to ustalić, czy wolumin zapełnił się z powodu rozrostu bazy danych, wyników transkodowania, dzienników czy innego kontenera.

Sprawdź integralność bazy danych przed próbą naprawy

Pracuj na kopii bazy danych, gdy Jellyfin pozostaje zatrzymany. Uruchom sprawdzanie integralności za pomocą narzędzi SQLite dostępnych w danym środowisku i przejrzyj dzienniki pod kątem błędów „disk full”, „malformed image” lub „unable-to-open”. Jeśli sprawdzenie zakończy się pomyślnie, zwolnij miejsce, uruchom usługę ponownie i sprawdź użytkowników, biblioteki oraz odtwarzanie.

Jeśli baza danych jest uszkodzona, najpierw przywróć ostatnią poprawną kopię zapasową. Kontrolowany proces odzyskiwania może wykorzystywać narzędzia SQLite do odzyskiwania na kopii, ale nie zastępuje zweryfikowanej kopii zapasowej i nie powinien być wykonywany na aktywnej bazie danych (procedura odzyskiwania na kopii).

Po usunięciu wyłącznie danych możliwych do odbudowania upewnij się, że pliki bazy danych nadal znajdują się razem i są czytelne. Ponowne uruchomienie przed wykonaniem tej kontroli może zmienić niepełny zapis w kolejną awarię.

Zapobiegaj ponownemu osiągnięciu tej samej granicy

Przenieś pamięć podręczną i wyniki transkodowania do monitorowanej lokalizacji, ustaw alerty powyżej minimalnego progu wolnego miejsca oraz przejrzyj zasady przechowywania dzienników i harmonogramy skanowania. Trzymaj stan aplikacji oddzielnie od dużych zbiorów multimediów, aby rozrastająca się biblioteka nie mogła zapełnić woluminu bazy danych.

Uruchom system ponownie dwukrotnie, wykonaj pierwotne skanowanie lub odtwarzanie i potwierdź ukończenie kolejnej kopii zapasowej. Eskaluj problem, gdy sprawdzanie integralności kończy się niepowodzeniem, bazy danych nie można przywrócić lub wolumin ponownie się zapełnia bez widocznego procesu zapisującego dane.

Jeśli sprawdzanie integralności zakończy się pomyślnie, uruchom usługę ponownie i wykonaj pierwotne zadania użytkowników oraz bibliotek. Jeśli się nie powiedzie, pracuj na kopii lub przywróć bazę zamiast wielokrotnie otwierać uszkodzoną bazę danych.

Potwierdź odzyskanie i zapobiegaj ponownemu zapełnieniu woluminu

Po naprawie wykonaj zimny restart, jedno skanowanie, jedną sesję odtwarzania oraz kopię zapasową. Upewnij się, że podczas aktywnego obciążenia wolumin bazy danych ma monitorowany zapas wolnego miejsca.

Zachowaj naprawę, jeśli użytkownicy, biblioteki, zaplanowane zadania i odtwarzanie działają prawidłowo. Dodaj alerty dotyczące miejsca i i-węzłów oraz przenieś pamięć podręczną lub dzienniki do lokalizacji, która nie może zapełnić woluminu bazy danych.

Eskaluj problem, gdy wolumin ponownie się zapełnia bez widocznego procesu zapisującego dane, sprawdzanie integralności kończy się niepowodzeniem lub przywrócona baza danych traci użytkowników albo stan.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.