데이터베이스 볼륨이 가득 찬 후 Home Assistant 복구 방법

에바 왕기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

Home Assistant 데이터베이스 볼륨이 가득 차면 먼저 새로운 쓰기를 중지하세요. 활성 데이터베이스를 삭제하지 않고 작업 공간을 확보하고, 복사본을 보존한 뒤, 정리·복구·복원 중 무엇을 선택할지 결정하기 전에 Recorder가 데이터베이스를 열고 유지할 수 있는지 확인하세요.

특히 압축 재구성이나 데이터베이스 재구성에 임시 공간이 필요한 경우, 전체 볼륨 때문에 문제를 해결하려던 정리 작업 자체가 차단될 수 있습니다. 보수적인 순서를 지키세요. Home Assistant를 중지하고, 어느 파일 시스템이 가득 찼는지 확인한 다음, 관련 없는 파일을 옮기거나 볼륨을 확장하고, 데이터베이스를 복사한 뒤, 로그와 무결성을 확인하고, 결과에 맞는 가장 파괴적이지 않은 복구 방법을 적용하세요.

쓰기 중지 및 실제로 가득 찬 파일 시스템 확인

데이터베이스 쓰기 실패가 반복되면 즉시 Home Assistant 또는 Recorder를 중지하세요. 활성 데이터베이스가 있는 파일 시스템, 마운트 또는 씬 볼륨을 확인하고 전체 공간, 여유 공간, inode, 데이터베이스 크기, 로그, 백업 및 컨테이너 쓰기 가능 레이어를 비교하세요. 시스템 디스크가 가득 찬 경우와 외부 데이터베이스 볼륨이 가득 찬 경우에는 해결 방법이 다릅니다.

데이터베이스만 공간을 사용한다고 가정하지 마세요. 오래된 백업, 디버그 로그, 내보내기 파일, 스냅샷 및 관련 없는 컨테이너 레이어에서 더 안전하게 긴급 공간을 확보할 수 있습니다. 용도와 백업 상태를 알고 있는 파일만 옮기거나 삭제하세요. 활성 데이터베이스, WAL, 저널 또는 데이터베이스 엔진 파일을 개별적으로 제거하지 마세요.

매핑된 데이터 외부에서 Docker 디스크 사용량 찾기에 관한 ZimaSpace 가이드는 구성된 데이터베이스 경로가 작아 보이는데도 호스트 시스템 디스크가 계속 가득 찬 경우에 함께 확인하기에 적합합니다.

작업 공간 확보 및 데이터베이스 보존

볼륨을 확장하거나 관련 없는 아카이브를 검증된 다른 디스크로 옮기는 방법을 우선 사용하세요. 이것이 불가능하다면 유지 관리 작업을 시도하기 전에 중지된 데이터베이스와 관련 파일을 충분한 용량이 있는 저장소에 복사하세요. 소유자, 권한, 엔진, Home Assistant 버전 및 데이터베이스 URL을 기록해 두세요.

전체 파일 시스템에서 압축 재구성은 상당한 임시 공간이 필요할 수 있으므로 긴급 상황에서 먼저 시도할 방법이 아닙니다. 커뮤니티 문제 해결 자료에 따르면 SQLite 압축 재구성에는 데이터베이스 크기에 맞먹는 여유 공간이 필요할 수 있습니다. 따라서 거의 가득 찬 볼륨을 믿기보다 압축 재구성 전에 작업 공간을 확보하는 것이 실용적입니다.

공간을 확보한 후 파일 시스템이 쓰기 가능하고 안정적인지 확인하세요. 읽기 전용으로 다시 마운트되었거나 하드웨어 오류가 보고되거나 즉시 공간이 다시 줄어든다면, 데이터베이스를 열기 전에 중지하고 저장소 계층을 먼저 복구하세요.

정리, 무결성 복구 또는 정상 백업 복원 선택

Recorder 로그와 데이터베이스 상태를 확인할 수 있을 만큼만 Home Assistant를 시작하세요. 데이터베이스가 문제없이 열리면 보존 기간을 줄이거나 변경이 잦은 엔터티를 제외하고, 먼저 압축 재구성 없이 정리를 실행하세요. 이렇게 하면 가장 많은 임시 공간이 필요한 단계를 피하면서 논리적인 데이터 양을 줄일 수 있습니다.

무결성 오류가 나타나면 다시 쓰기를 중지하고 복사본을 대상으로 작업하세요. 데이터베이스 엔진에서 지원하는 무결성 검사 및 복구 도구를 사용하거나 정상적인 백업을 복원하세요. 손상된 데이터베이스로 Home Assistant를 반복해서 시작하지 마세요. 새로운 쓰기로 인해 복구가 복잡해지고 원래 장애의 원인이 불분명해질 수 있습니다.

사용 가능한 데이터베이스 복사본이나 백업이 없다면 새 Recorder 데이터베이스를 생성해 서비스를 복구할 수 있지만 기록은 손실됩니다. 이를 마지막 복구 단계로 취급하고, 나중에 분석할 수 있도록 실패한 데이터베이스를 보존하세요. 구성 및 레지스트리는 기록 보존 여부와 별도로 유지하세요.

서비스 복귀 전에 증가 원인 줄이기

볼륨을 가득 채운 원인을 파악하세요. 과도한 엔터티 업데이트, 긴 보존 기간, 대용량 로그, 백업 누적, 실패한 정리, 데이터베이스 비대화 또는 예상보다 작은 볼륨이 원인일 수 있습니다. 모든 정리 옵션을 한꺼번에 적용하기보다 측정된 원인을 해결하세요.

합리적인 보존 기간을 설정하고, 고주파 기록의 가치가 낮은 엔터티를 제외하며, 로깅을 디버그에서 일반 수준으로 되돌리세요. 백업 복사본은 호스트 외부로 옮기고 여유 공간과 증가 속도 모두에 대해 알림을 설정하세요. 업그레이드, 백업, 스키마 변경 및 유지 관리에 필요한 작업 공간을 남겨 두세요.

반복적인 손상이나 무결성 오류로 인해 계속 복구하는 것보다 정상 백업을 복원하는 편이 더 신뢰할 만한 경우, 데이터베이스 유지 관리와 교체에 관한 ZimaSpace 기준과 복구한 데이터베이스를 비교하세요.

Recorder 부하에서 복구 상태 검증

Home Assistant를 시작하고 현재 상태, 새로운 기록 쓰기, 로그북 쿼리, 자동화 동작 및 데이터베이스 크기를 확인하세요. 장애가 발생하기 전에 나타났던 높은 업데이트 부하를 동일하게 실행하면서 여유 공간, 쓰기 오류, 데이터베이스 지연 시간 및 증가 속도를 관찰하세요.

Home Assistant를 두 번 다시 시작하고 다음 예약 정리 또는 백업을 실행하세요. 데이터베이스가 다시 열리고 기록이 계속 추가되며 여유 공간이 중지 기준 이상으로 유지되고 무결성 또는 읽기 전용 오류가 다시 발생하지 않을 때만 복구가 완료된 것으로 봅니다.

유지 관리로 새로운 손상이 발생하거나 기록이 예기치 않게 사라지거나 볼륨이 같은 속도로 다시 차기 시작하면 보존한 복사본 또는 정상 백업으로 되돌리세요. 로그와 보존된 시간 순서를 첨부해 저장소 결함, 데이터베이스 엔진 오류 및 재현 가능한 Recorder 장애를 에스컬레이션하세요.

지원 및 팁

더 읽어보기

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.