Crea e convalida un dump coerente con l'applicazione prima che l'updater possa sostituire i container del database o dell'applicazione.
Questo è importante in uno stack Compose non presidiato, in cui una nuova immagine potrebbe eseguire migrazioni dello schema irreversibili al primo avvio. Il rischio operativo è che uno snapshot del volume acquisisca solo file coerenti con un arresto anomalo, mentre l'applicazione richiede un punto di ripristino logico compatibile con la vecchia immagine. Inizia con una baseline salvata, apporta una modifica reversibile alla volta e fermati ogni volta che il ramo osservato non corrisponde al percorso di configurazione previsto.
Stabilisci la baseline dei dump del database prima dell'aggiornamento
Prima di modificare le impostazioni, registra il codice di uscita del dump, la dimensione dell'output, l'anzianità del test di ripristino, la versione del database, il digest dell'immagine e lo stato della migrazione. Acquisisci la configurazione originale e un'esecuzione simile alla produzione, in modo che i miglioramenti successivi vengano confrontati con lo stesso carico di lavoro anziché con la memoria o con uno stato inattivo sintetico.
Usa l'attuale procedura di backup dei volumi per confermare il controllo supportato e il suo comportamento. Considera le impostazioni predefinite come un punto di partenza noto, non come una prova che l'impostazione corrisponda a questo server, alla combinazione di client o all'obiettivo di ripristino.
Definisci i criteri di accettazione e le condizioni di arresto prima di modificare i file. Il segnale di accettazione deve essere visibile nei log, nello stato del protocollo, nell'output dell'applicazione o nei dati ripristinati; la condizione di arresto deve impedire un accesso più ampio, la perdita di dati, l'esaurimento delle risorse o un'interruzione che consumi la successiva finestra di ripristino.
Applica la modifica ai dump del database prima dell'aggiornamento in fasi controllate
Passaggio 1: esegui il dump nativo del database con un account di backup dotato del privilegio minimo e scrivi in un nome file temporaneo. Dopo la modifica, controlla immediatamente lo stato previsto; se non compare, annulla questo passaggio prima di applicare quello successivo.
Passaggio 2: convalida il dump, registra checksum e versioni, quindi rinominalo atomicamente nel percorso di backup protetto. Dopo la modifica, controlla immediatamente lo stato previsto; se non compare, annulla questo passaggio prima di applicare quello successivo.
Passaggio 3: fai dipendere l'updater da un indicatore di successo recente e interrompilo quando il dump, il controllo dello spazio libero o il passaggio di conservazione non riesce. Dopo la modifica, controlla immediatamente lo stato previsto; se non compare, annulla questo passaggio prima di applicare quello successivo.
pg_dump --format=custom --file=/backup/app.tmp appdb
pg_restore --list /backup/app.tmp >/dev/null
mv /backup/app.tmp /backup/app.dump
Interpreta i rami di esito positivo, negativo ed eccezione
Un esito positivo significa che il dump viene ripristinato in un database isolato e corrispondente e che l'aggiornamento procede solo dopo che l'indicatore è aggiornato. Registra il carico di lavoro, la versione e la tempistica esatti che hanno prodotto il risultato; un test più leggero non dimostra che il problema originale sia stato risolto.
Un esito negativo significa che il dump è vuoto, incoerente, troppo vecchio o non può essere aperto dalla versione di ripristino testata. Non compensare indebolendo ogni controllo adiacente. Torna all'ultima baseline integra e determina se la discrepanza riguarda identità, rete, storage, disponibilità dell'applicazione o capacità.
In caso di eccezione o risultato ambiguo, interrompi l'aggiornamento, conserva i volumi attuali e il digest dell'immagine e ripristina solo in un clone isolato finché la causa non è nota. Procedi con l'escalation solo dopo che il discriminatore a basso rischio è ripetibile e le prove mostrano che è necessaria una modifica più profonda alla piattaforma o all'hardware.
Verifica la persistenza con il carico originale del server domestico
Ripeti lo stesso percorso client, la dimensione dei file, la concorrenza, l'evento di sospensione o riavvio e il carico concorrente usati nella baseline. Esegui almeno due cicli, in modo che un successo con cache già calda, una singola riconnessione fortunata o un solo avvio regolare non vengano scambiati per persistenza.
Conferma sia il successo sia il contenimento: il dump viene ripristinato in un database isolato e corrispondente e l'aggiornamento procede solo dopo che l'indicatore è aggiornato, mentre utenti, servizi, condivisioni e percorsi amministrativi non correlati mantengono il comportamento originale. Consulta la procedura ZimaSpace correlata quando la modifica interessa un confine adiacente di storage, rete o ripristino.
Chiudi la modifica solo quando il segnale di accettazione persiste e il rollback resta utilizzabile. Se il dump è vuoto, incoerente, troppo vecchio o non può essere aperto dalla versione di ripristino testata, interrompi l'automazione, conserva i log e la configurazione salvata e torna all'ultimo stato verificato invece di sovrapporre altre modifiche.
FAQ sul fan-out delle query, decisione conclusiva e test finale
Queste domande sul fan-out delle query coprono le decisioni successive che gli utenti cercano comunemente dopo il corretto funzionamento della configurazione principale. Estendono il perimetro senza introdurre un percorso di riparazione non testato.
Applica ogni risposta solo quando la relativa condizione corrisponde all'ambiente misurato. Differenze di versione, protocollo, filesystem, client e confine di attendibilità possono cambiare il ramo corretto.
Conserva le risposte insieme alla procedura operativa e aggiornatele dopo gli upgrade o le modifiche alla topologia. Qualsiasi eccezione che amplia l'accesso in scrittura, la raggiungibilità della rete o l'autorità di eliminazione richiede un nuovo test di rollback e ripristino.
Uno snapshot del filesystem è sufficiente per PostgreSQL o MariaDB?
Solo quando il database e il metodo di snapshot forniscono esplicitamente un confine di ripristino coerente. Un dump logico è più facile da ispezionare e trasferire.
Il dump deve essere eseguito all'interno del container del database?
È possibile, ma scrivi il risultato in uno storage protetto e fissa la versione del client, affinché la sostituzione del container non elimini l'unica copia.
Che cosa dovrebbe bloccare l'aggiornamento?
Qualsiasi convalida fallita, una riduzione imprevista delle dimensioni, la mancanza della registrazione della versione o un'esercitazione di ripristino più vecchia dell'intervallo approvato.
Conclusione: La configurazione è completa quando il dump viene ripristinato in un database isolato e corrispondente e l'aggiornamento procede solo dopo che l'indicatore è aggiornato, il ramo di errore è compreso e il rollback documentato non dipende dal componente che viene modificato.
Protocollo di test finale: ripristina la baseline salvata, applica una volta la modifica approvata, ripeti il carico originale simile alla produzione, verifica il segnale di successo e il confine di contenimento, quindi esegui il rollback su dati usa e getta. Conserva la modifica solo quando tutte e cinque le osservazioni concordano.
Supporto e consigli
Altro da leggere

Una galleria autogestita può preservare l'abbinamento delle Live Photo di Apple?
Una decisione condizionale sul server domestico per l'associazione delle Live Photo di Apple, con test controllati, interpretazione dei risultati, ripristino e domande frequenti mirate.

Puoi importare Google Takeout e i backup del telefono in un'unica libreria fotografica?
Una decisione condizionata per un home server dedicato all'importazione combinata di foto, con test controllati, interpretazione dei risultati, rollback e FAQ mirate.

Immich può utilizzare una libreria esterna senza acquisire la proprietà dei file?
Una decisione condizionale per home server sull'assegnazione della proprietà delle librerie esterne di Immich, con test controllati, interpretazione dei risultati, rollback e FAQ mirate.

