Gdy wolumin bazy danych Home Assistant jest pełny, najpierw zatrzymaj nowe zapisy. Utwórz wolne miejsce bez usuwania aktywnej bazy danych, zachowaj jej kopię i ustal, czy Recorder może otworzyć bazę oraz dalej nią zarządzać, zanim wybierzesz czyszczenie, naprawę lub przywrócenie.
Pełny wolumin może zablokować właśnie operację czyszczenia, która ma go naprawić, szczególnie gdy przepakowanie lub rekonstrukcja bazy danych wymaga tymczasowego miejsca. Zachowaj ostrożną kolejność: zatrzymaj Home Assistant, sprawdź, który system plików jest pełny, przenieś niezwiązane pliki lub rozszerz wolumin, skopiuj bazę danych, sprawdź logi i integralność, a następnie zastosuj najmniej destrukcyjną metodę odzyskiwania odpowiednią do wyniku.
Zatrzymaj zapisy i potwierdź, który system plików jest faktycznie pełny
Zatrzymaj Home Assistant lub Recorder, gdy tylko błędy zapisu bazy danych zaczną się powtarzać. Potwierdź system plików, punkt montowania lub wolumin thin zawierający aktywną bazę danych i porównaj całkowitą oraz wolną przestrzeń, liczbę i-węzłów, rozmiar bazy danych, logów, kopii zapasowych i zapisywalnych warstw kontenerów. Pełny dysk systemowy i pełny zewnętrzny wolumin bazy danych wymagają różnych rozwiązań.
Nie zakładaj, że baza danych jest jedynym użytkownikiem przestrzeni. Stare kopie zapasowe, logi debugowania, eksporty, migawki i niezwiązane warstwy kontenerów mogą zapewnić bezpieczniejsze awaryjne miejsce. Przenoś lub usuwaj tylko pliki, których przeznaczenie i status kopii zapasowej są znane; nie usuwaj pojedynczo aktywnej bazy danych, plików WAL, dziennika ani plików silnika bazy danych.
Poradnik ZimaSpace dotyczący znajdowania użycia dysku Dockera poza mapowanymi danymi jest właściwą kontrolą równoległą, gdy skonfigurowana ścieżka bazy danych wygląda na niewielką, ale dysk systemowy hosta nadal jest wyczerpany.
Utwórz miejsce robocze i zachowaj bazę danych
W pierwszej kolejności rozszerz wolumin lub przenieś niezwiązane archiwa na inny sprawdzony dysk. Jeśli jest to niemożliwe, skopiuj zatrzymaną bazę danych wraz z powiązanymi plikami na nośnik o wystarczającej pojemności, zanim rozpoczniesz konserwację. Zapisz właściciela, uprawnienia, silnik, wersję Home Assistant i adres URL bazy danych.
Przepakowanie nie jest dobrym pierwszym krokiem awaryjnym na pełnym systemie plików, ponieważ może wymagać znacznej ilości tymczasowego miejsca. Z notatek dotyczących rozwiązywania problemów wynika, że przepakowanie SQLite może wymagać wolnej przestrzeni porównywalnej z rozmiarem bazy danych; praktyczny wniosek to utworzenie miejsca roboczego przed przepakowaniem, zamiast ufania niemal pełnemu woluminowi.
Po utworzeniu miejsca potwierdź, że system plików jest zapisywalny i stabilny. Jeśli został ponownie zamontowany w trybie tylko do odczytu, zgłasza błędy sprzętowe lub natychmiast ponownie traci miejsce, zatrzymaj się i napraw warstwę pamięci masowej przed otwarciem bazy danych.
Wybierz czyszczenie, naprawę integralności lub przywrócenie sprawdzonej kopii
Uruchom Home Assistant tylko na tyle długo, aby sprawdzić logi Reсordera i stan bazy danych. Jeśli baza danych otwiera się prawidłowo, skróć okres przechowywania lub wyklucz głośne encje i uruchom czyszczenie bez przepakowania. Zmniejszy to logiczną ilość danych, unikając największego kroku wymagającego tymczasowego miejsca.
Jeśli pojawią się błędy integralności, ponownie zatrzymaj zapisy i pracuj na kopii. Użyj obsługiwanych przez silnik bazy danych narzędzi do sprawdzania integralności i odzyskiwania albo przywróć sprawdzoną kopię zapasową. Nie uruchamiaj wielokrotnie Home Assistant z uszkodzoną bazą danych, ponieważ nowe zapisy mogą utrudnić odzyskiwanie i zaciemnić pierwotną przyczynę awarii.
Jeśli nie istnieje użyteczna kopia bazy danych ani kopia zapasowa, utworzenie nowej bazy danych Reсordera przywróci działanie, ale spowoduje utratę historii. Potraktuj to jako ostatnią ścieżkę odzyskiwania, zachowaj uszkodzoną bazę do późniejszej analizy, a konfigurację i rejestry trzymaj oddzielnie od decyzji dotyczącej historii.
Ogranicz źródło przyrostu przed przywróceniem usługi
Ustal, co zapełniło wolumin: nadmierna liczba aktualizacji encji, długi okres przechowywania, duże logi, nagromadzenie kopii zapasowych, nieudane czyszczenie, rozrost bazy danych lub wolumin mniejszy niż zamierzony. Napraw zmierzone źródło problemu, zamiast od razu stosować wszystkie opcje czyszczenia.
Ustaw uzasadniony okres przechowywania, wyklucz encje, których historia aktualizowana z dużą częstotliwością ma niewielką wartość, przywróć logowanie z poziomu debugowania do normalnego, przenieś kopie zapasowe poza hosta i skonfiguruj alerty dotyczące zarówno wolnego miejsca, jak i tempa przyrostu. Pozostaw zapas miejsca na aktualizacje, kopie zapasowe, zmiany schematu i konserwację.
Porównaj odzyskaną bazę danych z kryteriami ZimaSpace dotyczącymi konserwacji lub wymiany bazy danych, gdy powtarzające się uszkodzenia lub błędy integralności sprawiają, że dalsza naprawa jest mniej wiarygodna niż przywrócenie sprawdzonej kopii.
Zweryfikuj odzyskiwanie pod obciążeniem Reсordera
Uruchom Home Assistant i potwierdź bieżące stany, nowe zapisy historii, zapytania dziennika, działania automatyzacji oraz rozmiar bazy danych. Odtwórz to samo obciążenie z dużą liczbą aktualizacji, które poprzedziło awarię, obserwując wolne miejsce, błędy zapisu, opóźnienia bazy danych i tempo przyrostu.
Uruchom ponownie Home Assistant dwukrotnie i wykonaj następne zaplanowane czyszczenie lub tworzenie kopii zapasowej. Odzyskiwanie można uznać za udane tylko wtedy, gdy baza danych otwiera się ponownie, historia jest aktualizowana, wolne miejsce pozostaje powyżej granicy zatrzymania, a błędy integralności i trybu tylko do odczytu nie wracają.
Wróć do zachowanej kopii lub sprawdzonej kopii zapasowej, jeśli konserwacja spowoduje nowe uszkodzenia, historia niespodziewanie zniknie albo wolumin zacznie zapełniać się w tym samym tempie. Zgłoś problemy z pamięcią masową, błędy silnika bazy danych i możliwe do odtworzenia awarie Reсordera, dołączając logi oraz zachowaną chronologię zdarzeń.
Wsparcie i wskazówki
Więcej do przeczytania

Jak zoptymalizować połączenia z bazą danych Home Assistant dla kontenerów działających jednocześnie
Dostosuj zewnętrzną bazę danych Recordera na podstawie zmierzonej liczby aktywnych połączeń i opóźnień, zamiast zwiększać maksymalną liczbę połączeń lub kopiować pulę z innego hosta.

Jak zapobiegać duplikowaniu zadań lub importów w Home Assistant
Używaj śladów i unikalnych kluczy operacji, aby można było bezpiecznie ponawiać automatyzacje i importy bez tworzenia zduplikowanych działań ani rekordów.

Dlaczego Home Assistant odtwarza brakujące pliki z niewłaściwym właścicielem?
Dopasuj UID i GID środowiska uruchomieniowego do ścieżki na hoście, napraw tylko dotknięte pliki, gdy środowisko jest zatrzymane, i zweryfikuj własność po ponownym utworzeniu.

