정상 백업에서 Home Assistant 데이터베이스를 복구하는 방법

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

신뢰할 수 있는 Home Assistant 데이터베이스 백업은 먼저 실제로 무엇을 복구하려는지 결정했을 때 가장 유용합니다. Home Assistant 설치 전체를 백업 시점으로 되돌려야 한다면 지원되는 Home Assistant 복원 워크플로를 사용하세요. 구성이 정상이고 Recorder 기록만 복구해야 한다면 데이터베이스만 복원하여 최신 자동화와 통합을 덮어쓰지 않을 수 있습니다.

Home Assistant가 데이터베이스에 기록하는 동안 실행 중인 데이터베이스를 교체하지 마세요. 먼저 현재 데이터베이스를 보존하고, Home Assistant를 중지하거나 다른 방법으로 Recorder를 일시 정지한 다음, 신뢰할 수 있는 복사본을 격리되었거나 통제된 경로에 복원하세요. 그런 다음 Home Assistant를 시작하고 확인한 후 어느 버전이든 삭제하세요.

전체 Home Assistant 복원과 데이터베이스만 복구하기 중 선택

전체 Home Assistant 백업을 복원하면 현재 애플리케이션 상태가 백업 내용으로 교체됩니다. 구성, 통합, 앱, 데이터베이스를 모두 동일한 특정 시점으로 되돌려야 할 때 적합합니다.

현재 전체 백업 복원 작업은 현재 변경 사항이 백업 상태로 덮어써진다고 명시적으로 경고합니다. 문제가 Recorder 기록뿐이라면 복원 범위가 필요 이상으로 넓을 수 있습니다.

데이터베이스만 복구하려면 정확히 신뢰할 수 있는 Recorder 데이터베이스 복사본을 확인하고 현재 구성 트리는 그대로 유지하세요. 백업의 타임스탬프를 기록해 두면 해당 시점으로 되돌릴 때 얼마나 많은 기록이 손실되는지 알 수 있습니다.

Home Assistant가 실제로 사용하는 데이터베이스 확인

Home Assistant는 기본적으로 SQLite를 사용하며 /config/home-assistant_v2.db에 저장합니다. 그러나 Recorder는 db_url을 통해 MariaDB, MySQL 또는 PostgreSQL을 사용하도록 설정할 수도 있습니다. 실제로 외부 데이터베이스에 기록하는 배포 환경에 SQLite 파일을 복사하지 마세요.

SQLite는 Home Assistant Recorder의 기본 데이터베이스이며 일반적으로 /config/home-assistant_v2.db에 저장됩니다. Recorder는 db_url을 통해 지원되는 외부 데이터베이스를 사용하도록 구성할 수도 있습니다. 파일을 다루기 전에 유효한 Recorder 구성을 확인하여 복구 자료가 Home Assistant가 실제로 사용하는 데이터베이스와 일치하는지 확인하세요.

데이터베이스가 외부에 있다면 해당 데이터베이스 엔진의 자체 백업 방법으로 복원하고 애플리케이션 버전 및 스키마를 조정하세요. SQL 덤프와 SQLite 파일을 서로 바꿔 사용할 수 있는 복구 자료로 취급하지 마세요.

SQLite 데이터베이스 파일을 교체하기 전에 쓰기 중지

신뢰할 수 있는 백업이 home-assistant_v2.db의 깨끗한 물리적 복사본이라면 실행 중인 파일을 교체하기 전에 Home Assistant를 중지하세요. 현재 데이터베이스를 삭제하지 말고 다른 이름으로 보존하세요.

SQLite 자체 백업 지침에 따르면 데이터베이스 복사본은 일관된 스냅샷을 나타내야 합니다. SQLite 온라인 백업 API는 데이터베이스가 활성 상태일 때 일관된 복사본을 만들기 위해 특별히 제공됩니다. 중지된 상태에서 만든 신뢰할 수 있는 복사본이나 데이터베이스를 인식하는 온라인 백업이 기록 중에 임의로 복사한 파일보다 안전합니다.

또한 장애가 발생한 데이터베이스의 사이드카 WAL 또는 저널 상태가 복원된 복사본과 섞이지 않는지 확인하세요. 타임스탬프가 서로 다른 파일을 혼합하지 말고 완전한 신뢰 가능한 복구 자료로 시작하세요.

백업 복사본을 그대로 유지한 채 시작하고 Home Assistant가 검증하도록 하기

복원한 데이터베이스를 올바른 소유자 및 권한과 함께 예상 경로에 배치한 다음 Home Assistant를 시작하고 Recorder 로그를 확인하세요. 첫 번째 검증 부팅 중에는 정리, 재압축 또는 수동 SQL 유지 관리를 실행하지 마세요.

데이터베이스 스키마가 현재 Home Assistant 버전보다 오래된 경우 Recorder에서 마이그레이션이 필요할 수 있습니다. 성능을 판단하거나 다시 시작하기 전에 해당 과정이 완료되도록 기다리세요. 동일한 복원 데이터베이스를 두고 이전 버전과 최신 Home Assistant 버전을 번갈아 실행하지 마세요. 스키마 마이그레이션은 일반적인 다운그레이드 수단이 아닙니다.

실용적인 복구 안내에서도 동일한 통제 원칙을 보여 줍니다. 복사본으로 작업하고 교체 데이터베이스가 준비된 후에만 Home Assistant를 시작하세요.

실패한 데이터베이스를 제거하기 전에 기록 검증

  • Recorder가 손상 또는 마이그레이션 오류 없이 시작되는지 확인하세요.
  • 백업에 존재해야 하는 시간 범위의 기록 및 로그북을 여세요.
  • 해당 기록이 중요하다면 장기 통계 또는 에너지 데이터를 확인하세요.
  • 새로운 상태 변경을 발생시키고 복원 시점 이후의 새 기록이 기록되는지 확인하세요.
  • Home Assistant를 한 번 다시 시작하고 Recorder가 동일한 데이터베이스를 다시 여는지 확인하세요.

ZimaSpace의 데이터베이스 일관성이 보장된 백업 및 복원 테스트 가이드가 그대로 적용됩니다. 백업은 데이터베이스가 이를 받아들이고 복원 후 애플리케이션이 새로운 상태를 기록할 수 있을 때만 신뢰할 수 있습니다.

이 승인 테스트가 통과할 때까지 실패한 데이터베이스를 보관하세요. 실패한 데이터베이스에 더 최신 기록이 남아 있을 수 있으며, 신뢰할 수 있는 백업이 예상보다 오래된 경우 이를 검토하거나 선택적으로 복구할 수 있습니다.

FAQ

자동화를 되돌리지 않고 Home Assistant 기록만 복원할 수 있나요?

현재 Home Assistant 구성이 정상이고 신뢰할 수 있는 Recorder 데이터베이스 복사본이 있다면 가능합니다. 기록을 중지하고 현재 데이터베이스를 보존한 다음 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.