Så här återställer du en Home Assistant-databas från en känd fungerande säkerhetskopia

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

En verifierad säkerhetskopia av Home Assistant-databasen är mest användbar när du först bestämmer vad du faktiskt vill återställa. Om hela Home Assistant-installationen ska återställas till tidpunkten för säkerhetskopian använder du det stödda återställningsflödet för Home Assistant. Om konfigurationen är intakt och endast historiken i Recorder behöver återställas kan en återställning av enbart databasen undvika att nyare automatiseringar och integrationer skrivs över.

Ersätt inte livedatabasen medan Home Assistant skriver till den. Bevara först den aktuella databasen, stoppa Home Assistant eller pausa Recorder på annat sätt, återställ den verifierade kopian till en isolerad eller kontrollerad sökväg och starta sedan tjänsten och verifiera resultatet innan någon av versionerna raderas.

Välj fullständig återställning av Home Assistant eller återställning av enbart databasen

En fullständig återställning av en säkerhetskopia för Home Assistant ersätter det aktuella applikationstillståndet med innehållet i säkerhetskopian. Det är lämpligt när konfigurationen, integrationerna, apparna och databasen alla ska återställas till samma kända tidpunkt.

Den aktuella åtgärden för återställning från en fullständig säkerhetskopia varnar uttryckligen för att aktuella ändringar skrivs över av säkerhetskopians tillstånd. Om det enda problemet gäller Recorder-historiken kan den omfattningen vara större än nödvändigt.

Vid återställning av enbart databasen identifierar du den exakta verifierade kopian av Recorder-databasen och låter det aktuella konfigurationsträdet vara orört. Dokumentera säkerhetskopians tidsstämpel så att du vet hur mycket historik som går förlorad när du återgår till den.

Bekräfta vilken databas Home Assistant faktiskt använder

Home Assistant använder SQLite som standard, lagrad som /config/home-assistant_v2.db, men Recorder kan i stället använda MariaDB, MySQL eller PostgreSQL via db_url. Kopiera inte en SQLite-fil till en installation som faktiskt skriver till en extern databas.

SQLite är standarddatabasen för Home Assistant Recorder och lagras normalt som /config/home-assistant_v2.db. Recorder kan också konfigureras för att använda en extern databas som stöds via db_url. Kontrollera den aktiva Recorder-konfigurationen innan du hanterar filer, så att återställningsunderlaget matchar den databas som Home Assistant faktiskt använder.

Om databasen är extern återställer du den med databasmotorns egen säkerhetskopieringsmetod och samordnar applikationsversionen och schemat. Betrakta inte en SQL-dump och en SQLite-fil som utbytbara återställningsunderlag.

Stoppa skrivningar innan du ersätter en SQLite-databasfil

Om din verifierade säkerhetskopia är en ren fysisk kopia av home-assistant_v2.db ska du stoppa Home Assistant innan du ersätter livedatabasen. Bevara den aktuella databasen under ett annat namn i stället för att radera den.

SQLite:s egen dokumentation om säkerhetskopiering förklarar att en databaskopia måste representera en konsekvent ögonblicksbild. SQLite Online Backup API finns särskilt för att skapa en konsekvent kopia medan en databas är aktiv. En verifierad kopia som skapats när databasen var stoppad, eller en databasmedveten säkerhetskopia online, är säkrare än en godtycklig filkopia som tagits medan skrivningar pågår.

Kontrollera också att inga sidofiler med WAL- eller journaldata från den skadade databasen blandas med den återställda kopian. Börja med hela det verifierade återställningsunderlaget, inte en blandning av filer från olika tidpunkter.

Börja med den intakta säkerhetskopian och låt Home Assistant validera den

Placera den återställda databasen på den förväntade sökvägen med rätt ägare och behörigheter. Starta sedan Home Assistant och följ Recorder-loggarna. Kör inte rensning, ompackning eller manuellt SQL-underhåll under den första valideringsstarten.

Om databasschemat är äldre än den aktuella Home Assistant-versionen kan Recorder behöva migrera det. Låt processen slutföras innan du bedömer prestandan eller startar om igen. Undvik att växla fram och tillbaka mellan gamla och nya Home Assistant-versioner mot samma återställda databas, eftersom schemamigreringar inte är en allmän mekanism för nedgradering.

En praktisk återställningsgenomgång visar samma kontrollerade princip: arbeta med kopior och starta Home Assistant först när ersättningsdatabasen är klar.

Verifiera historiken innan du tar bort den skadade databasen

  • Bekräfta att Recorder startar utan korruptions- eller migreringsfel.
  • Öppna Historik och Loggbok för ett tidsintervall som bör finnas i säkerhetskopian.
  • Kontrollera långsiktig statistik eller energidata om dessa poster är viktiga för dig.
  • Utlös en ny statusändring och bekräfta att ny historik skrivs efter återställningspunkten.
  • Starta om Home Assistant en gång och bekräfta att Recorder öppnar samma databas igen.

ZimaSpaces guide om databaskonsistenta säkerhetskopior och återställningstester är direkt tillämplig: en säkerhetskopia blir tillförlitlig först när databasen accepterar den och applikationen kan skriva nya tillstånd efter återställningen.

Behåll den skadade databasen tills detta godkännandetest har godkänts. Den kan fortfarande innehålla nyare historik som kan granskas eller återställas selektivt om den verifierade säkerhetskopian är äldre än förväntat.

Vanliga frågor

Kan jag återställa endast Home Assistant-historiken utan att återställa mina automatiseringar?

Ja, om du har en verifierad kopia av Recorder-databasen och den aktuella Home Assistant-konfigurationen är intakt. Stoppa skrivningarna, bevara den aktuella databasen, återställ endast Recorder-databasen och verifiera den innan du städar bort något.

Bör jag återställa en säkerhetskopia av databasen från en mycket äldre Home Assistant-version?

Endast med försiktighet. En nyare Home Assistant-version kan migrera ett äldre Recorder-schema framåt, men det är riskabelt att nedgradera och upprepade gånger växla mellan versioner mot samma databas. Behåll säkerhetskopior och använd en kompatibel återställningsväg.

Support och tips

Mer att läsa

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.