java备份数据库时 process挂起exp不执行

问题描述

程序代码如下方法:publicclassBackupServiceImpl{publicbooleanbackupOrRecoverDataBase(Stringcomd){//TODOAuto-generatedmethodstubSystem.out.println(comd);Runtimert=Runtime.getRuntime();BufferedReaderbr=null;ProcessprocessExp=null;try{processExp=rt.exec(comd);inti=processExp.waitFor();System.out.println(i);if(processExp.waitFor()!=0){processExp.destroy();returnfalse;}else{processExp.destroy();returntrue;}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();returnfalse;}}//主方法中调用publicstaticvoidmain(String[]args){Stringcomd="expsystem/manager@ORACfile='e:/db.dmp'";挂起,不正确执行//Stringcomd="expsystem/manager@ORACfile='e:/db.dmp'tables=(table_1,table2)";正确备份但PROCESS挂起//Stringcomd="expsystem/manager@ORACfile='e:/db.dmp'tables=(table_1)";可以正确执行完成BackupServiceImplbsi=newBackupServiceImpl();bsi.backupOrRecoverDataBase(comd);}}代码如上,备份单表没有问题,但备份库和备份多个表时就出现PROCESS挂起,请问是什么问题?进程中显示java--|-cmd--|-exp如果在myEclips里关闭运行的进程则cmd/exp继续运行可以执行完备份如果在进程管理器中KILL了进程,则没有后续了。

解决方案

解决方案二:
请问是怎么回事?
解决方案三:
找到原因了,process.getInputStream()很多人的误区都在这里;其实不是这里读取缓冲而是在process.getErroStream()这里读取缓冲的~~~然后释放掉缓冲区,才能进行下面的

时间: 2024-11-03 07:42:33

java备份数据库时 process挂起exp不执行的相关文章

java备份数据库四种方法(mysql,mssql数据库备份)

java备份数据库教程四种方法(mysql教程,mssql数据库备份) mysql数据库备份的东西,然后研究了一下java语言中怎么来调用cmd的命令来实现mysqldump的备份功能.具体实现如下: 1.首先设置环境变量:有两种方式.第一种,在环境变量中添加 mysql_home,设置内容为 mysql的安装路径,然后,在path中添加路径  %mysql_home%bin    .第二种方法,不新建mysql_home,而是直接在path中添加   mysql安装路径bin .这样,调用cm

mysql下普通用户备份数据库时无lock tables权限的解决方法_Mysql

[root@jb51.net]# mysqldump -u dbuser -ppass db > db.sql mysqldump: Got error: 1044: Access denied for user 'dbuser'@'localhost' to database 'db' when using LOCK TABLES 解决一: 加上-skip-lock-tables选项即可.即: [root@jb51.net]# mysqldump -u dbuser -ppass db --s

sql server-SQL Server 备份数据库报错

问题描述 SQL Server 备份数据库报错 备份数据库时,备份到一半的时候,会报错,报错如下,尝试过网上的其他方式,因为数据量庞大,每次备份很麻烦,求大神支招!! 解决方案 ???? 如果没有远程数据库所在服务器的windows账号密码,仅有远程SQL Server数据库的用户密码,该如何备份远程数据库db1的数据到本地呢??1:在本地安装通版本的数据库软件(比如:SQL Server2000)2:在本地数据库服务器上创建数据库db2:3:使用本地"企业管理器"注册远程数据库,并将

mysqldump备份数据库中文乱码解决方法

用mysql工具mysqldump备份数据库时,如果MySQL服务器上的字符集是 latin1 的,第二世界整理发布mysqldump 出来的中文都是乱码!一个简单的办法是在写备份语句时加上默认字符集选项,如:  代码如下 复制代码 mysqldump -h 127.0.0.1 -P 3307 -u username --default-character-set=gbk -p databasename > dumpfile.txt -h 主机 -P 端口,必须单独用此选项,而不能连续写在主机地

请问:用java代码把excel导入数据库时,出现问题

问题描述 请问:用java代码把excel导入数据库时,出现问题 按着这里的代码配置的http://www.cnblogs.com/zyw-205520/p/3762954.html 解决方案 猜测是两种可能,一个是你读取excel有问题,没有正确读取出内容,另一个可能就是插入数据库有问题,导致数据不能正确写入数据库.检查这两个地方,分隔检查 解决方案二: 究竟遇到什么问题了呢?是读不出还是写不进去?你的图和链接并不能说明你遇到的问题. 解决方案三: 应该是读取excel的值没有成功,建议看看e

mysql 编码 汉字识别-用Java语言连接wampserver中mysql数据库时,遇到问题,请看内容。

问题描述 用Java语言连接wampserver中mysql数据库时,遇到问题,请看内容. 用Java语言连接wampserver集成中的mysql,当用java代码往mysql数据库插入数据后,代码中的中文字符在数据库中变成了"?",但是使用mysql客户端.http:// localhost/phpmyadmin/ 页面 插入中文时,就没有这种情况发生,请指点. 解决方案 参考 mysql/java charset issue 在连接字符串指定字符集,比如jdbc:mysql://

备份-还原数据库时,当前命令发生了严重错误 应放弃任何可能产生的结果.错误:211

问题描述 还原数据库时,当前命令发生了严重错误 应放弃任何可能产生的结果.错误:211 各位帮忙看看,是不是数据库中有异常数据,备份出来之后没办法还原了? 解决方案 http://blog.csdn.net/attilax/article/details/41521285

oracle 11g-【求助】java使用jdbc连接Oracle 11g ex版本数据库时的问题

问题描述 [求助]java使用jdbc连接Oracle 11g ex版本数据库时的问题 我下载Oracle数据库连接驱动类与SqlConnectText.java在同一目录下,是ojdbc6.jar 数据库版本是Oracle11g Express版本,SID是xe JDK是1.6版本的 然后端口1521正在被监听 这是Java类代码 import java.sql.*; public class SqlConnectTest { private static String dbUrl = "jd

java写数据库备份模块

问题描述 请问谁有做过jsporacle数据库备份的模块吗?请问这个怎么备份数据库呢? 解决方案 解决方案二:请问怎么用java代码书写备份数据库呢解决方案三:做一个项目中的数据库备份与恢复(MSSQL)数据库备份Stringwebtruepath=getServletContext().getRealPath(request.getServletPath());//取Servlet的真实路径java.io.Filefile=newjava.io.File(webtruepath);file=f