$ mysqldump -u usuario -p banco > copia_do_banco.sql
Para passar o arquivo copia_do_banco.sql para outro servidor basta usar sftp/ssh:
$ scp copia_do_banco.sql usuario@outro_server.com:/backup
Para subir:
$ mysql -u usuario -p banco < copia_do_banco.sql
Se você estiver no console do mysql pode optar por:
mysql> USE banco;
SOURCE copia_do_banco.sql
Creio que todo DBA ou Sysadmin sabe disso. Mas temos outros formas de se fazer isto, basta usarmos alguns recursos disponível no shell *nix.
Podemos executar estes mesmo comando em uma só linha, esta forma só deve ser usada em VPN ou redes seguras:
$ mysqldump -u usuario -p banco | mysql -h outro_server banco -u usuario -p
Se você não tem acesso remoto ao banco de dados, podemos usar o ssh:
$ mysqldump -u usuario -p banco | ssh usuario@outro_server.com mysql -u usuario -p banco
Você ainda pode copiar apenas uma tabela do banco para um servidor remoto:
$ mysqldump -u usuario -p banco tabela | ssh usuario@outro_server.com mysql -u usuario -p banco
Estes são alguns exemplos que dá pra fazer com o shell *nix. Prefiro o velho shell e indispensável à sistemas que prometem o mundo.
Imagine que vc possua dois servidores MySQL, sendo que um deles chamaremos de ORIGEM (onde estão os dados de origem) e o outro que chamaremos de DESTINO (onde os dados serão copiados).
Para clonar uma base de dados MySQL localizado num servidor de ORIGEM para um servidor DESTINO, basta digitar o comando no servidor de DESTINO:
mysqladmin create NOME_DO_BANCO_DESTINO -u USUARIO_DESTINO --password=SENHA_DESTINO && mysqldump -h SERVIDOR_ORIGEM -u USUARIO_ORIGEM --password=SENHA_ORIGEM NOME_DO_BANCO_ORIGEM --add-drop-table --add-locks --extended-insert --single-transaction --quick --lock-tables=false | mysql -u USUARIO_DESTINO --password=SENHA_DESTINO NOME_DO_BANCO_DESTINO
Obviamente, se houver necessidade de duplicar a base de dados num mesmo servidor MySQL, basta que o SERVIDOR_ORIGEM e SERVIDOR_DESTINO sejam omitidos, e que o nome do banco de dados DESTINO seja diferente do de ORIGEM. O primeiro trecho do código, onde inicia com mysqladmin e termina em && deverá ser eliminado se o servidor de DESTINO já contiver o banco a ser criado, caso contrário ocorrerá um erro e todo o script será interrompido.
0 comentários:
Postar um comentário