`
weishaoxiang
  • 浏览: 96612 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

java程序调用bat文件,执行oracel数据库备份

    博客分类:
  • J2EE
阅读更多
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * java程序调用bat文件,执行oracel数据库备份
 * @author weishaoxiang
 */
public class ExpOracleData {
	
	/**
	 * @param args
	 */
	public static void main( String[] args ){
		ExpOracleData expOracleData = new ExpOracleData( );
		expOracleData.run( );
	}
	
	public void run( ){
		try{
			String cmd = "cmd.exe /c G:/dmp/expOracleData.bat";
			Process process = Runtime.getRuntime( ).exec( cmd );
			ThreadInputStream inputStream = new ThreadInputStream( process );
			ThreadErrorStream errorStream = new ThreadErrorStream( process );
			inputStream.start( );
			errorStream.start( );
			if ( process.waitFor( ) == 0 ){
				System.out.println( "结束" );
			}
			else{
				System.out.println( "正在导出*****" );
			}
			if ( process.exitValue( ) == 0 ){
				System.out.println( "数据备份成功。" );
				System.out.println( "添加数据备份信息到数据表" );
				// save();
			}
			else{
				System.out.println( "数据备份失败!" );
			}
		}
		catch ( Exception e ){
			e.printStackTrace( );
		}
		System.out.println( "退出" );
	}
}

class ThreadInputStream extends Thread {
	
	Process process = null;
	
	public ThreadInputStream( Process process ){
		this.process = process;
	}
	
	public void run( ){
		InputStream inputStream = process.getInputStream( );
		BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( inputStream ) );
		try{
			String line = null;
			while ( ( line = bufferedReader.readLine( ) ) != null ){
				if ( line != null ){
					System.out.println( line );
					if ( line.indexOf( "exp" ) != -1 ){
						System.out.println( "执行数据备份命令" );
						break;
					}
				}
			}
			System.out.println( "输入结束^^^^^^" );
		}
		catch ( IOException e ){
			e.printStackTrace( );
		}
	}
}

class ThreadErrorStream extends Thread {
	
	Process process = null;
	
	public ThreadErrorStream( Process process ){
		this.process = process;
	}
	
	public void run( ){
		InputStream errorStream = process.getErrorStream( );
		BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( errorStream ) );
		try{
			String line = null;
			while ( ( line = bufferedReader.readLine( ) ) != null ){
				if ( line != null ){
					System.out.println( line );
					if ( line.indexOf( "成功终止导出" ) != -1 ){
						System.out.println( "成功终止导出-------" );
					}
					if ( line.indexOf( "ORA-01017" ) != -1 ){
						System.out.println( "用户名 / 密码 错误 ORA-01017-------" );
						process.destroy( );
						break;
					}
					if ( line.indexOf( "EXP-00028" ) != -1 ){
						System.out.println( "文件路径不对:EXP-00028-------" );
						process.destroy( );
						break;
					}
				}
			}
			System.out.println( "输出结束 ^^^^^^" );
		}
		catch ( IOException e ){
			e.printStackTrace( );
		}
	}
}

 

分享到:
评论

相关推荐

    oracle 自动备份bat文件

    在本例中,我们创建一个名为`db_backup.bat`的批处理文件,将其设置为服务器的计划任务,这样就能在指定的时间自动执行数据库备份。 下面详细讲解如何创建和配置这个自动备份流程: 1. **编写bat文件**:首先,...

    oracel自动备份数据脚本

    oracel自动备份数据库脚本,支持删除指定天数前的数据,支持多数据库备份,支持备份后压缩文件,支持复制到指定位置.文件为bat脚本

    Oracel数据库定时数据备份

    结合Oracle Exp 数据备份命令实现自动数据定时冷备份,不会影响数据库的正常运行。同时提供了备份数据压缩功能,既节省空间又可以保存备份数据不被误认为是系统备份文件而被清理工具清理掉. 注明:这个是应用执行...

    bat 备份数据库可以加上windows配置实现定时备份

    bat 备份数据库可以加上windows配置实现定时备份 具体设置windows定时任务在控制面板中实现。在具体的网上搜下

    Hibernate实例 oracel数据库

    5. **实体类与数据库表**: 在Hibernate中,我们创建Java实体类来表示数据库表,通过注解或XML映射文件将实体类与数据库表关联。 6. **JDBC连接Oracle**: 需要引入Oracle的JDBC驱动,例如ojdbc.jar,并在Hibernate...

    用Asp.Net连接Oracel数据库的方法全

    Asp.Net 连接 Oracle 数据库的方法是指使用 Asp.Net 框架连接 Oracle 数据库的各种方法和技术,包括添加引用、创建连接字符串、创建 OracleConnection 对象、创建 OracleCommand 对象、执行 SQL 语句、读取数据、...

    一个定点自动备份数据库的程序

    这个程序的目的是在设定的时间点自动执行数据库的备份操作,确保即使在系统出现故障时,也能快速恢复到某个已知的良好状态。下面我们将深入探讨相关的知识点。 首先,我们需要了解数据库备份的基本类型。常见的...

    oracle 数据库自动备份脚本

    实现oracle 数据库自动备份+保留最新的7天数据+另一机器拷贝备份的脚本

    不用安装oracel就能直连oracel数据库的方法

    里面有plsql+instantclient_11_2+使用教程,特别详细亲测有效,有时候电脑装不上oracel数据库或者装上导致电脑很卡,我们就可以选择用oracel客户端工具来在没有oracel的前提下连接oracel数据库。

    ORACEL数据库的完全卸载

    因为Oracle数据库的卸载比较麻烦,所以想要重新安装的时候比较麻烦,需要完全卸载才行。

    连接数据库的方法 oracel

    2. **ODBC/JDBC**:通过开放数据库连接(ODBC)或Java数据库连接(JDBC)驱动程序,可以在各种编程语言(如Java、C++、Python等)中连接Oracle。需要配置相应的数据源(DSN)或驱动,并使用连接字符串建立连接。 3. **PL/...

    Spring综合实例 spring配置oracel数据库 事务管理 切面

    Spring综合实例 spring配置oracel数据库 事务管理 切面 业务描述:实现用户简单的注册登录功能。 用户注册时候需要输入用户名,密码,邮箱地址,点击注册后成功。 用户登录时可以选择使用用户名或者邮箱地址进行...

    oracel数据库学习笔记

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,它在企业级数据存储、管理和处理方面具有强大的功能。这篇学习笔记将带你走进Oracle的世界,通过基本的SQL语句学习,让你逐步掌握这个系统的操作与应用。 ...

    ORACEL 数据库常用命令

    Oracle 数据库是一个强大的...Oracle还提供了许多其他高级功能,如数据泵(expdp/impdp)、备份恢复、性能监控等,这些都是数据库管理员必备的技能。通过不断学习和实践,可以提升在Oracle数据库管理领域的专业能力。

    完全卸载Oracel数据库

    2. **完全清除**:这些步骤会移除所有Oracle组件、服务以及注册表条目,并且任何存储在`ORACLE_BASE/ORADATA/`子目录下的数据库文件也会被删除。 3. **可能删除用户生成文件**:此过程还可能移除Oracle网络配置文件...

    将txt文件中的数据导入到oracel数据库中,完整代码,不限txt数量,只需要对应表结构就行

    这可以通过编写脚本或程序循环调用SQL*Loader,每次处理一个文件来实现。 在实际应用中,还可以使用其他方法来导入数据,如使用Oracle的`LOAD DATA INFILE`命令或者通过编程语言(如Python、Java)的数据库连接库...

    oracle数据库冷备份的方法

    9. **备份验证与恢复测试**:虽然冷备份提供了对数据库的静态快照,但为了确保备份的有效性,应定期进行恢复测试,模拟实际的恢复流程,以确认备份文件可以在需要时成功恢复数据库。 10. **结合热备份策略**:为了...

    oracel 数据库安全

    权限是指执行特定数据库操作的能力,而角色则是一组权限的集合。通过合理分配权限和角色,可以有效地控制用户对数据库资源的访问。 - **权限(Privilege)**:指具体的数据库操作能力,如查询、更新等。 - **角色...

Global site tag (gtag.js) - Google Analytics