2012-06-17 70 views
2

我是新来这个论坛(第一篇文章),但我曾经多次浏览它找到技巧和一些有用的例子和解决我的问题。java德比restoreFrom什么都不做

发表之前我已经在网上搜索了关于“restoreFrom”derby数据库命令的全部内容,并且我也阅读了德比管理员的参考指南。

我成功地在我的程序中使用创建,备份和检查intergrity 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 !!!

+0

你是如何解决问题了吗?我对嵌入式Java DB有完全相同的看法。 – Igor

+0

顺便说一句,我在这里找不到任何.SVN文件夹。 – Igor

回答

0

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

+0

谢谢你的建议。你是对的,下一步就是扭转这个问题。我用ij成功地进行了测试,并且抛出的错误是由“.svn”文件夹引起的。....这个文件夹存在两周,并且没有java错误...所以如果你使用了上面的代码希望它的工作...感谢您的时间和你的帮助...根据OP,最好的问候 – neuronsoverflow

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

+0

这个问题原来是隐藏的svn文件,所以我认为exaju的代码实际上自己工作得很好 –