【问题标题】:java derby restoreFrom does nothingjava derby restoreFrom什么都不做
【发布时间】:2012-06-17 18:57:22
【问题描述】:

我是这个论坛的新手(第一次发帖),但我过去经常在上面冲浪,以寻找技巧和一些有用的示例和解决我的问题的方法。

在发布之前,我在网上搜索了有关“restoreFrom”derby 数据库命令的信息,并阅读了 derby 管理员和参考指南。

我成功地在我的程序中使用了创建、备份和检查完整性 derby 程序,连接、断开服务器和数据库等...但是无法使用内置程序恢复某些内容!!!

这是有问题的代码:有问题?不是因为它不会抛出任何错误......

try {

    Class.forName("org.apache.derby.jdbc.ClientDriver");
    java.util.Properties props = new java.util.Properties();

    String backup = "." + File.separator + "backup" + File.separator
            + "dbcli";
    System.out.println(backup);

    String nsURL = "jdbc:derby://localhost:1527/dbcli;restoreFrom="
            + backup;
    props.setProperty("user", "root");
    props.setProperty("password", "root");

    dbConnection = DriverManager.getConnection(nsURL, props);
    dbConnection.commit();
    System.out.println("commit");

} catch (SQLException ex) {
    isConnected = false;
    Logger.getLogger(Snapshot.class.getName()).log(Level.SEVERE, null,
            ex);
    System.out.println(isConnected);
} catch (ClassNotFoundException ex) {
    Logger.getLogger(Snapshot.class.getName()).log(Level.SEVERE, null,
            ex);
}

它没有返回错误但数据库没有恢复,即使有备份目录的完整路径...

我已经找了好几天了,任何帮助都会很棒!!!

最好的问候,感谢您阅读这篇 java 新手帖子... :-)

编辑:问题是存在 .SVN 文件夹....

【问题讨论】:

  • 您是如何解决问题的?嵌入式 Java DB 也有同样的情况。
  • 顺便说一句,我在这里找不到任何 .SVN 文件夹。

标签: java database derby restore


【解决方案1】:

我遇到了同样的问题,我解决了,先关闭数据库,然后恢复它。 例如:

    String nsURL1 = "jdbc:derby://localhost:1527/dbcli;shutdown=true";
    String nsURL2 = "jdbc:derby://localhost:1527/dbcli;restoreFrom="+ backup;
    props.setProperty("user", "root");
    props.setProperty("password", "root");

    DriverManager.getConnection(nsURL1, props);
    dbConnection = DriverManager.getConnection(nsURL2, props);

并使用 try-catch

【讨论】:

  • 根据 OP,ppoblem 原来是隐藏的 svn 文件,所以我认为 exaju 的代码实际上可以自己正常工作
【解决方案2】:

您可能应该首先使用“ij”练习备份和恢复处理,然后尝试在程序中自动化它。下一步尝试使用嵌入式驱动程序进行备份/恢复,而不是使用客户端/服务器驱动程序,与客户端/服务器驱动程序一样,有关备份的错误消息可能位于服务器的日志目录中derby.log 文件。然后,当您在更简单的配置中解决所有问题时,您将能够使用客户端/服务器驱动程序自动执行备份/恢复处理。

【讨论】:

  • 感谢您的建议。你是对的,下一步是对这个问题进行逆向工程。我已经成功地用 ij 测试了它,并且抛出的错误是由“.svn”文件夹引起的......这个文件夹的存在两周,并且没有 java 错误......所以如果你可以使用上面的部分代码希望它有效...感谢您的时间和帮助...最好的问候
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 2011-02-18
  • 2019-03-08
  • 2016-12-24
  • 2017-04-18
  • 2011-08-03
相关资源
最近更新 更多