簡體   English   中英

H2:從備份文件還原(內存中的)數據庫

[英]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腳本來分別使用SCRIPTRUNSCRIPT進行備份和還原。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM