" Park 기술 블로그 "
# 카테고리
# 도구
[Android 안드로이드] SQLite DB 파일
2021-07-15 17:15:13

 개인 프로젝트로 개발하고 있는 앱에서 데이터를 백업하고 복원하는 기능을 구현하고 있었다. 그러던 중 발견했던 궁금증이 생겨서 기록하려고 한다.

이전 게시글을 통해 디바이스에 저장된 파일들을 확인할 수 있는 방법을 소개했었다. 그 방법과 동일하게 SQLite의 DB 파일도 확인할 수 있는데 확인해보니까 DB파일만 있는 것이 아니라 [DB파일 이름]-shm 파일과 [DB파일 이름]-wal 파일이 있었다.

 

 구글링을 통해 찾아본 결과 [DB파일 이름]-wal은 트랜잭션이 실패할 때 SQLite가 변경 사항을 롤백할 수 있도록 하는 롤백 저널의 대체품이라고 한다. [DB파일 이름]-wal의 내용은 주기적으로 DB 파일로 이동되지만, 프로세스가 종료될 때마다 발생한다는 보장이 없기 때문에 [DB파일 이름]-wal이 생성되면 각 SQLite DB는 DB 파일과 [DB파일 이름]-wal 파일 모두 보존해야 한다. 기본적으로 SQLite는 [DB파일 이름]-wal 파일이 1,000페이지의 임계값 크기에 도달하면 자동으로 체크포인트를 수행한다고 한다. 그리고 [DB파일 이름]-shm은 임시 데이터만 포함하는 공유 메모리 파일이다. 따라서 백업의 경우 DB 파일과 [DB파일 이름]-wal 파일이 중요하다.

 

참고했던 레퍼런스다. ( https://www.sqlite.org/wal.html )

0
# 댓글 + 새 댓글 작성
# 새 댓글 작성
댓글 암호는 댓글 삭제 시 필요합니다.
# 님에게 답변 작성
대댓글 암호는 댓글 삭제 시 필요합니다.
# 님의 댓글 삭제
댓글 작성 시 입력했던 암호를 입력해주세요.
아직 댓글이 없습니다