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


24

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

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

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

답변:


34

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

pragma integrity_check;

로부터 문서 :

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

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


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.