我正在尝试通过Java恢复Apache Derby数据库。在研究时我发现了以下页面http://db.apache.org/derby/docs/10.3/adminguide/tadminhubbkup44.html。据我所知,我必须与服务器建立连接并使用给定的URL进行恢复。
我不确定如何使用此URL在Java中重新启动和恢复正在运行的服务器。
答案 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;
}