Een Home Assistant-database herstellen vanaf een bekende goede back-up

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Een bekende goede back-up van de Home Assistant-database is het nuttigst wanneer je eerst bepaalt wat je precies wilt herstellen. Als de volledige Home Assistant-installatie moet terugkeren naar het moment van de back-up, gebruik dan de ondersteunde herstelworkflow van Home Assistant. Als de configuratie goed werkt en alleen de Recorder-geschiedenis moet worden hersteld, kan herstel van alleen de database voorkomen dat nieuwere automatiseringen en integraties worden overschreven.

Vervang de actieve database niet terwijl Home Assistant erin schrijft. Bewaar eerst de huidige database, stop Home Assistant of zorg er op een andere manier voor dat Recorder geen nieuwe gegevens verwerkt, zet de bekende goede kopie terug naar een geïsoleerd of gecontroleerd pad en start Home Assistant vervolgens opnieuw om alles te controleren voordat je een van beide versies verwijdert.

Kies voor volledig herstel van Home Assistant of herstel van alleen de database

Bij volledig herstel van een Home Assistant-back-up wordt de huidige applicatiestatus vervangen door de inhoud van de back-up. Dat is geschikt wanneer de configuratie, integraties, apps en database allemaal naar hetzelfde bekende moment moeten worden teruggezet.

De huidige actie voor herstel vanuit een volledige back-up waarschuwt expliciet dat huidige wijzigingen door de back-upstatus worden overschreven. Als alleen de geschiedenis van Recorder defect is, kan dat bereik groter zijn dan nodig.

Identificeer voor herstel van alleen de database de exacte bekende goede kopie van de Recorder-database en laat de huidige configuratiestructuur ongemoeid. Noteer het tijdstip van de back-up, zodat je weet hoeveel geschiedenis verloren gaat door naar dat moment terug te gaan.

Controleer welke database Home Assistant daadwerkelijk gebruikt

Home Assistant gebruikt standaard SQLite, opgeslagen als /config/home-assistant_v2.db, maar Recorder kan via db_url ook verwijzen naar MariaDB, MySQL of PostgreSQL. Kopieer geen SQLite-bestand naar een implementatie die daadwerkelijk naar een externe database schrijft.

SQLite is de standaarddatabase voor Home Assistant Recorder en wordt normaal opgeslagen als /config/home-assistant_v2.db; Recorder kan ook worden geconfigureerd om via db_url een ondersteunde externe database te gebruiken. Controleer de actieve Recorder-configuratie voordat je bestanden aanraakt, zodat het herstelbestand overeenkomt met de database die Home Assistant daadwerkelijk gebruikt.

Als de database extern is, herstel deze dan met de eigen back-upmethode van de database-engine en stem de applicatieversie en het schema op elkaar af. Beschouw een SQL-dump en een SQLite-bestand niet als onderling uitwisselbare herstelbestanden.

Stop schrijfbewerkingen voordat je een SQLite-databasebestand vervangt

Als je bekende goede back-up een schone fysieke kopie van home-assistant_v2.db is, stop Home Assistant dan voordat je het actieve bestand vervangt. Bewaar de huidige database onder een andere naam in plaats van deze te verwijderen.

De eigen back-uprichtlijnen van SQLite leggen uit dat een databasekopie een consistente momentopname moet zijn; de SQLite Online Backup API is specifiek bedoeld om een consistente kopie te maken terwijl een database actief is. Een bekende goede kopie die is gemaakt terwijl de database gestopt was, of een databasebewuste online back-up, is veiliger dan een willekeurige bestandskopie die tijdens schrijfbewerkingen is gemaakt.

Controleer ook of er geen WAL- of journalstatus van de defecte database met de herstelde kopie wordt vermengd. Begin met het volledige bekende goede herstelbestand, niet met een combinatie van bestanden met verschillende tijdstempels.

Begin met een ongewijzigde back-upkopie en laat Home Assistant deze valideren

Plaats de herstelde database op het verwachte pad met de juiste eigenaar en rechten, start Home Assistant en controleer de Recorder-logboeken. Voer tijdens de eerste validatiestart geen opruimacties, herverpakkingen of handmatig SQL-onderhoud uit.

Als het databaseschema ouder is dan de huidige Home Assistant-versie, moet Recorder het mogelijk migreren. Laat dat proces volledig afronden voordat je de prestaties beoordeelt of opnieuw opstart. Vermijd het voortdurend wisselen tussen oude en nieuwe Home Assistant-versies met dezelfde herstelde database, omdat schemamigraties geen algemeen mechanisme voor downgraden zijn.

Een praktische herstelhandleiding laat hetzelfde gecontroleerde principe zien: werk met kopieën en start Home Assistant pas nadat de vervangende database gereed is.

Controleer de geschiedenis voordat je de defecte database verwijdert

  • Controleer of Recorder start zonder fouten door beschadiging of migratie.
  • Open Geschiedenis en Logboek voor een periode die in de back-up aanwezig zou moeten zijn.
  • Controleer langetermijnstatistieken of Energiegegevens als die gegevens voor jou belangrijk zijn.
  • Breng een nieuwe statuswijziging teweeg en controleer of er na het herstelpunt nieuwe geschiedenis wordt geschreven.
  • Start Home Assistant eenmaal opnieuw en controleer of Recorder opnieuw dezelfde database opent.

De ZimaSpace-handleiding voor databaseconsistente back-ups en hersteltests is hier rechtstreeks van toepassing: een back-up wordt pas betrouwbaar wanneer de database deze accepteert en de applicatie na het herstel nieuwe statusgegevens kan schrijven.

Bewaar de defecte database totdat deze acceptatietest is geslaagd. Mogelijk bevat deze nog nieuwere geschiedenis die je kunt bekijken of selectief kunt herstellen als de bekende goede back-up ouder is dan verwacht.

Veelgestelde vragen

Kan ik alleen de Home Assistant-geschiedenis herstellen zonder mijn automatiseringen terug te draaien?

Ja, als je een bekende goede kopie van de Recorder-database hebt en de huidige Home Assistant-configuratie goed werkt. Stop de schrijfbewerkingen, bewaar de huidige database, herstel alleen de Recorder-database en controleer deze voordat je opruimt.

Moet ik een databaseback-up herstellen die met een veel oudere Home Assistant-versie is gemaakt?

Alleen voorzichtig. Een nieuwere Home Assistant-versie kan een ouder Recorder-schema vooruit migreren, maar downgraden en herhaaldelijk tussen versies wisselen met één database brengt risico's met zich mee. Bewaar back-ups en gebruik een compatibel herstelpad.

Ondersteuning & Tips

Meer om te lezen

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.