Como extrair o backup de tabelas do arquivo de despejo MySQL completo

Como extrair o backup de tabelas do arquivo de despejo MySQL completo

Mysqldump é um utilitário fornecido pelo MySQL/Mariadb para fazer bancos de dados e tabelas. Geralmente, tomamos um despejo completo de banco de dados regularmente e o mantemos. Mas algumas vezes precisamos recuperar uma única ou 2-3 tabelas de backup. Então a pergunta se como restaurar uma tabela específica do arquivo de backup completo. Este artigo o ajudará a extrair o backup de tabelas do arquivo de backup completo do banco de dados. Além disso, podemos extrair todas as tabelas de backup em arquivos individuais por tabela.

Etapa 1 - Baixe o script de divisão MySQL Dump

Para dividir um arquivo de backup de banco de dados MySqldump completo em backup de arquivos específicos da tabela separada. Crie um arquivo chamado splitdb.sh e copie o script abaixo.

#!/Bin/Bash #### # Split mysql dump sql arquivo em um arquivo por tabela # com base no http: // blog.tty.NL/2011/12/28/Splitting-A-Database-Dump #### Se [$#-LT 1]; então eco "uso $ 0 dump_file [tabela]" Sair fi se [$# -ge 2]; Em seguida, CSPLIT -S -FETABLE $ 1 "/-Estrutura da tabela para a tabela/" "%-estrutura da tabela para a tabela '$ 2'%" "/-estrutura da tabela para a tabela/" "%40103 Set Time_Zone =@Old_time_Zone%1 1 "caso? -Eq 0] || Sair mv tabela de cabeça de cabeça = "ls -1 tabela* | cauda -n 1" se [$# -ge 2]; Então MV $ FILE Pé mais CSPLIT -B '%D' -S -f $ FILE $ FILE "/40103 SET TIME_ZONE =@old_time_zone/" * mv $ arquivo 1 pé fi para arquivo em 'ls -1 tabela *'; do nome = "Head -n1 $ arquivo | Cut -d $" x60 '-f2' CAT CABT $ FILE FOOD> "$ NOME.SQL "Tabela de pé da cabeça RM RM*
123456789101112131415161718192021222324252627282930313233343536#!/Bin/Bash ##### Split mysql dump sql arquivo em um arquivo por tabela#com base no http: // blog.tty.NL/2011/12/28/Splitting-A-Database-Dump #### Se [$#-LT 1]; então eco "uso $ 0 dump_file [tabela]" exitfi se [$# -ge 2]; Em seguida, CSPLIT -S -FETABLE $ 1 "/-Estrutura da tabela para a tabela/" "%-estrutura da tabela para a tabela '$ 2'%" "/-estrutura da tabela para a tabela/" "%40103 SET [email protegido] _time_zone% 1 "else csplit -s -ftaltable $ 1"/ -estrutura da tabela para a tabela/"* fi [$? -Eq 0] || Sair mV tabela Arquivo da cabeça da tabela = 'ls -1 tabela* | cauda -n 1'if [$# -ge 2]; Em seguida, MV $ File Footelse CSplit -b '%d' -s -f $ arquivo $ arquivo "/40103 set [email protegido] _time_zone/" * mv $ arquivo 1 footfi para arquivo em 'ls -1 tabela* '; Nome = 'Head -n1 $ arquivo | Cut -d $ 'x60' -f2 'CAT CABE.SQL "Tabela de pé da cabeça RM RM*

Este script retirado de https: // gist.Github.com/jasny/1608062.

Etapa 2 - Extraia todas as mesas do despejo

Para este exemplo, tenho um arquivo de despejo chamado mydb.SQL, que eu quero dividir em pequenos backups por mesa. Para isso, criei um novo diretório /opt/splitdb e copiado acima do script com nome splitdb.sh Neste diretório. Agora use o seguinte comando para extrair todas as tabelas em arquivos de backup individuais.

CD /OPT /SPLITDB CHMOD +X SPLITDB.sh ./splitdb.sh mydb.sql #não executa com o comando 'sh'  

Etapa 3 - Extraia a tabela única do despejo

Se queremos extrair apenas uma tabela, podemos usar o comando como abaixo. Por exemplo, eu quero dividir apenas a tabela chamada my_tbl1 e my_tbl2. Extrairá backup no diretório atual com nome my_tbl1.SQL e my_tbl2.SQL.

CD /OPT /SPLITDB CHMOD +X SPLITDB.sh sh splitdb.sh mydb.sql my_tbl1 sh splitdb.sh mydb.sql my_tbl2