H2:从备份文件

时间:2018-03-05 16:02:05

标签: java h2

H2提供BACKUP命令,可以从SQL状态中使用并创建备份文件:

String url = "jdbc:h2:nioMemFS:atestdb";
try (Connection con = DriverManager.getConnection(url); 
       Statement s = con.createStatement()) {
   s.execute("CREATE TABLE test_table ( test_values VARCHAR(255) )");
   s.execute("INSERT INTO test_table (test_values) VALUES ('abc'), "
     + "('def'), ('hji')");
   s.execute("BACKUP TO 'backup.zip'");  // writes to backup.zip
}

这也适用于内存数据库编辑:它适用于nioMemFS文件系统,但不适用于普通的内存数据库;请参阅Oleg回答如下)。是否还有用于恢复此类数据库文件的命令?

谢谢!

1 个答案:

答案 0 :(得分:1)

BACKUP命令不适用于内存数据库,当我尝试出现DATABASE_IS_NOT_PERSISTENT错误时,如果备份命令对您有用,则可能不使用持久数据库。

您可以使用SCRIPTRUNSCRIPT分别通过从数据库创建和运行sql脚本来备份和恢复。

SCRIPT TO 'backup.sql';
RUNSCRIPT FROM 'backup.sql';