日期:2014-05-17  浏览次数:20822 次

用java做oracle数据库备份有问题!急急急!!!
各位高手,大侠帮小弟看看这段代码吧!麻烦了,很棘手啊!
这段程序已经能够让oracle正确执行备份了.
但是为了让java程序能够检测备份是否成功,我做了读去进程错误信息的操作:
br.readLine()
这个时候就出问题了,不能读出任何信息,程序也不会往下执行了,
并且没有任何错误提示.
代码如下:
==============================
String   command   =   "cmd   /k   start   exp   "   +   user   +   "/ "   +   pass   +   "   FILE= "   +   filename   + "   full   =   y ";
java.lang.Runtime   rt   =   java.lang.Runtime.getRuntime();
java.lang.Process   p   =   rt.exec(command);
try   {
BufferedReader   br   =   new   BufferedReader( new   InputStreamReader(p.getInputStream()));
String   str;
while   ((str   =   br.readLine())   !=   null)   {  
//执行到这里就会死掉,并且什么错误提示都没有啊。
System.out.println(str);
}
p.waitFor();
}   catch   (InterruptedException   ex1)   {
System.out.println(ex1.getMessage());
}
===================================
我做过实验,
把command换成ping   www.sina.con.cn
就能够顺利执行并成功读出信息.

请问这是怎么回事啊?
有没有能够监控oracle备份的其他办法?
急死我啦!各位高手帮帮忙啊,感激不尽!!!

------解决方案--------------------
EXP有个LOG参数 他是把备份日志信息写到文件里面的

可以用这个
------解决方案--------------------
找auditdb工具监控
------解决方案--------------------
批处理里就能实现,EXP命令会有返回值,如果是0就是成功,否则失败。