Backup MYSQL + java + output file stream

9 respostas
alandiniz

To hoje o dia inteiro pesquisando sobre o assunto… eu achei vários tópicos, mais todos eles fazem a mesma coisa… cria um arquivo com o bkp no servidor…

Teria como gerar esse arquivo e aparecer pra download?

eu fiz este método abaixo e funciona normal… gera o arquivo no servidor certim… + eu queria que quando o cara clicasse no botão pra gerar o bkp, aparecesse um download pro cara baxa pra maquina que ele tiver…
obs.: java web ^^…

public void backup() throws IOException { try { Runtime.getRuntime().exec("cmd /c mysqldump.exe -uroot -proot webexame > " + caminhoBkp); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Backup realizado com sucesso", null)); } catch (Exception e) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao fazer backup, por-favor, entre em contato com o Administrador.", null)); } }

9 Respostas

fernandopaiva

Pera ae, deixa eu ver se entendi.

Vc quer q quem esteja usando seu sistema apareça uma tela de BKP ???
Esta usando Java Web Start ???

Para fazer o bkp do mysql faça assim.

String nomeBkp = "sysBkp.sql";
String dump = "cmd.exe /c mysqldump --user=root --password=root sysdb > /MySystem/backup/" + nomeBkp;
Runtime bkp = Runtime.getRuntime();
bkp.exec(dump);

Agora responda minhas incógnitas.

t+

alandiniz

eu uso java pra web… JSF2.1 + Hibernate…
agora nao sei oq eh Java Web Start…

esse jeito q vc coloco ai eh a mesma coisa que eu fiz só que um poco diferente… como eu disse, eu consegui gerar o arquivo com o BKP…

  • oq eu queria que fizesse é quando o cara lá na página (xhtml) clicar no botão “Gerar bkp” aparecesse pra baxa…
alandiniz

na verdade se eu colocar um caminho fixo pra criar o arquivo de bkp e em seguida eu ler esse arquivo e jogar na página pra download já iria resolver…
eu só nao sei joga na página pra download…

fernandopaiva

agora entendi o q vc quer fazer.

Uma maneira simples de vc fazer isso eh criar um servidor FTP para o cliente, ai e so gerar seu arquivo de bkp dentro da pasta do FTP e baixa-lo de la usando comando de ftp interno para isso, acho q seria a maneira mais simples.
agora se o servidor estiver standalone(na rede do seu cliente), entaum pode gerar o arquivo e logo apos usar o cp(Unix) ou o copy(Windows)…

use o JFileChooser para o cliente escolher onde quer gravar o arquivo. http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JFileChooser.html

t+ e boa sorte.

luxu

tá meio confuso, vc ker q após gerar o backup ele dê a opção de salvar(baixar) na mákina?

alandiniz

luxu é isso mesmo

o cara (administrador, gerente ou sei la) vai entra no site/sistema, na parte administração
vai clicar em “Fazer bkp” e vai aparecer uma caixa pra ele salvar o arquivo no pc dele… como se estivesse fazendo o download de uma musica na internet… coisa simples

acredito que da pra faze assim:
1- gero o arquivo.sql no servidor
2- leio esse arquivo em um array de bytes… ou sei lá…
3- mando esse arquivo pro cara baxa… pra página
4- depois deleto o arquivo.sql do servidor…

alandiniz

CONSEGUI :smiley:
primeiro ele pede o nome do arquivo (ex.: backup19-10-11.sql)
ai vc clica em salvar, ele salva o arquivo no servidor com esse nome
depois vc clica em download e ele pega esse arquivo e joga na tela pra download

… agora vo faze pra apaga esse arquivo após o download =)

quem quiser o código, segue o link: http://j2diniz.com/index.php/7-geral/7-backup-mysql-java-download

luxu

nem abriu o link…

alandiniz

luxu, num abriu o j2diniz.com???

oxi, aki no meu trampo e no servidor em casa e na casa de um amigo meu ta abrindo…
e ontem entrei na facu tbm abriu…

tenta só www.j2diniz.com pois o post ta na primeira página…

Criado 18 de outubro de 2011
Ultima resposta 19 de out. de 2011
Respostas 9
Participantes 3