Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoa,
Gostaria da opinião de vocês sobre como trabalhar com dois banco de dados.
Digo: O sistema é Php, irá roda no provedor e também em uma intranet (localhost) do cliente...
Ocorre que preciso atualizar as informações do DB On-line para o Off-line; pelo menos um vez por dia.
O que vocês acham melhor:
a) Criar rotina para ler tabelas por tabela do DB On-Line e ir fazendo update (nas mesma tabelas) no DB Off-Line.
b) Baixar o banco todo do On-Line para o Off-line.
Detalhe complicador: Tal sistema usa banco de dados MySql e MS Access ao mesmo tempo.
Por isso a dúvida.
Agradeço a eventuais opiniões.
Caso via PHP (servidor) você também consiga acessar o banco offline, sugiro que faça um script de migração dos dados do MySQL para o MS Access e agende a execução deste script no servidor diariamente (ou no intervalo que precisar).
No script PHP você abre as duas conexões e pra cada tabela você faz:
SELECT no MYSQL
INSERT ou UPDATE no MS ACCESS
foreach(tabeladomysql):
$query = 'SELECT DADOS DA TABELA DO MYSQL';
while(dados na tabela do mysql):
// INSERT NA MESMA TABELA NO MS ACCESS
endwhile;
endforeach;Se o banco off não for modificado:
Se o banco off também for modificado:
Fazendo essa rotina acima e agendando, evita trabalho manual no futuro.
Se você quiser fazer isso manualmente, encontrei uns dois softwares que aparentemente fazem isso (não testei):
http://convertdb.com/access/mysql
http://www.bullzip.com/products/a2m/info.php
Material para leitura para ajudar na migração:
http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/active-grid.html
No mysql é possível exportar o banco de dados para um arquivo SQL com o comando https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
Andersondanilo, obrigado por opinar...
Mais estes comandos são mais focados para console (não sei bem se é assim a expressão)... Via PHP, não rodarão em servidores compartilhados... Pois precisaram de previlégios,permissões,etc.
Nas hospedagens comuns, tipo Uolhost e Locaweb... Creio que não funcionarão. Pesquisando(antes) achei alguns exepomplos de backups... Teste não rodou... Algume teria algum exemplo que faça o backup MySQL via codigo PHP considerando as limitações de um servidor compartilhado?
>
Caso via PHP (servidor) você também consiga acessar o banco offline, sugiro que faça um script de migração dos dados do MySQL para o MS Access e agende a execução deste script no servidor diariamente (ou no intervalo que precisar).
No script PHP você abre as duas conexões e pra cada tabela você faz:
SELECT no MYSQL
INSERT ou UPDATE no MS ACCESS
foreach(tabeladomysql):
$query = 'SELECT DADOS DA TABELA DO MYSQL';
while(dados na tabela do mysql):
// INSERT NA MESMA TABELA NO MS ACCESS
endwhile;
endforeach;Se o banco off não for modificado:
Se o banco off também for modificado:
Fazendo essa rotina acima e agendando, evita trabalho manual no futuro.
Se você quiser fazer isso manualmente, encontrei uns dois softwares que aparentemente fazem isso (não testei):
http://convertdb.com/access/mysql
http://www.bullzip.com/products/a2m/info.php
Material para leitura para ajudar na migração:
http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/active-grid.html
Diego, obrigado por opinar.
Estou mais inclinado a realmente pensar em criar rotinas para ler um banco e atualizar o outro (estrutura de talelas iguas)... Voce falou um item importante os campos auto_increments... Muito obrigado. Vou pensar em como tratar isso. E também, como saber em termos de logica e/ou código...
Quando um banco é mais atual que o outro? Por verificação de data, algum tipo de log???
Veja se acha algo que lhe ajude aqui - http://www.phpclasses.org/search.html?words=backup+mysql&x=5&y=9&go_search=1
No mysql é possível exportar o banco de dados para um arquivo SQL com o comando https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html