H2 数据库:如何解锁数据库文件以进行备份?

Posted

技术标签:

【中文标题】H2 数据库:如何解锁数据库文件以进行备份?【英文标题】:H2 Database : how unlock a database file for backup copy? 【发布时间】:2020-07-06 03:32:49 【问题描述】:

我正在使用带有休眠功能的 h2database 1.4.200 版本来保存数据库文件。

我的程序需要定期保存备份,我不关心损坏文件的问题。

查看文档后:http://h2database.com/html/features.html#database_file_locking

我决定使用参数LOCK_FILE=NO。我保存了我的模型并保持实体管理器打开。当我尝试复制 db 文件“data.mv.db”时,即使我使用 Lock_FILE=NO,我的数据库文件也总是被锁定。

参数LOCK_FILE=NO,它工作正常吗? 在 java 中快速复制我的 db 文件有另一种方法吗?

【问题讨论】:

【参考方案1】:

在使用数据库时复制文件的任何尝试都是获取可能损坏的备份的一种方式。

H2 有BACKUP 命令用于在线备份。

BACKUP TO 'filename.zip'

此命令使用数据库文件的一致副本创建 ZIP 存档。

【讨论】:

谢谢,它解决了我的问题。信息:Connection conn = DriverManager.getConnection(url); Statement st = conn.createStatement(); st.execute("BACKUP TO 'backup.zip'"); conn.close();

以上是关于H2 数据库:如何解锁数据库文件以进行备份?的主要内容,如果未能解决你的问题,请参考以下文章

恢复 h2 数据库

H2 数据库损坏

配置嵌入式 H2 用户以进行分发

用于备份 h2 数据库的 SQL“SCRIPT”命令

无法使用 java 使用 Backup.execute 备份我的 h2 数据库

MYSQL增量备份(日志备份)