您的位置:首页 > 编程语言 > Java开发

使用java实现自动备份mysql数据库

2013-05-06 10:43 597 查看
在实际应用中,定时备份数据库是一件非常重要的工作,下面是关于利用java程序实现数据库自动调用的方法,其实也不一定非要用java语言了,只要原理会了,大家大可使用其他语言来实现。话不多说,下面就来演示一下如何自动备份mysql下的abc数据库

1,在java API中为我们提供了一个Runtime类,它可以用来调用一些程序,比如notepad.exe,cmd.exe...

具体怎么回事,想了解的同学去看API吧,下面是实现代码:Backup.java

Java代码



import java.util.Calendar;

import java.util.Date;

import java.text.SimpleDateFormat;

import java.io.IOException;

import java.io.PrintStream;

public class Backup

{

public static void main(String[] args)

{

Runtime runtime = Runtime.getRuntime();

Calendar calendar = Calendar.getInstance();

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss");

String currentTime = dateFormat.format(calendar.getTime());

Process p = null;

PrintStream print = null;

StringBuilder buf = new StringBuilder();

for(String a : args){

buf.append(a);

buf.append(" ");

}

String databases = buf.toString();

try{

p = runtime.exec("cmd /c mysqldump -uroot -p1234 -B "+databases+">"+currentTime+".sql.bak");

}catch (IOException e){

if( p != null ){

p.destroy();

}

try{

print = new PrintStream(currentTime+"_backup_err.log");

dateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");

currentTime = dateFormat.format(calendar.getTime());

print.println(currentTime+" backup failed.");

e.printStackTrace(print);

print.flush();

}catch (IOException e2){

}finally{

if(print!=null){

print.close();

}

}

}

}

}

2,将以上java程序编译后得到Backup.class文件;

3,创建批处理文件mytask.bat:

Bat代码



@echo off

cd c:\backup_wj

rem 这里提倡使用绝度路径,并且如果绝度路径中有空格,记得用

rem 引号将路径括起来!

rem 可以将abc替换为其他数据库,多多个数据库,并用空格隔开

"D:\Program Files\Java\jdk1.6.0_31\bin\java.exe" Backup abc

3.1:根据评论我又发现了一个新的方法,不需要使用java,直接写一个批处理文件就可以实现自动备份功能,读者可以直接使用下面的批处理文件代替原来的批处理文件,不需要在使用java了,然后按照下面的步骤制订计划任务就可以了,代码如下:

Bat代码



mysqldump -uroot -p1234 -B abc > %date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.sql.bak

4,将Backup.class、mytask.bat放到同一个目录下,比如我就放在了c:\backup_wj目录下

5,在win7下配置任务计划,下面照着步骤一步一步走就行了:

5.1:在控制面板下找到“管理工具”——》“任务计划程序”





5.2:选择“任务计划程序库”——》“创建基本任务”



5.3:填写任务名称和描述



5.4:下面根据向导的描述操作就可以了;







5.5:点击“浏览”选择批处理文件“mytask.bat”;









5.6:点击“完成”后,选中autoBackup,点击“运行”测试一下:



是不是有一个黑窗口一闪而过,好的那么打开你存放backup.bat的目录看一看,是不是生成了一个备份文件呢?

下面是我的,不过我们的备份文件已经生成了4次,从文件名就可以看出生成的时间。



那么其中的原理大家都会了吧,其实就是让我们的操作系统定时去执行一个批处理文件“Backup.bat”,而这个批处理文件会去执行一个.class文件,这是一个java可执行文件,它会调用runtime.exec()方法,在命令行下执行一段命令,这段命令就是备份数据库的命令。

注意:对于备份的时间,我们可以设置得更加精细,通过“编辑触发器”中的“重复任务间隔”我们可以精确到每5分钟重复执行一次。具体怎么设置大家可以根据实际情况来设置。



查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: