Eu tenho um arquivo SQL de backup de 250 MB, mas o limite para a nova hospedagem é de apenas 100 MB ...
Existe um programa que permite dividir um arquivo SQL em vários arquivos SQL?
Parece que as pessoas estão respondendo à pergunta errada ... então vou esclarecer mais:
Eu só tenho o arquivo de 250 MB e só tenho a nova hospedagem usando o phpMyAdmin, que atualmente não possui dados no banco de dados. Preciso pegar o arquivo de 250 MB e enviá-lo para o novo host, mas há um limite de tamanho de upload de arquivo de backup SQL de 100 MB. Eu só preciso pegar um arquivo muito grande e dividi-lo em vários arquivos, cada um contendo apenas instruções SQL válidas completas (nenhuma instrução pode ser dividida entre dois arquivos).
Respostas:
De Como eu divido a saída do mysqldump em arquivos menores?
fonte
A maneira mais simples de dividir o arquivo de backup é usar um software
sqldumpsplitter
que permita dividir o arquivo db em vários arquivos db. Faça o download aquiOu então use este comando do terminal.
Aqui, 600 é o número de linhas que você deseja ter em seus arquivos divididos. E os dois argumentos são a origem e o destino dos arquivos, respectivamente.
NOTA: você deve verificar os arquivos divididos, não divide nenhum comando.
fonte
split
eu recomendo usarcsplit
. Ele não será dividido logo após um determinado número de linha, que pode estar entre uma lista deINSERT
valores, por exemplo. Você pode passar uma regex para identificar linhas nas quais dividir. Use-o da seguinte maneira, exemplo : `csplit -kdump.sql '/ ^ CREATE TABLE. * /' '{900}' 'Isso dividirá seu arquivo de despejo antes de cadacreate table …
instrução. Mude isso para suas necessidades. (Pela maneira que eu passar{900}
em vez de{*}
porque eu recebo um erro "csplit: *}: contagem de repetição" , talvez apenas um problema no MacOS?)Eu escrevi mysqldumpsplitter (shell script), que divide os bancos de dados / tabelas conforme as instruções de uma maneira rápida e fácil. Veja todos os casos de uso possíveis de como extrair do mysqldump .
fonte
Este código fará exatamente o que você deseja (e é de código aberto):
https://web.archive.org/web/20160313044916/http://rodo.nl/index.php?page=mysql-splitter
Ele permite que você divida qualquer arquivo SQL em vários arquivos menores (você pode definir o tamanho máximo). A sintaxe SQL será mantida correta e funciona com a sintaxe de consulta 'inserção múltipla'.
Espero que isto ajude!
fonte
1) Você tem a opção de fazer upload do arquivo por outro método, por exemplo: scp ou ftp, e depois restaurá-lo a partir do arquivo local?
2) Seu ISP pegará o arquivo em CD e o carregará para você?
3) Você pode restaurar o arquivo em um servidor local e criar uma série de arquivos de backup usando critérios específicos para manter os tamanhos individuais baixos?
4) Você pode dividir o arquivo manualmente e depois arrumar os comandos SQL no final dos arquivos?
fonte
4 was my first thought, but I can't even open the large file in notepad or any editor
- O Notepad ++ pode lidar com eles muito bem. olhar outra pessoa em superuser.com/questions/34749/...Você pode dividir um arquivo grande no Eclipse. Eu tentei um arquivo de 105 GB no Windows com êxito:
Basta adicionar a biblioteca MySQLDumpSplitter ao seu projeto: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/
Nota rápida sobre como importar:
fonte
Também tive esse problema e decidi codificar um pedaço de código extremamente eficiente em termos de memória e CPU que divide um único arquivo .sql em vários (um por tabela).
Eu tive que escrevê-lo, pois qualquer outra solução que encontrei não estava funcionando suficientemente bem. Em um dump de 16 GB, eu consegui dividi-lo em menos de 2 minutos.
O código e as instruções estão disponíveis na página do projeto no github
fonte
Existem algumas opções se você pode executar um script bash ou perl. Experimente este em yoodey.com
fonte
Em vez de dividir o arquivo, você pode usar um cliente MySQL na sua máquina local e conectá-lo ao banco de dados MySQL remoto. Eu uso o HeidiSQL e achei muito bom.
É claro que pode demorar um pouco para enviar os 250 MB de instruções SQL pela Internet.
Você também pode experimentar o BigDump
fonte