Come riparare Jellyfin dopo che il volume del database si è riempito

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Dopo che il volume del database di Jellyfin si è riempito, interrompi le nuove scritture, preserva il database e i file WAL, libera spazio in sicurezza e convalida il database prima di riavviare le attività normali.

Jellyfin non si avvia, segnala errori SQLite o si apre senza alcuni utenti dopo che il volume ha raggiunto lo spazio libero zero? Non eliminare immediatamente i file del database e non eseguire attività di pulizia. Per prima cosa, annota il volume, i byte liberi, i nomi dei file del database, lo stato del container e l’ultimo backup noto come valido.

Impedisci che il problema si trasformi in una tempesta di scritture

Arresta Jellyfin e qualsiasi importer, scanner o sidecar che scriva sullo stesso volume. Verifica quale mount è pieno, inclusi gli inode, e preserva il database principale insieme agli eventuali file complementari `-wal` o `-shm`. Un disco pieno può lasciare i file di configurazione vuoti o scritti solo parzialmente; un incidente circoscritto a una versione dimostra che liberare spazio da solo potrebbe non ripristinare l’avvio (caso di ripristino dopo il riempimento del volume).

Libera spazio eliminando log usa e getta, file di transcodifica completati o cache sicuramente ricostruibili, ma solo dopo aver copiato lo stato persistente. Non rimuovere mai il database come primo intervento.

Prima della pulizia, annota le dimensioni del database, i file WAL, i log, la cache e lo spazio libero residuo. Questo permette di capire se il volume si è riempito a causa della crescita del database, dell’output di transcodifica, dei log o di un altro container.

Verifica l’integrità del database prima di tentare una riparazione

Lavora su una copia del database mentre Jellyfin rimane arrestato. Esegui un controllo di integrità con gli strumenti SQLite disponibili nel tuo ambiente e analizza i log alla ricerca di errori come “disco pieno”, immagine non valida o impossibilità di apertura. Se il controllo ha esito positivo, ripristina spazio libero, riavvia una sola volta e verifica utenti, librerie e riproduzione.

Se il database è malformato, ripristina prima l’ultimo backup noto come valido. Un flusso di ripristino controllato può utilizzare strumenti di recupero SQLite su una copia, ma non sostituisce un backup convalidato e non deve essere eseguito su un database attivo (procedura di recupero basata su una copia).

Dopo aver liberato solo dati ricostruibili, verifica che i file del database siano ancora presenti insieme e leggibili. Un riavvio prima di questo controllo può trasformare una scrittura incompleta in un secondo errore.

Impedisci al volume di raggiungere nuovamente lo stesso limite

Sposta la cache e l’output di transcodifica in un percorso monitorato, imposta avvisi al di sopra della soglia minima di spazio libero e rivedi la conservazione dei log e la pianificazione delle scansioni. Mantieni separato lo stato dell’applicazione dai file multimediali voluminosi, così una libreria in crescita non può consumare il volume del database.

Riavvia due volte, esegui la scansione o la riproduzione originale e verifica che il backup successivo venga completato. Procedi con l’escalation quando i controlli di integrità falliscono, il database non può essere ripristinato o il volume si riempie di nuovo senza uno scrittore visibile.

Se il controllo di integrità ha esito positivo, riavvia una sola volta ed esegui il carico di lavoro originale relativo a utenti e librerie. Se fallisce, lavora su una copia o esegui un ripristino invece di aprire ripetutamente il database danneggiato.

Dimostra il ripristino e previeni un nuovo riempimento del volume

Esegui un riavvio a freddo, una scansione, una sessione di riproduzione e un backup dopo la riparazione. Verifica che il volume del database disponga di un margine di spazio libero monitorato mentre il carico di lavoro è attivo.

Conserva la riparazione quando utenti, librerie, attività pianificate e riproduzione tornano a funzionare. Aggiungi avvisi per lo spazio e gli inode e sposta la cache o i log in un percorso che non possa consumare il volume del database.

Procedi con l’escalation quando il volume si riempie nuovamente senza uno scrittore visibile, i controlli di integrità falliscono oppure il database ripristinato perde utenti o stato.

Supporto e consigli

Altro da leggere

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.