Como posso exportar regularmente de um banco de dados para outro (no mesmo servidor) diariamente?

1

Execução de um site beta (plataforma diferente do site ativo).

Já possuo processo de exportação / importação via script php. Obtém automaticamente dados de um banco de dados e exporta para outro.

Desejo executar automaticamente essa transferência (pelo menos diária) para atualizar o site beta com conteúdo do site ativo.

Qual é a minha opção mais simples (além de executar manualmente o script)?

Eu estava pensando:

  1. Escrevendo funcionalidades adicionais no script para acompanhar a última execução ou execução com base em um registro de data e hora do servidor definido

  2. Escrevendo funcionalidades adicionais para verificar banco de dados para dados novos / atualizados (não tem idéia se isso é possível)

  3. ?????

Além disso, talvez isso seja mais adequado para um site diferente (não serverfault), me avise.

    
por Daniel Fris 21.01.2012 / 20:15

3 respostas

3

Você deve ser capaz de fazer isso com um cronjob simples que faça um sqldump do primeiro, depois o sqlimport e reinicie a segunda instância do SQL (se necessário ...)

Pessoalmente, gosto de adicionar declarações 'logger' aos meus cronjobs para anotar um passo que está a começar e outro quando terminar para poder acompanhar o tempo que as coisas demoram.

    
por 21.01.2012 / 20:36
1

Sup, Dan!

Cron é o caminho a percorrer. Se você tiver acesso ssh ao seu servidor, você pode fazer isso:

sudo crontab -e

Para abrir as abas do cron ... você pode simplesmente adicionar uma linha mostrando o script / comando a ser executado:

1 1 * * * php /path/to/script.php

Cron é executado com base em:

minute, , day of month, month, day of week 

Então, 1 1 * * * = primeiro minuto da primeira hora de cada dia de cada mês de cada semana

Os * são curingas.

Você precisará ter a interface de linha de comando do PHP em execução para fazer isso. Uma alternativa seria escrever um script bash / shell que executa a forma de transferência na linha de comando. Se você já tem o script PHP, eu ficaria com isso e o chamaria com o cron.

    
por 21.01.2012 / 21:59
0

Você pode usar mysqlbackup para despejar seu conteúdo do banco de dados em um arquivo sql.

Esse arquivo pode ser importado com o superusuário mysql (normalmente chamado root) apenas analisando esse arquivo.

Não há PHP envolvido nisso ...

    
por 21.01.2012 / 23:20