2014-02-05 3 views
0

Я пытаюсь восстановить базу данных Apache Derby через Java. Во время исследования я нашел следующую страницу http://db.apache.org/derby/docs/10.3/adminguide/tadminhubbkup44.html. Насколько я понимаю, у меня есть работающее соединение с сервером и использование данного URL-адреса для восстановления.Восстановление базы данных Derby через Java

Я не уверен, как перезагрузить и восстановить работающий сервер в Java, используя этот URL.

+0

Что вы не уверены? Вы, кажется, нашли документы, и вы, кажется, понимаете, что они говорят. Осталось только написать Java JDBC-программу, которая вызывает DriverManager.getConnection() с соответствующим URL-адресом. Конечно, обязательно протестируйте свою программу с помощью тестовой базы данных. –

ответ

0

Мне удалось восстановить базу данных дерби с помощью созданных резервных файлов. Проблема заключалась в том, что мне нужно было закрыть базу данных, прежде чем пытаться ее восстановить.

Но теперь я столкнулся с другой проблемой. После завершения работы и последующего восстановления базы данных база данных не загружается автоматически. Я попытался зарегистрировать новый драйвер или установить атрибут 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; 
} 
Смежные вопросы