Так как в MySQL для этих целей есть стандартное средство mysqldump, то в вашем случае с Java есть два варианта.
Долгий и сложный:
1) Подключаетесь к базе и делаете
SHOW TABLES
2) Для каждой таблицы делаете
SHOW CREATE TABLE название_таблицы, чтобы получить SQL-запрос на создание такой же таблицы.
3) По каждой таблице делаете
SELECT, чтобы получить данные, из которых затем формируете
INSERT запросы.
4) Сохраняете всё это в файл - и вот он ваш бэкап.
Проще, но с заморочками:
1) Запустите утилиту
mysqldump, если она установлена на сервере, где вы запускаете Java-программу, используя
Runtime.getRuntime().exec -
www.mkyong.com/java/how-to-execute-shell-command-f...Чтобы подключаться к удаленным серверам MySQL, нужно запускать mysqldump с параметром -h, который указывает на fqdn или ip сервера баз данных. На сервере баз данных должен быть открыт порт, а права пользователя базы данных должны позволять подключаться к ней удаленно.
Если бы у вас подобная задача стояла на PHP, то я бы рекомендовал воспользоваться вот этой замечательной утилитой:
https://github.com/clouddueling/mysqldump-php