【问题标题】:Has HSQLDB some mechanism to save in-memory data to file?HSQLDB 是否有某种机制可以将内存中的数据保存到文件中?
【发布时间】:2011-10-07 17:30:14
【问题描述】:

HSQLDB 是否有某种机制可以将内存中的数据保存到文件中?

据我所知,服务器关闭后,所有内存数据都无法访问。所以我想将所有内存数据保存到文件中。 不幸的是我不能使用BACKUP机制,因为它不能应用于内存数据。

【问题讨论】:

  • 我也想要这个功能。没有违背“Unix哲学”的事实,其中文本应该可以通过管道进出进程。英国媒体报道软件再次获胜。

标签: hsqldb


【解决方案1】:

为此有一个 SQL 命令。试试这个:

SCRIPT '/tmp/data.sql'

详情请见here

【讨论】:

    【解决方案2】:

    HSQLDB 数据库有不同的类型。全内存数据库不将数据存储到磁盘。这些数据库的 URL 格式为 jdbc:hsqldb:mem:<name>

    如果您的数据库 URL 的格式为 jdbc:hsqldb:file:<file path>,并且您的表是默认的 MEMORY 表,则数据全部在内存中,但更改会写入一组磁盘文件。

    对于所有类型的数据库,包括 all_in_memory,您可以使用 SQL 语句 SCRIPT <file path> 将完整的数据库保存到文件中。如果将数据保存到扩展名为.script 的文件中,则可以将文件作为文件数据库打开。

    运行服务器时,使用的 URL 不带 jdbc:hsqldb 前缀,例如 server.database.0=file:C:/myfile

    在此处查看指南http://hsqldb.org/doc/2.0/guide/running-chapt.html#running_db-sect

    【讨论】:

    • 当我使用 db URL 作为 jdbc:hsqldb:mem: 并且在表中插入一行时,HS​​QLDB 是否将任何临时文件写入磁盘然后删除它们?我正在将我的 Java Mule ESB 应用程序部署到 cloudhub。它在本地运行良好,但在云上运行良好。似乎 cloudhub 不允许写入文件。当我注释掉 db insert 并返回虚拟响应时,应用程序工作正常。
    • A mem: database (URL jdbc:hsqldb:mem:) 没有向文件系统写入任何内容。
    • @fredt 如果我们排除临时文件
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多