在实际应用中,定时备份数据库是一件非常重要的工作,下面是关于利用java程序实现数据库自动调用的方法,其实也不一定非要用java语言了,只要原理会了,大家大可使用其他语言来实现。话不多说,下面就来演示一下如何自动备份mysql下的abc数据库:
1,在java API中为我们提供了一个Runtime类,它可以用来调用一些程序,比如notepad.exe,cmd.exe...
具体怎么回事,想了解的同学去看API吧,下面是实现代码:Backup.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();
- System.out.println(databases);
- 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:
- @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了,然后按照下面的步骤制订计划任务就可以了,代码如下:
- 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分钟重复执行一次。具体怎么设置大家可以根据实际情况来设置。
相关推荐
在实际应用中,定时备份数据库是一件非常重要的工作,下面是关于利用java程序实现数据库自动调用的方法,其实也不一定非要用 java语言了,只要原理会了...话不多说,下面就来演示一下如何自动备份mysql下的abc数据库:
java备份mysql、可执行jar文件、配置文件可修改、xml解析,执行sql语句,jdbc访问数据库,jdbc配置文件可修改
简单的自动备份数据库 只添加sqlserver 其他数据库自己添加 写个bat 就可以实现自动备份
此mysqldump版本为5.6.12,内含详细使用方法,包括cmd的备份方式、java的备份方式
java实现对mysql数据库的备份与还原,可跨平台,windows与Linux通用,代码内含有利用注册表信息获取mysqldump命令实例
java备份与恢复mysql数据库,在网上很难找到相关的资源,所有笔者参照了一些资料,自己用MyEclipse写了一个,里面有源码,有详细的说明.
java实现mysql数据库的表导出到excel文件,已经基本的demo包含jar包,可以导入的eclipse里面。比较好用吧
通过Java代码备份Mysql数据库Demo,虽然比较简单,但是可以节省您很多学习时间、试错时间。
文档中的代码采用java技术模拟mysql命令实现mysql数据库的备份!
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;... * MySQL数据库备份 * */ public class MySQLDatabase
远程备份MySQL数据库 利用sqldump 进行远程数据库备份到本地 非常方便
mysql 数据库备份,通过 java 代码实现设定备份时间,定时每天进行备份。
Java在线备份和还原MySQL数据库,使用mysqldump命令实现备份,使用mysql命令实现的还原,具体大家看源代码吧,在还原的时候足足整了我一个下午才找到错误原因,源代码里面有写原因。大家看代码就知道了。
java备份与恢复MYSQL数据库,简单好用
NULL 博文链接:https://techpool.iteye.com/blog/553826
Java实现Mysql数据库完整、增量备份与还原
数据库数据的备份与还原最好是使用数据库自带的客户端软件来实现,JAVA可以通过调用mysqldump、mysql客户端软件分别进行mysql数据库的备份还原,当然前提是JAVA服务器必须安装mysql客户端软件
mysql 数据库备份 java 源代码,通过hibernate获取数据库配置信息,进行选择性的数据库备份。
利用JDBC连接数据库,不依耐mysql的shell命令, 适合b/s 服务器备份