通过Java恢复Derby-Database

时间:2014-02-05 23:20:42

标签: java apache jdbc derby restore

我正在尝试通过Java恢复Apache Derby数据库。在研究时我发现了以下页面http://db.apache.org/derby/docs/10.3/adminguide/tadminhubbkup44.html。据我所知,我必须与服务器建立连接并使用给定的URL进行恢复。

我不确定如何使用此URL在Java中重新启动和恢复正在运行的服务器。

1 个答案:

答案 0 :(得分:0)

我已设法使用创建的备份文件恢复derby数据库。问题是我需要在尝试恢复之前关闭数据库。

但现在我遇到了另一个问题。关闭和以下数据库还原后,数据库无法自动引导。我试图注册一个新的驱动程序或将shutdown属性设置为false,但没有一个通过Java重启数据库。

到目前为止,这是我的代码:

public boolean restore() throws DataSourceException {  
  String databaseName = "jdbc:derby://localhost:1527/sun-appserv-samples;restoreFrom="+ getRestorePath() +"sun-appserv-samples";
  String delete = "jdbc:derby://localhost:1527/sun-appserv-samples;shutdown=true";
  try {
   DriverManager.getConnection(delete);
  } catch (SQLException e) {
   Connection con;
   try {
    con = DriverManager.getConnection(databaseName);
    con.commit();  
    try {                  
     Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
    } catch (ClassNotFoundException e1) {
    } catch (InstantiationException e1) {
    } catch (IllegalAccessException e1) {
    }

    con = DriverManager.getConnection("jdbc:derby://localhost:1527/sun-appserv-samples;create=true");
    con.commit();
    return true;
   } catch (SQLException e1) {
   }
  }
  return false;
 }