[英]H2: Restore a (in-memory) database from a backup file
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回答)。 是否還有用於還原此類數據庫文件的命令?
謝謝!
BACKUP命令不適用於內存數據庫,當我嘗試出現DATABASE_IS_NOT_PERSISTENT錯誤時,如果backup命令對您有用 ,則可能不是在使用持久數據庫。
您可以通過從數據庫創建和運行sql腳本來分別使用SCRIPT和RUNSCRIPT進行備份和還原。
SCRIPT TO 'backup.sql';
RUNSCRIPT FROM 'backup.sql';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.