- Explicação de um método mais rápido para copiar bancos de dados SQLite entre computadores
- Os índices do banco de dados são a principal causa da lentidão na cópia
- O SQLite permite fazer um dump do banco de dados em um arquivo de texto usando o comando
.dump
- O arquivo de texto é menor que o banco de dados original e, quando comprimido, fica ainda menor
- Esse método permite copiar bancos de dados grandes de forma mais rápida e confiável
Como copiar um banco de dados SQLite entre computadores mais rapidamente
- Explicação de como copiar um banco de dados SQLite armazenado em um servidor remoto para o computador local
- Em projetos iniciais, é possível copiar simplesmente usando o comando
rsync
- À medida que o banco de dados cresce, a velocidade de cópia diminui e a confiabilidade piora
Criando um dump do banco de dados em um arquivo de texto
- O SQLite permite fazer um dump do banco de dados em um arquivo de texto usando o comando
.dump
- Esse arquivo de texto é composto por instruções SQL e pode ser menor que o banco de dados original
- Os índices são reduzidos a uma única linha no arquivo de texto, o que pode economizar espaço de armazenamento
Economizando espaço com compressão
- O arquivo de texto fica ainda menor quando comprimido
- Por exemplo, se o banco de dados SQLite original tiver 3,4 GB, o arquivo de texto comprimido com gzip pode cair para 240 MB
- Baixar o arquivo de texto comprimido torna a cópia do banco de dados muito mais rápida
Novo comando ssh+rsync
- Gera um arquivo de texto comprimido com gzip no servidor, copia esse arquivo para o computador local e depois reconstrói o banco de dados
- Gerar o arquivo de texto comprimido no servidor:
ssh username@server "sqlite3 my_remote_database.db .dump | gzip -c > my_remote_database.db.txt.gz"
- Copiar o arquivo para o computador local:
rsync --progress username@server:my_remote_database.db.txt.gz my_local_database.db.txt.gz
- Descompactar e reconstruir o banco de dados, depois apagar o arquivo local
O dump do banco de dados é uma fonte de cópia confiável
- Se houver atualizações durante a cópia do banco de dados, o
rsync pode gerar um arquivo de banco de dados incorreto
- Criar um dump de texto resolve esse problema ao fornecer uma fonte estável para a cópia
- Esse método economiza tempo ao trabalhar com bancos de dados grandes e torna o download mais rápido e confiável
1 comentários
Comentários do Hacker News
VACUUMVACUUM INTOpara salvar o banco de dados sqliteVACUUMé uma alternativa à API de backup, e o banco de dados de backup resultante fica com tamanho mínimo, reduzindo o I/O do sistema de arquivos--rsyncabledo gzip. Ela reduz um pouco a compressão, mas localiza as diferenças para que não afetem toda a saída comprimida