java 定时备份数据库
原文:http://www.open-open.com/code/view/1447490829678
/**
操作数据库
*/
public class BackupDb {
public String backup() throws IOException{
String user = "root"; //数据库的用户名
String password = "admin";//数据库的密码
String database = "hrtweb";//要备份的数据库名
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String filepath = "d:\\"+sdf.format(date)+".sql";
File file = new File("d:\\",sdf.format(date)+".sql");
if(!file.exists()){
file.createNewFile();
}
String stmt1 = "mysqldump " + database +" -h 127.0.0.1 "+ " -u " + user + " -p" +
password + " --default-character-set=gbk --result-file=" + filepath;
try {
Runtime.getRuntime().exec(stmt1);
System.out.println("已经保存到 " + filepath + " 中");
} catch (IOException e) {
e.printStackTrace();
}
return filepath;
}
}
/**
创建定时器
*/
public class PickTask {
private Timer timer = new Timer();
private TimerTask task = new TimerTask() {
public void run() {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String beginDate = sdf.format(date);
String beginTime = beginDate.substring(11, 16);
System.out.println("开始时间:"+beginDate);
BackupDb bdb = new BackupDb();
// 设定备份时间
if (beginTime.equals("17:09")) {
try {
bdb.backup(); // 执行文件备份
String dbName = bdb.backup().toString(); // 取出备份的文件名字
String path = "d:\\";
int nameNo = dbName.lastIndexOf("\\");
//判断文件是否存在,如果存在,则备份成功,如果不存在则备份不成功需要重新备份
File file = new File(path, dbName.substring(nameNo + 1,dbName.length()));
if (file.exists()){
System.out.println("备份成功");
}else{
System.out.println("备份失败,重新备份");
//在备份未成功的情况下重新备份
new PickTask().start(1, 1);
}
} catch (FileNotFoundException e) {
System.out.println("can not find the file");
} catch (IOException e) {
e.printStackTrace();
}
}else{
System.out.println("时间还不到呢,不要着急哦!");
}
}
};
//start 方法不能少,主要是schedule方法
public void start(int delay, int internal) {
timer.schedule(task, delay * 1000, internal * 1000);
}
}
/**
测试类,执行定时备份指令
*/
public class TimerUse {
public static void main(String[] args) {
PickTask picktask = new PickTask();
picktask.start(1, 60); // 每60秒执行一次
}
}
java 定时备份数据库的更多相关文章
- SqlServer定时备份数据库和定时杀死数据库死锁解决
上周五组长对我说了一句要杀死数据库的死锁进程,有时候同一时刻不停写入数据库会造成这种情况的发生,因为自己对数据库不是很熟悉,突然组长说了我也就决定一定要倒腾一下,不然自己怎么提高呢?现在不研究,说不定 ...
- linux下mysql定时备份数据库
linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈 一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...
- crontab的相关设置&linux定时备份数据库
对于才了解crontab的人来说,应该按照以下的步骤来设置crontab 1.首先要检查是否装了crontab http://blog.sina.com.cn/s/blog_4881040d01011 ...
- Navicat for MySQL定时备份数据库及数据恢复
在做数据库修改或删除操作中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库.本篇文章主要讲述Navicat for MySQL定时备份数据库和数据恢复等功能,同时可以定时播放电 ...
- Linux 下定时备份数据库以及删除缓存
一.定时备份数据库 1.在根目录下创建备份文件夹 #mkdir backup 2.进入到该目录下,创建backup.sh文件 3.赋予文件权限让其变成可执行文件 4.在backup.sh中写备份的脚本 ...
- cron定时备份数据库
1.定时备份数据库 shell 脚本 #!/bin/bash # export and backup the abgent_web database.sql mysqldump -uusername ...
- 【shell脚本】定时备份数据库===dbbackup.sh
定时备份数据库是很有必要的 一.脚本内容 [root@localhost dbbackup]# cat dbbackup.sh #!/bin/bash #备份数据库 mysqldump -uroot ...
- 12、windows定时备份数据库
12.1.删除指定目录中的内容: del /Q E:\DATABAK\* copy 1.txt bak\a.txt 12.2.可用的备份计划: 1.脚本: BakScripts @echo off R ...
- shell脚本采用crontab定时备份数据库日志
测试服务器上才用定时脚本备份一个数据库 并打包压缩成tar避免文件过大 脚本如下: 测试服务器的shell backup_mysql.sh #!/bin/bash BASE_PATH=/alidata ...
随机推荐
- 回顾Spring MVC_01_概述_入门案例
SpringMVC: SpringMVC是Spring为展现层提供的基于MVC设计的优秀的Web框架,是目前最主流的MVC框架之一 SpringMVC通过注解,让POJO成为处理请求的控制器,而无须实 ...
- Android系统固件定制方式
target_product.mkAndroid系统在构建关于某种产品的固件时,一般会根据特定于该产品的具体target_product.mk来配置生成整个Android系统./target_prod ...
- 一个小笔记(2):Socket网络编程
网络通信的流程: 服务器端申请套接字 -> 绑定套接字到本地,打开端口 -> 监听端口 -> 等待接受消息 -> 有消息之后,读取消息 客户端申请套接字 -> 向服务端发 ...
- Echarts 异步数据加载遇到的问题
看了Echarts官网异步加载数据的Demo var myChart = echarts.init(document.getElementById('main')); // 显示标题,图例和空的坐标轴 ...
- 使用Docker compose编排Laravel应用
前言 Laravel官方开发环境推荐的是Homestead(其实就是一个封装好的Vagrant box),我感觉这个比较重,于是自己用Docker compose编排了一套开发环境,在这里分享下. 环 ...
- LeetCode 309. Best Time to Buy and Sell Stock with Cooldown (stock problem)
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- 算法导论 第九章 中位数和顺序统计量(python)
第i个顺序统计量:该集合中第i小的元素(建集合排序后第i位 当然算法可以不排序) 中位数:集合中的中点元素 下中位数 上中位数 9.1最大值和最小值 单独的max或min每个都要扫一遍 n-1次比较 ...
- 有上下界的网络流 loj115 loj116 loj 117
参考文章 无源汇有上下界的可行流 有源汇有上下界的最大流 有源汇有上下界的最小流 无源汇有上下界可行流 以 loj115 为例. 剥离出必要边与自由边. #include <iostream&g ...
- 理解js的几个关键问题(2): 对象、 prototype、this等
参考文档:http://www.cnblogs.com/ranran/archive/2014/05/19/3737217.html http://speakingjs.com/es5/ch17.ht ...
- webservice学习第一天
Webservice Webservice就是一种远程调用技术,他的作用就是从远程系统中获取业务数据 1 课程安排 l 什么是webservice l Webservice入门程序 l Webserv ...