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

Database Home Assistant Core: Errore SQLite database is locked e disk I/O error: Database Home Assistant Core: Errore SQLite database is locked e disk I/O error
Copertina editoriale DomotikPro

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 start

Verifica 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.