Czyszczenie bazy Secure Heartbeat w Sophos Firewall
W niektórych sprawach supportowych Sophos przekazuje przydatne polecenia konserwacyjne, które nie zawsze są opisane w publicznej Knowledge Base. Zapisujemy je, aby podobne przypadki można było później obsłużyć w sposób powtarzalny.
W tym przypadku baza Secure Heartbeat w Sophos Firewall zużywała zbyt dużo miejsca. Według Sophos Support konkretne tabele bazy corporate można obsłużyć poleceniem VACUUM FULL.
Kiedy ta instrukcja jest przydatna
Instrukcja jest przydatna, gdy w Sophos Firewall zaczyna brakować miejsca i istnieje podejrzenie, że tabele bazy związane z Secure Heartbeat zużywają nietypowo dużo przestrzeni.
Typowe sygnały:
- Ostrzeżenia o wysokim użyciu dysku
- Mocno zajęte partycje na firewallu
- Problemy z raportami, logami lub usługami z powodu małej pojemności dysku
- Informacja od Sophos Support, że baza Secure Heartbeat urosła zbyt mocno
Ogólne kroki sprawdzania miejsca opisuje artykuł Sophos Firewall - sprawdzanie miejsca i zarządzanie raportami.
Wymagania
Do tej konserwacji potrzebne są:
- Dostęp administracyjny do Sophos Firewall
- Dostęp do Advanced Shell
- Okno serwisowe
- Aktualna kopia konfiguracji firewalla
- Wystarczająca ilość wolnego miejsca, aby konserwacja bazy mogła się zakończyć
Jeśli dostęp do shell nie jest jeszcze skonfigurowany, Połączenie SSH z Sophos Firewall pokazuje, jak zestawić połączenie SSH.
⚠️ Te polecenia uzyskują bezpośredni dostęp do wewnętrznej bazy PostgreSQL Sophos Firewall. Należy ich używać tylko celowo i po aktualnym potwierdzeniu przez Sophos Support dla konkretnego zgłoszenia supportowego.
VACUUM FULLmoże blokować tabele podczas działania i w zależności od rozmiaru bazy potrwać dłużej.
Sprawdzenie miejsca przed konserwacją
Przed konserwacją bazy sprawdzić zajętość partycji:
df -h
Dla dokładniejszego widoku w megabajtach można użyć również:
df -hkm
Wynik warto zapisać przed konserwacją, aby później porównać efekt.
Wykonanie konserwacji bazy
Następujące polecenia wykonać w Advanced Shell.
Najpierw wyczyścić tabelę tbleacappcache:
psql -U pgroot -d corporate -c "VACUUM FULL tbleacappcache"
Następnie wyczyścić tabelę tblappstoeps:
psql -U pgroot -d corporate -c "VACUUM FULL tblappstoeps"
Po udanym wykonaniu polecenia zwykle zwracają VACUUM. Nie zamykać sesji SSH i nie restartować firewalla, gdy polecenia są wykonywane.
Sprawdzenie miejsca po konserwacji
Po zakończeniu poleceń ponownie sprawdzić miejsce:
df -h
Jeśli przyczyną była baza Secure Heartbeat, zajętość odpowiedniej partycji powinna się zmniejszyć. Efekt zależy od wcześniejszego rozmiaru tabel i od tego, ile miejsca PostgreSQL mógł zwolnić.
Ważne uwagi
- Ta konserwacja nie usuwa automatycznie przyczyny wzrostu tabel.
- Jeśli użycie dysku szybko wzrośnie ponownie, należy otworzyć sprawę w Sophos Support.
VACUUM FULLjest bardziej intensywne niż zwykłeVACUUM, ponieważ przepisuje tabele.- Poleceń nie należy używać jako cronjob ani rutyny bez diagnozy.
- Na produkcyjnych firewallach zalecane jest okno serwisowe, ponieważ część funkcji może reagować wolniej podczas konserwacji bazy.
Przyczyna według Sophos Support
W konkretnym przypadku Sophos Support wskazał, że baza Secure Heartbeat zajmowała zbyt dużo miejsca. Dwa powyższe polecenia VACUUM FULL służą do oczyszczenia wskazanych tabel i zwolnienia nieużywanego miejsca.