public class DatabaseBackup { /** * * @param dbdir mysql数据库安装路径 * @param dbname 数据库的名称 * @param backdir 备份的目录 */ public static void backup(String dbdir, String dbname, String backdir) { Calendar calendar = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd_HHmmss"); String currentTime = dateFormat.format(calendar.getTime()); try { long startTime = System.currentTimeMillis(); Runtime rt = Runtime.getRuntime(); Process child = rt .exec(dbdir + "/bin/mysqldump --default-character-set=utf8 -uroot -p123456 " + dbname); InputStream in = child.getInputStream(); InputStreamReader xx = new InputStreamReader(in, "utf8"); FileOutputStream fout = new FileOutputStream(new File(backdir, dbname + "_" + currentTime + ".bak")); OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8"); dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); writer.write("-- Dump by Microsoul at " + dateFormat.format(calendar.getTime()) + "\r\n"); String inStr; BufferedReader br = new BufferedReader(xx); // 这样实时写入文件很重要,网上有很多是将读取的存入字符串中,最后再写成文件,这样会导致Java的堆栈内存溢出。 while ((inStr = br.readLine()) != null) { writer.write(inStr); writer.write("\r\n"); } writer.write("\r\n-- Use " + (System.currentTimeMillis() - startTime) + "ms\r\n"); writer.flush(); in.close(); xx.close(); br.close(); writer.close(); fout.close(); } catch (Exception e) { PrintStream print = null; try { print = new PrintStream(new File(backdir, 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(); } } } } }
以上是备份的代码;
public class Test { public static void main(String[] args) { Calendar twentyOne = Calendar.getInstance(); twentyOne.set(Calendar.HOUR_OF_DAY, 23); twentyOne.set(Calendar.MINUTE, 0); twentyOne.set(Calendar.SECOND, 0); new Timer().schedule(new TimerTask() { @Override public void run() { DatabaseBackup.backup("/usr/local/mysql", "test", "/home/xtiger/db/"); } }, twentyOne.getTime(), 24 * 3600 * 1000); } }
以上是调用的代码。通过 Timer定时调用。
相关推荐
在实际应用中,定时备份数据库是一件非常重要的工作,下面是关于利用java程序实现数据库自动调用的方法,其实也不一定非要用 java语言了,只要原理会了...话不多说,下面就来演示一下如何自动备份mysql下的abc数据库:
可以帮助windows环境下的mysql用户实现自动备份功能.分完全备份和增量备份,可立即执行和定期执行.点击'完全备份'和'增量备份'即可开始周期任务.定期完全备份的时间为自任务开始后每隔48小时的凌晨5点,定期增量备份为...
简单的自动备份数据库 只添加sqlserver 其他数据库自己添加 写个bat 就可以实现自动备份
用java编写的学生考试系统,支持成绩打印到excel,支持试卷导入导出 功能: 管理员: 试卷管理: 试卷添加/更改/查阅: 更改试卷属性: 试卷名称 试卷时间 试题添加 试题删除 试题上移 试题下移 试题修改 ...
本项目是一个基于Java Swing和MySQL开发的学生信息管理系统,旨在提供一个直观、高效、可靠的平台,以满足学校对学生信息管理的需求。系统具有以下核心功能: 1. 学生信息管理:支持对学生基本信息的增删改查操作,...
本项目是一个基于Java Swing和MySQL开发的汽车租赁管理系统,旨在提供一个高效、便捷的汽车租赁解决方案。系统涵盖了从车辆管理、租赁业务处理到财务管理等核心功能,可满足不同规模汽车租赁公司的需求。 主要功能...
后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。系统拥有强大的模板管理功能,布局版块支持设置输出条件,让前端页面展示方便快捷。 为了提高论坛性能,技术选型 Spring 5.0 + ...
后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。系统拥有强大的模板管理功能,布局版块支持设置输出条件,让前端页面展示方便快捷。 为了提高论坛性能,技术选型 Spring 5.0 + ...
系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效。数据库表结构设计使用分表方案,提高系统的负载能力。后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。系统拥有...
目录 前言 1. 一般信息 ...6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题 6.8. 复制启动选项 6.9. 复制FAQ 6.10. 复制故障诊断与排除 ...
4.14 TcX 二进制代码 4.15 安装后期(post-installation)的设置与测试 4.15.1 运行mysql_install_db 的问题 4.15.2 启动 MySQL 服务器的问题 4.15.3 自动启动和停止 MySQL 4.15.4 选项文件 ...
2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装Zip文件安装MySQL 2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动...
2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装Zip文件安装MySQL 2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动...
6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题 6.8. 复制启动选项 6.9. 复制FAQ 6.10. 复制故障诊断与排除 6.11. 通报复制缺陷 6.12. 多服务器...
4.13 OS/2 注意事项 4.14 TcX 二进制代码 4.15 安装后期(post-installation)的设置与测试 4.15.1 运行mysql_install_db 的问题 4.15.2 启动 MySQL 服务器的问题 4.15.3 自动启动和停止...
本项目是一个基于Java Swing和MySQL开发的学生选课成绩信息管理系统,旨在提供一个直观、高效、便捷的管理平台,以满足学校对学生的选课和成绩管理需求。系统采用分层的软件架构,具有良好的可扩展性和可维护性,...
2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装Zip文件安装MySQL 2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动...
+ 4.15.3 自动启动和停止 MySQL + 4.15.4 选项文件 o 4.16 升级和降级(downgrading)时有什么特别要做的事情吗? + 4.16.1 从一个 3.22 版本升级到 3.23 + 4.16.2 从一个 3.21 版本升级到 3.22 + 4.16.3 从...
系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效。后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。系统拥有强大的模板管理功能,布局版块支持设置输出条件,让前端...