package atest;

import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.sql.Connection;

import web.db.DBConnector;

/**

* @author 朱言信

* @desc 备份oracle

*/

public class DadaBackup4Oracle {

public void doWork(){

//执行该数据备份线程

innerBackupClass ibc = new innerBackupClass("这里输入oracle的用户名", "密码", "192.168.0.66:1521/orcl", "输出的地址", "输出的文件名", "要备份的表名");

Thread td = new Thread(ibc);

td.start();

}

class innerBackupClass implements Runnable {

private String user; //用户名

private String password; //密码

private String url; //链接地址

private String outFilePath; //输出的文件路径

//private String outZipFilePath; //输出的zip文件路径

private String filename; //文件名

private String tableNames; //表名

//Sys_databackup databackup = null;

/**

* 构造方法

*/

public innerBackupClass(String user, String password, String url, String outFilePath,

//String outZipFilePath,

String filename,

String tableNames

//Sys_databackup databackup

) {

this.user = user;

this.password = password;

this.tableNames = tableNames;

this.url = url;

this.outFilePath = outFilePath;

//this.outZipFilePath = outZipFilePath;

this.filename = filename;

//this.databackup = databackup;

}

/**

* 线程执行入口

*/

public void run() {

Connection con = DBConnector.getconecttion(); // 取得一个数据库连接

Runtime rt = Runtime.getRuntime();

Process processexp = null;

checkCreatDir(outFilePath);

//这里拼装的是exp导出 当然还可以使用其它的 你懂得

String exp = "exp " + user + "/" + password + "@" + url + " file="

+ outFilePath + "/" + filename + ".dmp";

if(!"".equals(tableNames)){

exp += " tables=(" + tableNames + ")";

}

try {

processexp = rt.exec(exp);

new Thread(new StreamDrainer(processexp.getInputStream())).start();

new Thread(new StreamDrainer(processexp.getErrorStream())).start();

processexp.getOutputStream().close();

int exitValue = processexp.waitFor();

//databackup.setBackupstate("1"); //1为成功 0为失败

if(exitValue != 0){

//databackup.setBackupstate("0");

}

//将备份DMP文件压缩为zip

//删除dmp文件及所在的文件夹

//将备份的结果持久化

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

} finally {

DBConnector.freecon(con); // 释放数据库连接

}

}

public void checkCreatDir(String dirPath) { // 目录是否存在

File file = new File(dirPath);

if (!file.exists()) {

file.mkdirs();

}

}

}

/**

*输出控制台信息

*/

class StreamDrainer implements Runnable {

private InputStream ins;

public StreamDrainer(InputStream ins) {

this.ins = ins;

}

public void run() {

try {

BufferedReader reader = new BufferedReader(

new InputStreamReader(ins));

String line = null;

while ((line = reader.readLine()) != null) {

System.out.println(line);

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

java oracle数据备份_Java后台备份oracle数据库脚本相关推荐

  1. oracle数据泵整库备份,详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复...

    标签: 简介 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1.实现逻辑备份和逻辑恢复 2.数据库用户之间移动对象 ...

  2. oracle java存储过程返回值_java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)...

    java程序调用Oracle 存储过程 获取返回值(无返回,非结 果集,结果集) oracle中procedure是不能有返回值的,要想返回值,就得有 输出参数,同样要想返回记录集,可以把游标类型作为 ...

  3. 32位oracle数据迁移到64位oracle,将Oracle数据库从32位平台迁移到64位

    3: 查看当前的数据库状态 SQL> select count(*) from dba_objects where status ='INVALID'; COUNT(*) ---------- ...

  4. oracle数据集成产品,甲骨文推出Oracle数据集成产品

    日前,甲骨文推出构成Oracle数据集成产品线基础的Oracle GoldenGate 11g和Oracle数据集成器企业版11g,这两款新产品是Oracle融合中间件产品系列的组成部分. 在过去几年 ...

  5. oracle数据块的大小设置,Oracle数据块的大小

    标准数据块的大小被用于系统和临时表空间,除非有特别的说明,除非有特别的说明,标准数据块的大小也被用作一个表空间的数据块的默认值.数据库中标准数据块的大小是在数据库创建时使db_blcok_size初始 ...

  6. oracle数据泵导出多表,oracle 数据泵导出表

    oracle 数据泵导出演示步骤 1.使用 oracle 用户创建目录 mkdir software_bak [oracle@master ~]$ cd software_bak/ [oracle@m ...

  7. oracle 数据块修复工具,BBED (Oracle Block Brower and EDitor Tool) :数据块修复工具

    这个是关于BBED(Oracle Block Brower and EDitor Tool)使用介绍,这是Oracle一款内部 工具,可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较 ...

  8. oracle数据泵导入导出6,oracle 10g数据泵和导入导出性能对比(六)

    前一段时间在一次迁移中同时用到了数据泵和EXP,发现二者效率的差别还是相当大的.这里通过一个例子简单比较一下. 这篇文章同时使用直接路径和并行来加速数据泵导入. 上一篇结束了数据泵导入在非归档模式下获 ...

  9. linux中oracle数据乱码,解决linux下oracle导入数据中文乱码方案

    主要的原因是两个数据库的字符集不相同引起的 先查导出的数据的oracle字符集 用sys用户登陆oracle 用如下命令: select * from nls_database_parameters ...

最新文章

  1. 6G技术长啥样?5大趋势,13个核心技术2030年落地
  2. pcie转sata3硬盘不启动_没有地方塞硬盘?你或许需要这款扩展卡
  3. 我眼中未来的计算机作文600字,我的电脑作文600字
  4. Redis的安装以及基本操作简介
  5. php serialize mysql_php 序列化(serialize)格式详解
  6. python的urllib2包基本使用方法
  7. Nginx基础详细讲解
  8. java从字符串中提取数字的简单实例
  9. ActionScript 3.0基础之事件机制
  10. 五种前端布局之table布局
  11. 文件转换和操作的一些在线网页
  12. Lonlife-ACM Round #7
  13. js的alert弹框中怎么写html,JavaScript实现alert弹框效果
  14. 英伟达RTX 2060发布:《战地5》光追超60帧,349美元(转载自IT之家)
  15. zabbix_agentd_window端运行报错cannot connect to Service Manager: [0x00000005]
  16. 行走的“摄影神器”三星Galaxy S21!五一出游必备
  17. 英语作文框架(四级)
  18. 伤害世界稳定服务器,伤害世界哪个服务器好_伤害世界怎么选服务器_牛游戏网...
  19. 博图14软件安装顺序_博图v14安装顺序和教程
  20. docker exec -it container1 /bin/bash 异常

热门文章

  1. Windows 64位下装Oracle 11g,PLSQL Developer的配置问题,数据库处显示为空白的解决方案...
  2. Vissim 中动态交通路径选择
  3. 解决webpack4版本在打包时候出现Cannot read property ‘bindings‘ of null 或 Cannot find module ‘@babel/core‘问题
  4. 【方案分享】抖音平台新媒体百问百答:平台规则、爆款涨粉、运营技巧、内容变现.pdf(附下载链接)...
  5. 梁宁:真正驱动你变强的,是痛苦
  6. 如何自己找数据分析项目来做?
  7. ubuntu安装最新版blender方法
  8. KL散度的通俗易懂理解
  9. 浙大 PAT a1027
  10. 200+页综述!阐述大规模预训练模型机遇与风险