Restaurando automaticamente um arquivo dump.sql para outro servidor semanalmente

3

Atualmente, estou tentando encontrar uma maneira de restaurar automaticamente um arquivo dump.sql para outro servidor semanalmente. Eu não encontrei o código para fazer isso ainda no mysql ou no prompt de comando, mas estou procurando. O principal problema que posso ver é que o servidor cria dois backups de banco de dados a cada dia, um para cada banco de dados, e o nome muda a cada dia, porque armazenamos a data no nome.

É possível configurar algum código que restaure o arquivo mais novo para cada banco de dados uma vez por mês?

Eu tenho feito muita pesquisa, mas continuo encontrando guias sobre como criar os arquivos de despejo ou como fazer upload de um único arquivo de despejo para um novo banco de dados, mas não consigo encontrar nada sobre isso.

    
por Scott Pack 02.08.2011 / 12:19

4 respostas

2

Basicamente, o que eu faria seria escrever um script bash que fosse executado uma vez por dia / semana / mês.

Aqui está uma lógica (que eu faria)

Dentro do diretório onde os backups estão localizados, você pode pegar a versão mais recente de cada backup desejado editando o UNIQUEPARTHERE

ls -lthr | grep UNIQUEPARTHERE | tail -1 | cut -f9 -d ' '

Por exemplo:

$FILE = ls -lthr | grep DATABASE_BACKUP1 | tail -1 | cut -f9 -d ' '

O comando acima mostrará o backup mais recente de qualquer arquivo que contenha DATABASE_BACKUP1 no nome do arquivo.

Depois disso, é só executar um comando mysql em um servidor de remoção:

mysql --user=mysql_username --password=your_password remote_database_name < $FILE --host=IP_OF_REMOTE_SERVER_GOES_HERE

É claro que esta é uma idéia aproximada de como eu lidaria com isso com base nas suposições que você usa bash e o backup é criado usando mysqldump;)

Boa sorte:)

    
por 21.09.2011 / 11:26
1

Você pode tentar o SQL Scheduler e Reporting Tool do SQLyog, que permite agendar a execução de consultas. Ele tem um agente de trabalho que permite gerar, formatar e enviar e-mails personalizados com resultados retornados de uma consulta. Você pode especificar um arquivo externo (dump.sql no seu caso) ou inserir consulta (s) que você deseja executar usando essa ferramenta. Existe uma opção Salvar & Agende o trabalho usando o Agendador do Windows se precisar que o trabalho seja iniciado automaticamente de acordo com um determinado agendamento.

    
por 20.09.2011 / 09:15
1

o arquivo bash é uma boa ideia

Outra maneira é fazer backup em diretório específico Exportar banco de dados:

mysql>mysqldump -h hostname -u username -p database_name > backup_db.sql

Estou colocando-o no diretório do meu servidor e pode ser acessado como link

Em outro servidor

Basta usar wget link e importar para o db via

mysql> source /home/om/Download/dbname.sql

Você pode automatizar todo o processo em crontab

    
por 21.09.2011 / 14:03
0

Se você estiver usando o unix / linux:

Você poderia usar CRON para executar a tarefa agendada (a cada semana no seu caso)

Em seguida, use a linha de comando mysql em seu script usado pelo CRON para importar o banco de dados para outro servidor.

Para determinar o arquivo mais recente

    
por 20.09.2011 / 09:49

Tags