Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Резервное копирование БД на DB2


Автор: Zhenyusya 9.10.2008, 04:22
Задача: реализовать резервное копирование БД на DB2.
В Центре управления DB2 это делается простым запросом:
Код

CONNECT TO JOURNAL;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;
BACKUP DATABASE JOURNAL TO \"C:\\msk\" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;
CONNECT TO JOURNAL;
UNQUIESCE DATABASE;
CONNECT RESET;


из программы выполняю коннект к базе:
Код

Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
Connection conn = DriverManager.getConnection("jdbc:db2:journal");

а затем этот запрос:
Код

Statement st = conn.createStatement();
st.executeUpdate(sql);       // или     st.execute(sql);
st.close();
conn.close();

на execute выскакивает Exception про неверный синтаксис команды.
Если sql = "CONNECT TO JOURNAL";            -  та же ошибка

Помогите, пжлста, кто чем может!!
 smile 

P.S. Забыла сказать, что нужно это сделать обязательно программными средствами!!

Автор: tux 9.10.2008, 08:32
То, что вы пытаетесь выполнить - команды интерпретатора DB2, а не SQL-команды. Единственный выход - запускать DB2 CLP из java-приложения и передавать ему этот набор команд.

Автор: Zhenyusya 13.10.2008, 04:12
Вопрос решился просто:
запускаю команду 
Код

String cmd = "db2cmd C:\\msk\\restoreDB.cmd";
Runtime runtime = Runtime.getRuntime();
runtime.exec(cmd);
а в restoreDB.cmd последовательность команд для резервного копирования.
Вот и все!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)