您的位置:首页 > 数据库 > Oracle

使用配置文件自动备份远程oracle数据库

2017-06-27 16:09 387 查看
一、编写配置文件quartz.properties,放置在src目录下;

#是备份数据库的url
db_url=192.168.11.201:1521/orcl
#是备份数据库的username
db_username=trems
#是备份数据库的password
db_password=trems
#是备份数据库的实例名
db_dbname=orcl
#备份文件存放路径
backupToPath=C:\\Users\\Administrator\\Desktop
二、编写源码

package quartz;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

public class BackupDataBase {

private static Logger log = Logger.getLogger(BackupDataBase.class);
private static String username;
private static String password;
private static String backupToPath;
private static String url;

/**
* 读取配置文件
*/
static {
log.debug("开始读取配置文件");
InputStream is = null;
try {
Properties properties = new Properties();
Resource resource = new ClassPathResource("/quartz.properties");
properties.load(resource.getInputStream());

url = (String) properties.get("db_url");
username = (String) properties.get("db_username");
password = (String) properties.get("db_password");
backupToPath = (String) properties.get("backupToPath");
log.debug("成功读取配置文件");
} catch (FileNotFoundException e) {
log.error("读取配置文件失败", e);
} catch (IOException e) {
log.error("读取配置文件失败", e);
} finally {
try {
if (is != null) {
is.close();
}
log.debug("成功关闭输入流");
} catch (IOException e) {
log.error("关闭输入流失败", e);
}
}
}

/**
* 备份数据库
*/
public static void exportDataBase() {

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String dbName = sdf.format(new Date()) + ".dmp";

try {
String command = "exp " + username + "/" + password + "@" + url
+ " file=" + backupToPath +"\\" + dbName + " full=y";
Runtime.getRuntime().exec(" cmd /c start " + command +"exit");
log.debug("备份数据库成功!");
} catch (IOException e) {
e.printStackTrace();
log.error("备份数据库失败!", e);
}
}

public static void main(String[] args) {
BackupDataBase demo = new BackupDataBase();
demo.exportDataBase();
}
}


直接执行即可,当然本地需安装oracle客户端程序。可将该代码整合spring和quartz实现定期自动备份远程数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐