it-swarm-ko.tech

SQLite db3 파일이 유효한 / 일관 적인지 어떻게 확인할 수 있습니까?

여러 가지 이유로 라이브 실행중인 프로덕션 시스템 (나쁜 sysadmin 나쁜 sysadmin을 알고 있음)을 복사 한 sqlite version3 db3 파일이 있습니다. 실행할 수있는 sqlite 명령이 있습니까?이 파일에서 모든 데이터를 읽을 수 있는지 확인합니다 (시간이 걸리더라도 신경 쓰지 않습니다).

모든 데이터를 버리고 새로운 파일로 다시 가져 오는 Perl을 해킹하는 것을 고려하고있었습니다. sqlite는 손상된 데이터가 발생하면 예외를 throw 할 것이라고 생각합니다. 더 좋은 방법이 있습니까?

저는 CentOS 5.3 및 sqlite-3.3.6-2입니다

26
hellomynameisjoel

나는 당신이 시도하고 싶다고 생각합니다.

pragma integrity_check;

documentation 에서 :

이 pragma는 전체 데이터베이스의 무결성 검사를 수행합니다. integrity_check pragma는 비 순차적 레코드, 누락 된 페이지, 잘못된 레코드, 누락 된 색인 항목 및 UNIQUE 및 NOT NULL 제한 조건 오류를 찾습니다. integrity_check pragma가 문제점을 발견하면 문제점을 설명하는 문자열이 리턴됩니다 (행당 하나의 열이있는 여러 행으로). [...]

PRAGMA integrity_check 대부분의 검사를 수행하지만 훨씬 더 빠르게 실행되는 PRAGMA quick_check 명령을 참조하십시오.

35
hernan43