嵌入式H2数据库引擎运行时如何备份?

2022-09-01 20:49:39

我想用H2数据库引擎构建一个Web应用程序。但是,在阅读本教程后,我仍然不知道如何在数据库运行时备份数据:

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

H2 是否将其存储的文件输出到文件系统中的某个位置?我可以只备份输出的文件吗?


答案 1

H2 存储在文件系统上,但最好使用您引用的备份工具,因为文件格式可以在 H2 版本之间更改。如果升级 H2,它可能无法再读取它在早期版本中创建的文件。另外,如果您复制它使用的文件,我建议您先关闭数据库,否则复制的文件可能会被H2读取。

文件的位置取决于您指定的 jdbc url。请参阅常见问题解答: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 

推荐