Un backup valido del database di Home Assistant è più utile quando decidi innanzitutto cosa vuoi effettivamente recuperare. Se vuoi riportare l’intera installazione di Home Assistant al momento del backup, usa la procedura di ripristino supportata da Home Assistant. Se la configurazione è integra e devi recuperare solo la cronologia di Recorder, un ripristino del solo database può evitare di sovrascrivere automazioni e integrazioni più recenti.
Non sostituire il database attivo mentre Home Assistant vi sta scrivendo. Conserva prima il database corrente, arresta Home Assistant o metti comunque Recorder in uno stato inattivo, ripristina la copia valida in un percorso isolato o controllato, quindi avvia e verifica il sistema prima di eliminare una delle due versioni.
Scegli tra il ripristino completo di Home Assistant e il recupero del solo database
Il ripristino completo di un backup di Home Assistant sostituisce lo stato applicativo corrente con il contenuto del backup. È appropriato quando configurazione, integrazioni, app e database devono tornare tutti allo stesso momento noto.
L’azione di ripristino da backup completo avverte esplicitamente che le modifiche correnti verranno sovrascritte dallo stato del backup. Se l’unico problema riguarda la cronologia di Recorder, questo ambito potrebbe essere più ampio del necessario.
Per recuperare solo il database, individua la copia esatta e valida del database di Recorder e lascia intatto l’albero della configurazione corrente. Annota il timestamp del backup, così saprai quanta cronologia andrà persa tornando a quel punto.
Verifica quale database sta effettivamente utilizzando Home Assistant
Per impostazione predefinita, Home Assistant usa SQLite, archiviato in /config/home-assistant_v2.db, ma Recorder può essere configurato per usare MariaDB, MySQL o PostgreSQL tramite db_url. Non copiare un file SQLite in un’installazione che in realtà scrive su un database esterno.
SQLite è il database predefinito di Recorder per Home Assistant e normalmente è archiviato in /config/home-assistant_v2.db; Recorder può anche essere configurato per usare un database esterno supportato tramite db_url. Controlla la configurazione effettiva di Recorder prima di toccare i file, così l’asset di ripristino corrisponderà al database realmente utilizzato da Home Assistant.
Se il database è esterno, ripristinalo usando il metodo di backup specifico del relativo motore e coordina la versione dell’applicazione con lo schema. Non considerare intercambiabili un dump SQL e un file SQLite.
Arresta le scritture prima di sostituire un file di database SQLite
Se il backup valido è una copia fisica pulita di home-assistant_v2.db, arresta Home Assistant prima di sostituire il file attivo. Conserva il database corrente con un nome diverso invece di eliminarlo.
La documentazione di backup di SQLite spiega che una copia del database deve rappresentare uno snapshot coerente; l’API di backup online di SQLite esiste specificamente per creare una copia coerente mentre un database è attivo. Una copia valida ottenuta a sistema arrestato o un backup online consapevole del database è più sicura di una copia arbitraria del file effettuata durante le scritture.
Verifica inoltre che eventuali file WAL o journal associati al database danneggiato non vengano mescolati con la copia ripristinata. Parti dall’asset di recupero completo e valido, non da un insieme ibrido di file provenienti da timestamp diversi.
Inizia con la copia del backup intatta e lascia che Home Assistant la convalidi
Posiziona il database ripristinato nel percorso previsto, con proprietario e autorizzazioni corretti, quindi avvia Home Assistant e monitora i log di Recorder. Durante il primo avvio di convalida non eseguire operazioni di pulizia, ricompattazione o manutenzione SQL manuale.
Se lo schema del database è più vecchio della versione corrente di Home Assistant, Recorder potrebbe doverlo migrare. Lascia completare il processo prima di valutare le prestazioni o riavviare nuovamente il sistema. Evita di alternare versioni vecchie e nuove di Home Assistant sullo stesso database ripristinato, perché le migrazioni dello schema non sono un meccanismo generico di downgrade.
Una guida pratica al recupero dimostra lo stesso principio controllato: lavora sulle copie e avvia Home Assistant solo dopo che il database sostitutivo è pronto.
Convalida la cronologia prima di rimuovere il database danneggiato
- Verifica che Recorder si avvii senza errori di corruzione o migrazione.
- Apri Cronologia e Registro per un intervallo di tempo che dovrebbe essere presente nel backup.
- Controlla le statistiche a lungo termine o i dati energetici, se questi dati sono importanti per te.
- Genera una nuova modifica di stato e verifica che la nuova cronologia venga scritta dopo il punto di ripristino.
- Riavvia Home Assistant una volta e verifica che Recorder riapra nuovamente lo stesso database.
La guida di ZimaSpace sui backup coerenti dei database e sui test di ripristino si applica direttamente: un backup diventa affidabile solo quando il database lo accetta e l’applicazione riesce a scrivere un nuovo stato dopo il ripristino.
Conserva il database danneggiato finché questo test di accettazione non viene superato. Potrebbe contenere cronologia più recente che può essere esaminata o recuperata selettivamente se il backup valido è più vecchio del previsto.
Domande frequenti
Posso ripristinare solo la cronologia di Home Assistant senza riportare indietro le mie automazioni?
Sì, se disponi di una copia valida del database di Recorder e la configurazione corrente di Home Assistant è integra. Arresta le scritture, conserva il database corrente, ripristina solo il database di Recorder e convalidalo prima della pulizia.
Devo ripristinare un backup del database creato con una versione molto più vecchia di Home Assistant?
Solo con cautela. Una versione più recente di Home Assistant può migrare in avanti uno schema precedente di Recorder, ma eseguire il downgrade e alternare ripetutamente le versioni sullo stesso database è rischioso. Conserva i backup e utilizza un percorso di recupero compatibile.
Supporto e consigli
Altro da leggere

Segnali che indicano la necessità di manutenzione o sostituzione del database di Home Assistant
Un database di Home Assistant di grandi dimensioni di solito richiede interventi di conservazione o eliminazione dei dati; corruzioni o errori di integrità ricorrenti...

Quanti utenti simultanei può gestire Home Assistant prima di rallentare?
Home Assistant non ha un limite fisso di utenti utile: esegui un benchmark con client attivi, dashboard reali e aggiornamenti delle entità, quindi fermati...

Home Assistant può utilizzare un database esterno senza compromettere gli aggiornamenti?
Un database Recorder esterno può sopravvivere agli aggiornamenti, ma comporta responsabilità proprie in termini di disponibilità, migrazione dello schema, backup, ripristino e gestione delle...

