2

我是这个论坛的新手(第一篇文章),但我曾经在上面冲浪很多次,以寻找技巧和一些有用的示例和解决我的问题的方法。

在发布之前,我已经在网上搜索了有关“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 文件夹的存在....我很愚蠢.... :-) 感谢 StackOverFlow 的帮助和长寿!

4

2 回答 2

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

于 2013-08-28T09:15:00.690 回答
0

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

于 2012-06-18T13:50:39.080 回答