Как создать резервную копию встроенного ядра базы данных H2 во время работы?

Я хотел бы создать веб-приложение с движком базы данных H2. Тем не менее, я до сих пор не знаю, как создать резервную копию данных во время работы базы данных после прочтения этого руководства:

http://www.h2database.com/html/tutorial.html#upgrade_backup_restore

Выводит ли H2 свой сохраненный файл где-нибудь в файловой системе? Могу ли я просто создавать резервные копии выходных файлов?

Ответы

Ответ 1

H2 хранится в файловой системе, но было бы лучше использовать инструменты резервного копирования, которые вы ссылаетесь, потому что формат файла может меняться между версиями H2. Если вы обновите H2, он больше не сможет читать файлы, созданные в предыдущей версии. Кроме того, если вы скопируете файлы, которые он использует, я бы рекомендовал сначала закрыть базу данных, иначе скопированные файлы могут быть нечитаемыми через H2.

Местоположение файла зависит от указанного вами URL-адреса jdbc. См. FAQ: http://www.h2database.com/html/faq.html

Ответ 2

В соответствии с учебником, с которым вы связались, не рекомендуется делать резервную копию базы данных, копируя файлы во время работы. Вот правильный способ резервного копирования базы данных во время ее запуска (Scala код, но может быть легко преобразован в Java) (Источник):

val connection:java.sql.Connection = ??? // get a database connection 
connection.prepareStatement("BACKUP TO 'myFile.zip'").executeUpdate