IoT HomeNet

Domoticz DB 파일 복구

쪼사마사 2017. 6. 16. 00:38

Domoticz DB 파일 복구


domoticz 는 sqlite3 로 데이터를 저장한다.


domoticz 를 사용하는 큰이유중에 하나는 장기적으로 저장된 (몇년치) 데이터를 그래프로 보여주는 부분이 

훌륭한데 간혹 domoticz DB 가 날아가는 경우가 있다.


데시보드 페이지에 접속했는데 등록해놓은 Device 들이 몽땅 날아가서 없는 허탈한 경우가 있다.


라즈베리파이가 리눅스이다 보니 정전에 취약할 수 있다.



정기적인 백업 스크립트를 이용해서 백업되고 있다 하더라도 

백업된 db 파일 모두가 복구불능인 상태일 때가 있다.

이럴때 몇년에 걸처 쌓여있는 센서 데이터가 날아가면 조금 속상한 상황이 된다.


이럴때 DB 를 살리는 방법을 기록해 둔다.



먼저 sqlite3 가 없다면 설치

apt-get install sqlite3 



문제가된 db 파일의 용량이 적당한지 확인하고 파일을 sqlite3 로 연다.


 sqlite3 domoticz.db



다음 명령으로 파일에 문제가 있는지 확인한다.

pragma integrity_check; 


문제가 없다면 Ok 가 나오지만 안나온다면 db 가 깨진것이다.



덤프 파일을 만든다.

.mode insert

.output dump.sql

.dump

.exit 


dump.sql 파일이 DB 파일 크기에 근접한 크기로 생성된다.

text base 이기 때문에 차이가 있을 수는 있다.



dump.sql 파일로 새로 db 파일을 만들어 낸다.

sqlite3 -init dump.sql repaired.db 


생성된 파일을 문제가된 db 와 교체한다.

물론 domoticz 서비스는 내려놓고 교체해야 한다.