MySql es una base tan poderosa como sencilla. La funcionalidad de backup mas simple es usando mysqldump . Veamos algo de Codigo.
ACTUALIZADO! Gracias a Mario Gonzalez que ha planteado algunas dudas estamos actualizando este articulo
Este codigo sencillamente va a hacer un dump de la base de datos entera a un file (back.sql). Seria bueno despues de esto utilizar las clases Zip de Java para comprimir el contenido, dado que este file puede ser enorme.
Primero vamos a escribir un metodo bien util para transferir desde un input a un output stream.
public void transfer(InputStream input, OutputStream output) throws Exception {
byte[] buf = new byte[1024];
int len;
while ((len = input.read(buf)) > 0) {
output.write(buf, 0, len);
}
input.close();
output.close();
}
Ahora el backup.
String command = "mysqldump -hlocalhost -umyuser -pmypass -rc:\\back.sql mydb";
java.lang.Process p = Runtime.getRuntime().exec(command);
InputStream input = child.getInputStream();
FileOutputStream output = new FileOutputStream("c:/back.sql");
transfer(input, output);
Ahora vamos a hacer el restore de la informacion que obtuvimos tambien mediante Java.
String command = "mysql mydb --user=myuser --password=mypass < \"c:\\back.sql\""; Process child = Runtime.getRuntime().exec(command); InputStream input = child.getInputStream(); transfer(input, System.out); // escribimos el resultado en el System.out




