Dividir arquivo sql grande pela localização da string OU iniciar o sql da última falha

1

Eu tenho um arquivo sql de 15GB que é um backup de um banco de dados. O problema que tenho é que, no meio do processo, ele falhou. Felizmente, eu sei de qual mesa pegar.

Existe uma maneira de dividir esse arquivo SQL pelo ponto inicial da tabela que preciso pegar ou talvez fazer com que o próprio mysql faça isso?

Obrigado

    
por David 06.12.2011 / 17:50

2 respostas

1

Você pode usar sed para dividir o arquivo usando intervalos

sed -n '/Start Text/,/End Text/p' >part.sql

Isso iniciará a impressão quando /Start Text/ for encontrado e continuará imprimindo até que /End Text/ ou fim do arquivo seja atingido. Certifique-se de que Start Text seja exclusivo do ponto de partida e End Text não esteja no arquivo.

    
por 06.12.2011 / 18:04
0

Você pode usar o comando split (procure na opção de contagem de linha), ou você pode usar dd com um byte offset (encontrado usando grep -b ) para extrair do seu dumpfile também.

Aqui está uma postagem no blog que aborda esse processo (essa é uma resposta Eu dei em outro lugar no site e decidiu blogar a solução).

    
por 06.12.2011 / 18:04