java oracle数据备份_Java后台备份oracle数据库脚本
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数据库脚本相关推荐
- oracle数据泵整库备份,详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复...
标签: 简介 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1.实现逻辑备份和逻辑恢复 2.数据库用户之间移动对象 ...
- oracle java存储过程返回值_java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)...
java程序调用Oracle 存储过程 获取返回值(无返回,非结 果集,结果集) oracle中procedure是不能有返回值的,要想返回值,就得有 输出参数,同样要想返回记录集,可以把游标类型作为 ...
- 32位oracle数据迁移到64位oracle,将Oracle数据库从32位平台迁移到64位
3: 查看当前的数据库状态 SQL> select count(*) from dba_objects where status ='INVALID'; COUNT(*) ---------- ...
- oracle数据集成产品,甲骨文推出Oracle数据集成产品
日前,甲骨文推出构成Oracle数据集成产品线基础的Oracle GoldenGate 11g和Oracle数据集成器企业版11g,这两款新产品是Oracle融合中间件产品系列的组成部分. 在过去几年 ...
- oracle数据块的大小设置,Oracle数据块的大小
标准数据块的大小被用于系统和临时表空间,除非有特别的说明,除非有特别的说明,标准数据块的大小也被用作一个表空间的数据块的默认值.数据库中标准数据块的大小是在数据库创建时使db_blcok_size初始 ...
- oracle数据泵导出多表,oracle 数据泵导出表
oracle 数据泵导出演示步骤 1.使用 oracle 用户创建目录 mkdir software_bak [oracle@master ~]$ cd software_bak/ [oracle@m ...
- oracle 数据块修复工具,BBED (Oracle Block Brower and EDitor Tool) :数据块修复工具
这个是关于BBED(Oracle Block Brower and EDitor Tool)使用介绍,这是Oracle一款内部 工具,可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较 ...
- oracle数据泵导入导出6,oracle 10g数据泵和导入导出性能对比(六)
前一段时间在一次迁移中同时用到了数据泵和EXP,发现二者效率的差别还是相当大的.这里通过一个例子简单比较一下. 这篇文章同时使用直接路径和并行来加速数据泵导入. 上一篇结束了数据泵导入在非归档模式下获 ...
- linux中oracle数据乱码,解决linux下oracle导入数据中文乱码方案
主要的原因是两个数据库的字符集不相同引起的 先查导出的数据的oracle字符集 用sys用户登陆oracle 用如下命令: select * from nls_database_parameters ...
最新文章
- 6G技术长啥样?5大趋势,13个核心技术2030年落地
- pcie转sata3硬盘不启动_没有地方塞硬盘?你或许需要这款扩展卡
- 我眼中未来的计算机作文600字,我的电脑作文600字
- Redis的安装以及基本操作简介
- php serialize mysql_php 序列化(serialize)格式详解
- python的urllib2包基本使用方法
- Nginx基础详细讲解
- java从字符串中提取数字的简单实例
- ActionScript 3.0基础之事件机制
- 五种前端布局之table布局
- 文件转换和操作的一些在线网页
- Lonlife-ACM Round #7
- js的alert弹框中怎么写html,JavaScript实现alert弹框效果
- 英伟达RTX 2060发布:《战地5》光追超60帧,349美元(转载自IT之家)
- zabbix_agentd_window端运行报错cannot connect to Service Manager: [0x00000005]
- 行走的“摄影神器”三星Galaxy S21!五一出游必备
- 英语作文框架(四级)
- 伤害世界稳定服务器,伤害世界哪个服务器好_伤害世界怎么选服务器_牛游戏网...
- 博图14软件安装顺序_博图v14安装顺序和教程
- docker exec -it container1 /bin/bash 异常
热门文章
- Windows 64位下装Oracle 11g,PLSQL Developer的配置问题,数据库处显示为空白的解决方案...
- Vissim 中动态交通路径选择
- 解决webpack4版本在打包时候出现Cannot read property ‘bindings‘ of null 或 Cannot find module ‘@babel/core‘问题
- 【方案分享】抖音平台新媒体百问百答:平台规则、爆款涨粉、运营技巧、内容变现.pdf(附下载链接)...
- 梁宁:真正驱动你变强的,是痛苦
- 如何自己找数据分析项目来做?
- ubuntu安装最新版blender方法
- KL散度的通俗易懂理解
- 浙大 PAT a1027
- 200+页综述!阐述大规模预训练模型机遇与风险