Как выполнить резервное копирование встроенного ядра базы данных H2 во время его работы? - PullRequest
17 голосов
/ 10 января 2010

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

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

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

Ответы [ 2 ]

13 голосов
/ 10 января 2010

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

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

8 голосов
/ 02 января 2016

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

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