Znana, prawidłowa kopia zapasowa bazy danych Home Assistant jest najbardziej użyteczna, gdy najpierw określisz, co dokładnie chcesz odzyskać. Jeśli cała instalacja Home Assistant ma zostać przywrócona do stanu z momentu wykonania kopii, użyj obsługiwanego procesu przywracania Home Assistant. Jeśli konfiguracja działa prawidłowo i trzeba odzyskać tylko historię Recordera, przywrócenie samej bazy danych pozwoli uniknąć nadpisania nowszych automatyzacji i integracji.
Nie zastępuj aktywnej bazy danych, gdy Home Assistant zapisuje do niej dane. Najpierw zachowaj bieżącą bazę danych, zatrzymaj Home Assistant lub w inny sposób wstrzymaj działanie Recordera, przywróć sprawdzoną kopię do odizolowanej albo kontrolowanej lokalizacji, a następnie uruchom system i przeprowadź weryfikację, zanim usuniesz którąkolwiek z wersji.
Wybierz pełne przywracanie Home Assistant albo odzyskiwanie tylko bazy danych
Pełne przywrócenie kopii zapasowej Home Assistant zastępuje bieżący stan aplikacji zawartością kopii. Jest to właściwe rozwiązanie, gdy konfiguracja, integracje, aplikacje i baza danych mają zostać przywrócone do tego samego znanego punktu.
Bieżąca akcja przywracania pełnej kopii zapasowej wyraźnie ostrzega, że bieżące zmiany zostaną nadpisane stanem z kopii. Jeśli jedynym problemem jest historia Recordera, taki zakres może być szerszy, niż to konieczne.
W przypadku odzyskiwania tylko bazy danych wskaż dokładną, sprawdzoną kopię bazy Recordera i pozostaw bieżące drzewo konfiguracji bez zmian. Zapisz znacznik czasu kopii, aby wiedzieć, ile historii zostanie utracone po powrocie do tego punktu.
Potwierdź, z której bazy danych faktycznie korzysta Home Assistant
Home Assistant domyślnie korzysta z SQLite, przechowując bazę w /config/home-assistant_v2.db, ale Recorder może być również skonfigurowany do używania MariaDB, MySQL lub PostgreSQL za pośrednictwem db_url. Nie kopiuj pliku SQLite do wdrożenia, które w rzeczywistości zapisuje dane w zewnętrznej bazie.
SQLite jest domyślną bazą danych Recordera w Home Assistant i zwykle znajduje się w /config/home-assistant_v2.db; Recorder można również skonfigurować do korzystania z obsługiwanej zewnętrznej bazy danych za pośrednictwem db_url. Przed rozpoczęciem pracy z plikami sprawdź rzeczywistą konfigurację Recordera, aby zasób odzyskiwania odpowiadał bazie danych faktycznie używanej przez Home Assistant.
Jeśli baza danych jest zewnętrzna, przywróć ją za pomocą własnej metody tworzenia kopii zapasowych używanego silnika bazodanowego, uwzględniając wersję aplikacji i schemat. Nie traktuj zrzutu SQL i pliku SQLite jako zamiennych zasobów odzyskiwania.
Zatrzymaj zapisy przed zastąpieniem pliku bazy SQLite
Jeśli sprawdzona kopia zapasowa jest czystą kopią fizyczną pliku home-assistant_v2.db, zatrzymaj Home Assistant przed zastąpieniem aktywnego pliku. Zachowaj bieżącą bazę pod inną nazwą zamiast jej usuwać.
Własne zalecenia SQLite dotyczące tworzenia kopii wyjaśniają, że kopia bazy danych musi przedstawiać spójny obraz; interfejs SQLite Online Backup API służy właśnie do tworzenia spójnej kopii podczas działania bazy danych. Sprawdzona kopia wykonana po zatrzymaniu systemu lub kopia online utworzona z uwzględnieniem bazy danych jest bezpieczniejsza niż przypadkowa kopia pliku wykonana w trakcie zapisu.
Upewnij się również, że żadne pliki pomocnicze WAL ani informacje z dziennika z uszkodzonej bazy nie są mieszane z przywracaną kopią. Rozpocznij od kompletnego, sprawdzonego zasobu odzyskiwania, a nie od hybrydy plików pochodzących z różnych momentów.
Rozpocznij od nienaruszonej kopii i pozwól Home Assistant ją zweryfikować
Umieść przywróconą bazę danych w oczekiwanej lokalizacji, nadaj jej prawidłowego właściciela i uprawnienia, a następnie uruchom Home Assistant i obserwuj logi Recordera. Podczas pierwszego uruchomienia weryfikacyjnego nie wykonuj czyszczenia, przepakowywania ani ręcznej konserwacji SQL.
Jeśli schemat bazy danych jest starszy niż bieżąca wersja Home Assistant, Recorder może wymagać jego migracji. Pozwól, aby proces ten się zakończył, zanim ocenisz wydajność lub ponownie uruchomisz system. Unikaj wielokrotnego przełączania między starszymi i nowszymi wersjami Home Assistant przy użyciu tej samej przywróconej bazy, ponieważ migracje schematu nie są uniwersalnym mechanizmem obniżania wersji.
Praktyczny poradnik odzyskiwania pokazuje tę samą kontrolowaną zasadę: pracuj na kopiach i uruchom Home Assistant dopiero wtedy, gdy zastępcza baza danych jest gotowa.
Zweryfikuj historię przed usunięciem uszkodzonej bazy danych
- Potwierdź, że Recorder uruchamia się bez błędów uszkodzenia ani migracji.
- Otwórz Historię i Dziennik zdarzeń dla zakresu czasu, który powinien znajdować się w kopii.
- Sprawdź statystyki długoterminowe lub dane dotyczące energii, jeśli te rekordy są dla Ciebie istotne.
- Wywołaj nową zmianę stanu i potwierdź, że po punkcie przywracania zapisywana jest nowa historia.
- Uruchom ponownie Home Assistant i potwierdź, że Recorder ponownie otwiera tę samą bazę danych.
Poradnik ZimaSpace dotyczący spójnych kopii zapasowych baz danych i testów przywracania ma tu bezpośrednie zastosowanie: kopia zapasowa staje się godna zaufania dopiero wtedy, gdy baza danych ją akceptuje, a aplikacja może po przywróceniu zapisywać nowy stan.
Zachowaj uszkodzoną bazę danych do czasu pomyślnego zakończenia tego testu akceptacyjnego. Może ona nadal zawierać nowszą historię, którą można przeanalizować lub odzyskać wybiórczo, jeśli sprawdzona kopia jest starsza, niż oczekiwano.
FAQ
Czy mogę przywrócić tylko historię Home Assistant bez cofania automatyzacji?
Tak, jeśli masz sprawdzoną kopię bazy danych Recordera, a bieżąca konfiguracja Home Assistant działa prawidłowo. Zatrzymaj zapisy, zachowaj bieżącą bazę danych, przywróć wyłącznie bazę Recordera i zweryfikuj ją przed sprzątaniem.
Czy należy przywracać kopię bazy danych utworzoną w znacznie starszej wersji Home Assistant?
Tylko ostrożnie. Nowszy Home Assistant może przeprowadzić migrację starszego schematu Recordera do przodu, ale obniżanie wersji i wielokrotne przełączanie wersji przy użyciu jednej bazy danych jest ryzykowne. Zachowaj kopie zapasowe i korzystaj ze zgodnej ścieżki odzyskiwania.
Wsparcie i wskazówki
Więcej do przeczytania

Oznaki wskazujące, że baza danych Home Assistant wymaga konserwacji lub wymiany
Duża baza danych Home Assistant zwykle wymaga konfiguracji przechowywania danych lub czyszczenia; powtarzające się uszkodzenia albo błędy integralności są silniejszym sygnałem do wymiany.

Ilu jednoczesnych użytkowników może obsłużyć Home Assistant, zanim zacznie działać wolniej?
Home Assistant nie ma stałego, użytecznego limitu użytkowników: przetestuj aktywnych klientów z rzeczywistymi pulpitami i aktualizacjami encji, a następnie zatrzymaj testy, zanim pojawią się...

Czy Home Assistant może korzystać z zewnętrznej bazy danych bez zakłócania aktualizacji?
Zewnętrzna baza danych Recorder może przetrwać aktualizacje, ale wiąże się z własną dostępnością, migracją schematu, tworzeniem kopii zapasowych, przywracaniem oraz obowiązkami związanymi z wersjonowaniem.

