Home Assistant
Database Home Assistant Core: Errore SQLite database is locked e disk I/O error
1. A cosa serve La guida risolve l'errore di blocco o corruzione del file di database principale di Home Assistant (home-assistant_v2.db) causato da spegnimenti improvvisi della corrente o dall'utilizzo di schede MicroSD

1. A cosa serve
La guida risolve l'errore di blocco o corruzione del file di database principale di Home Assistant (home-assistant_v2.db) causato da spegnimenti improvvisi della corrente o dall'utilizzo di schede MicroSD lente.
2. Specifiche e compatibilità
Database: SQLite3 nativo. File interessato: /config/home-assistant_v2.db. Sistema operativo: Home Assistant OS / Container.
3. Materiali e prerequisiti necessari
Prerequisiti: 1. Add-on Terminal & SSH installato ed attivo. 2. Spazio libero su disco SSD > 5 GB.
Fase 1: Preparazione
Esegui l'arresto immediato del servizio Core di Home Assistant dal terminale SSH per sbloccare i processi che mantengono aperto il file di database.
[SCHEMA GRAFICO: Ripristino Database SQLite: Arresto Core (ha core stop) ---> Esecuzione sqlite3 recovery ---> Generazione nuovo DB pulito]
Pianifica l'eliminazione automatica dello storico (purge) ogni 7 giorni ed escludi i sensori di tracciamento ad alta frequenza per evitare che il database superi i 5 GB!
Esegui SEMPRE una copia di backup di sicurezza del file home-assistant_v2.db prima di lanciare i comandi di riparazione sqlite3.
Fase 2: Configurazione
- Apri il Terminale SSH ed esegui ha core stop. 2. Spostati nella cartella /config ed esegui sqlite3 home-assistant_v2.db ".recover" | sqlite3 home-assistant_v2_fix.db. 3. Rinomina il vecchio DB ed attiva il nuovo. 4. Esegui ha core start.
Comandi CLI: ha core stop, sqlite3 home-assistant_v2.db "PRAGMA integrity_check;", ha core start.
Fase 3: Automazione / Uso pratico
Configurazione ottimizzata del recorder in configuration.yaml:
recorder:
purge_keep_days: 7
commit_interval: 30
auto_purge: true
exclude:
domains:
- updater
- sun
entity_globs:
- sensor.clock*
- sensor.uptime*Script Bash di emergenza per la pulizia del DB corrotto:
# Script di ripristino Database SQLite in /config
cd /config
ha core stop
mv home-assistant_v2.db home-assistant_v2.db.corrupt
ha core startVerifica e test operativo
Controlla il registro di sistema da Impostazioni > Sistema > Registro: non deve comparire alcun errore recante la stringa Database is locked o I/O error.
L'interfaccia web Lovelace si carica senza ritardi ed i grafici storici registrano i nuovi dati.
Cosa fare se qualcosa non funziona
- Errore I/O persistente: Lo storage SSD/MicroSD ha settori danneggiati, sostituire il disco. 2. DB troppo grande: Lanciare lo script ha recorder purge. 3. Permessi errati: Eseguire ha core check per ripristinare la proprietà dei file.
9. Sicurezza e privacy
Tutti i dati storici dei sensori ed i registri rimangono salvati nel file SQLite locale cifrato.
10. Requisiti e Risorse Ufficiali
Questa guida risolve una problematica tecnica di configurazione o sistema domotico. Di seguito i riferimenti alle documentazioni ufficiali:
* 🌐 Documentazione Ufficiale Home Assistant: [home-assistant.io/help](https://www.home-assistant.io/help/)
* 📦 Repository GitHub Troubleshooting: [github.com/home-assistant/core/issues](https://github.com/home-assistant/core/issues)
* 🛠️ Prerequisiti di sistema: Server Home Assistant OS aggiornato, connessione di rete LAN locale ed accesso Amministratore.