- SQLite 데이터베이스를 컴퓨터 간에 복사하는 더 빠른 방법에 대한 설명임
- 데이터베이스의 인덱스가 복사 속도를 느리게 하는 주요 원인임
- SQLite의 .dump 명령어를 사용하여 데이터베이스를 텍스트 파일로 덤프할 수 있음
- 텍스트 파일은 원본 데이터베이스보다 작으며, 압축하면 더욱 작아짐
- 이 방법은 대용량 데이터베이스를 더 빠르고 안정적으로 복사할 수 있게 해줌
SQLite 데이터베이스를 컴퓨터 간에 더 빠르게 복사하는 방법
- 원격 서버에 저장된 SQLite 데이터베이스를 로컬 컴퓨터로 복사하는 방법에 대한 설명임
- 초기 프로젝트에서는 rsync 명령어를 사용하여 간단히 복사할 수 있음
- 데이터베이스가 커지면 복사 속도가 느려지고 신뢰성이 떨어짐
데이터베이스 덤프를 텍스트 파일로 만들기
- SQLite는 .dump 명령어를 사용하여 데이터베이스를 텍스트 파일로 덤프할 수 있음
- 이 텍스트 파일은 SQL 문으로 구성되어 있으며, 원본 데이터베이스보다 작을 수 있음
- 인덱스는 텍스트 파일에서 단일 라인으로 줄어들어 저장 공간을 절약할 수 있음
압축을 통한 저장 공간 절약
- 텍스트 파일은 압축하면 더 작아짐
- 예를 들어, 원본 SQLite 데이터베이스가 3.4GB인 경우, gzip으로 압축한 텍스트 파일은 240MB로 줄어듦
- 압축된 텍스트 파일을 다운로드하면 데이터베이스 복사가 훨씬 빨라짐
새로운 ssh+rsync 명령어
- 서버에서 gzip으로 압축된 텍스트 파일을 생성하고 로컬 컴퓨터로 복사한 후 데이터베이스를 재구성함
- 서버에서 압축된 텍스트 파일을 생성: ssh username@server "sqlite3 my_remote_database.db .dump | gzip -c > my_remote_database.db.txt.gz"
- 로컬 컴퓨터로 파일 복사: rsync --progress username@server:my_remote_database.db.txt.gz my_local_database.db.txt.gz
- 압축 해제 및 데이터베이스 재구성 후 로컬 파일 삭제
데이터베이스 덤프는 안정적인 복사 소스임
- 데이터베이스 복사 중 업데이트가 발생하면 rsync가 잘못된 데이터베이스 파일을 생성할 수 있음
- 텍스트 덤프를 생성하여 안정적인 복사 소스를 제공함으로써 이러한 문제를 해결할 수 있음
- 이 방법은 대용량 데이터베이스 작업 시 시간을 절약하고 다운로드를 더 빠르고 신뢰성 있게 만들어 줌