2011-04-21 5 views
3

로깅 데이터를 SQLite3 데이터베이스에 저장하는 프로그램이 있습니다. 프로그램이 실행되는 동안 데이터베이스를 백업하고 싶습니다. SQLite 온라인 백업 API (http://www.sqlite.org/backup.html)를 사용하여이 작업을 완료했지만 백업이 완료 될 때까지 프로세스가 지연됩니다 ...SQLite의 증분 백업을 어떻게 수행합니까?

SQLite에서 증분 백업을 수행하는 방법을 아는 사람이 있습니까? 백업을 실행할 때마다 데이터베이스 전체가 아니라 새 데이터 만 백업하는 것이 바람직합니다.

답변

3

문제에 대한 일반적인 해결책이 없다고 생각합니다.

로깅 데이터에 타임 스탬프가 있고 구조가 비교적 간단하면 별도의 프로세스를 실행하여 최근 데이터를 추출하고 을 백업 스트림에 삽입 할 수 있습니다.

1

정확하게 이것은 litereplica입니다.

각 트랜잭션 커밋에서 수정 된 페이지 만 데이터베이스 복제본으로 복사됩니다.

이것은 페이저 레벨에서 내부 SQLite 트랜잭션 엔진을 사용하여 수행되므로 매우 신뢰할 수 있습니다.

트랜잭션 중간에 연결이 끊어지면 복제본 측에서 트랜잭션을 롤백하여 데이터베이스 무결성을 유지합니다.