erison 63 Denunciar post Postado Setembro 13, 2012 pessoal tenho uma base na web e quero que toda noite ela replique para minha base interna. ex: interna:localhost externa:100.100.10.100 assim , acho que o modo vai viavel para isso. era criar. um bat para baixar o banco. e depois restaurar na minha base local. tentei execultar esse comando no meu pront mysqldump > -hlocalhost -usuaurio -psenha > c:\backup.sql mas não deu certo. caso tenha outra maneira mais simples e segura me informa. Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 13, 2012 Bom dia amigo, Eu configuraria Master-Slave: http://imasters.com.br/artigo/22821/mysql/usando-o-replication-master-slave-no-mysql É a única forma que eu conheço de você replicar automaticamente as coisas. Já para exportar em arquivo .sql você teria que importar de volta na tua local. Toda noite eu faço backup de um servidor meu também, mas apenas backup não importo em outro lugar. É muito simples, segue trecho do meu script de backup responsável pelo banco de dados (Para Linux): #! /bin/bash # Executa Backup automatico do MySQL, Apache, arquivos de configuracoes e outros # dir_backup="/home/diego/backup" dir_databases="$dir_backup/databases" # Se o diretorio de backup não existir, criamos if [ ! -d "$dir_backup" ]; then mkdir "$dir_backup" fi # MySQL # Se o diretorio não existir, criamos if [ ! -d "$dir_databases" ]; then mkdir "$dir_databases" fi mysql_user="usuario" mysql_password="senha" # Backup total de todos os bancos mysqldump -u $mysql_user -p$mysql_password -e -x -A > $dir_databases/all.sql # Armazena o nome de todos os bancos, exceto mysql, information_schema e performance_schema sql_database=$(mysql -u$mysql_user -p$mysql_password -Bse 'SHOW DATABASES WHERE `database` <> "information_schema" AND `database` <> "mysql" AND `database` <> "performance_schema" ') # Le o nome dos bancos armazenados na variavel acima e faz backup de cada um separadamente for db in ${sql_database}; do dir_db="$dir_databases/$db" # Se o diretorio do banco nao existir, criamos if [ ! -d "$dir_db" ]; then mkdir "$dir_db" fi # Backup do banco num arquivo com o nome do mesmo mysqldump -u $mysql_user -p$mysql_password -B $db > $dir_db/$db.sql done Tendo o script em mãos basta você colocar no crontab para executar todo horário pré-determinado. Se quiser importar do outro lado automaticamente, basta fazer outro script no host de origem para transferir os arquivos até o host de destino utilizando rsync ou outra opção da sua escolha, colocar este script no crontab pra ser executado digamos 10 minutos após o de backup. Na base de destino deverá ter um script pra importar os arquivos sql trazidos. Para Windows eu não sei fazer, por isso sugeri o Master-Slave que seria o mais adequado neste seu caso. Espero que seja útil, fico a disposição. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 13, 2012 eu ja conseguie fazer o backup fazendo com o seguinte codigo. "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" -uroot -h190.168.1.100 -p*** --all-databases >"C:\BackupMysql\Hades.sql" mas não consigo restaurar assim "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" -uroot -p**** < "C:\BackupMysql\Hades.sql" no cmd mostra a messagem:O sistema não pode encontrar o arquivo especificado. Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 13, 2012 O código de baixo e de cima estão iguais... O de cima não deveria ter o " > " ao invés de " < " ? Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 13, 2012 tinha me confudido. agora ta certo. o de cima faz o backup, mas o debaixo não restaura, pq? Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 13, 2012 Porque não usa o mysqldump pra restaurar, apenas mysql. Ou seja, exemplo: # Exporta o banco imasters para o arquivo imasters.sql mysqldump -u root -psenha imasters > imasters.sql # Importa o arquivo imasters.sql para o banco imasters mysql -u root -psenha imasters < imasters.sql O comando de cima executa no host de origem e o de baixo no host de destino. A disposição, abraço. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 13, 2012 mas esse imaster que você coloco no caso ea tabela. eu quero e todo banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 13, 2012 Não, é o banco chamado imasters. Se tu quiser todos os bancos simplesmente não informe nenhum banco, assim como no primeiro exemplo que eu postei lá em cima: # Backup total de todos os bancos mysqldump -u $mysql_user -p$mysql_password -A > $dir_databases/all.sql A opção -A exporta todos os bancos. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 13, 2012 repare no meu codigo que eu fiz o backup eu executo um mysqldump.exe para poder executar o codigo para restaurar tb e mysqldump.exe pq olhei na pasta bin/ lá tem mysqlimport.exe e esse? pq ele so executa se eu chamar esse arquivo. acho que isso que você ta falando so funciona no linux. mais eu uso windows. tipo para fazer de rodos os bancos a opção -a não funciona. apenas --all-databases Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 13, 2012 Não é -a minusculo, é -A maiúsculo, que equivale ao --all-databases. Amigo, para restaurar é o mysql.exe, se tiver dúvidas pesquise na net e comprove a resposta. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 17, 2012 resolvido Compartilhar este post Link para o post Compartilhar em outros sites