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 child = 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