I am also trying to use the "restoreFrom=" switch when opening the database, but have not been successful yet.
I am getting the following error: Caused by: java.sql.SQLException: Failed to start database 'derbyDB', see the next exception for details. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossD RDA(Unknown Source) ... 43 more Caused by: java.sql.SQLException: Backup database directory 'C:\Documents and Settings\Don\My Documents\JavaDev\HSA_ServiceHours\ServiceHours\HSA_backup\backup10-05-09\de rbyDB' not found. Please make sure that the specified backup path is right. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossD RDA(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) "derbyDB" is the name of my database. The backup database does exist and everything needed (log dir, seg0 dir & .dat files, BACKUP.HISTORY file, service.properties) appears to be available. The application trying to restore the file was started in the '...\ServiceHours' directory, It seems that derby (10.5.3.0) can not access this directory for some reason. Anyone have a suggestion? Thank you! Don -----Original Message----- From: Dinesh Bajaj [mailto:[email protected]] Sent: Saturday, April 24, 2010 9:59 AM To: Derby Discussion Subject: Re: Database restoration not working. Hi Myrna, Thanks for your reply. As I noted in my previous message that I already got the answer to my query through a web article. However, thanks to you for you reply nevertheless. -Dinesh --- On Sat, 24/4/10, Myrna van Lunteren <[email protected]> wrote: From: Myrna van Lunteren <[email protected]> Subject: Re: Database restoration not working. To: "Derby Discussion" <[email protected]> Date: Saturday, 24 April, 2010, 9:01 PM On Fri, Apr 23, 2010 at 7:37 PM, Dinesh Bajaj <[email protected]> wrote: Hi All, My understanding is that restoring a backedup database should restore it to to its original location. If for example, a database is backedup from the location c:\one to c:\two, and if it is later restored, then the database ought to be restored to the original location, i.e. c:\one. However, I find that this is not the case with Derby. String connectionURL = "jdbc:derby:mydbname;restoreFrom=c:/temp/two/mydbname" On using the above-mentioned connection string, the connection to the database is indeed made; however, it is not restored to its original location. Where the database is restored, and how I can get it restored to its original location? Thanks in advance. Regards, Dinesh Hi Dinesh, As you found, derby does not retain information about the directory structure around the database, just the internal organization of the database itself. And the backup/restore doesn't keep that information either. Derby processes start from the location where the java process is invoked... So, to restore to the original position, I'd suggest starting the restore in the original location. Or, you can just specify the target directory in the URL, i.e.: String connectionURL = "jdbc:derby:c:/temp/one/mydbname;restoreFrom=c:/temp/two/mydbname" That should make mydbname database get restored to c:/temp/one. Myrna
