springboot 数据库备份
springboot 数据库备份
- 实体类
public class MysqlBackups implements Serializable {private static final long serialVersionUID = 1L;private Long id;/*** mysql ip端口*/private String mysqlIp;/*** 数据库端口号*/private String mysqlPort;/*** 备份命令*/private String mysqlCmd;/*** 恢复命令*/private String mysqlBackCmd;/*** 数据库名称*/private String databaseName;/*** 备份文件名称*/private String backupsName;/*** 备份路径*/private String backupsPath;/*** 操作次数*/private Integer operation;/*** 备份时间*/@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")private Date backupTime;/*** 恢复时间*/@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")private Date recoveryTime;/*** 备注*/private String remark;
}
- 数据库备份 实现类
public interface IMysqlBackupsService extends IService<MysqlBackups> {/*** 数据库备份* @param filePath 备份地址* @param userName 数据库名称* @param password 数据库密码* @param ip 数据库ip* @param port 数据库端口号* @param database_name 数据库名称* @param remark* @return*/R mysqlBackups(String filePath, String ip, String port, String database_name, String userName, String password, String remark);
}
@Service
public class MysqlBackupsServiceImpl extends ServiceImpl<MysqlBackupsMapper, MysqlBackups> implements IMysqlBackupsService {/*** 数据库备份* @param filePath 备份地址* @param userName 数据库名称* @param password 数据库密码* @param ip* @param port* @param database_name* @param remark* @return*/@Transactional@Overridepublic R mysqlBackups(String filePath, String userName, String password, String ip, String port, String database_name, String remark) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");// 数据库文件名称StringBuilder mysqlFileName = new StringBuilder().append(Constant.DATA_BASE_NAME).append("_").append(sdf.format(new Date())).append(Constant.FILE_SUFFIX);// 备份命令StringBuilder cmd = new StringBuilder().append("mysqldump ").append("--no-tablespaces ").append("-h").append(ip).append(" -u").append(userName).append(" -p").append(password)// 排除MySQL备份表.append(" --ignore-table ").append(database_name).append(".mysql_backups ").append(database_name).append(" > ").append(filePath).append(mysqlFileName);// 判断文件是否保存成功if (!new File(filePath).exists()) {new File(filePath).mkdirs();}// 获取操作系统名称String osName = System.getProperty("os.name").toLowerCase();String[] command = new String[0];if (Constant.isSystem(osName)) {// Windowscommand = new String[]{"cmd", "/c", String.valueOf(cmd)};} else {// Linuxcommand = new String[]{"/bin/sh", "-c", String.valueOf(cmd)};}MysqlBackups mysqlBackups = new MysqlBackups();// 备份信息存放到数据库mysqlBackups.setMysqlIp(ip);mysqlBackups.setMysqlPort(port);mysqlBackups.setBackupsName(String.valueOf(mysqlFileName));mysqlBackups.setDatabaseName(database_name);mysqlBackups.setMysqlCmd(String.valueOf(cmd));mysqlBackups.setBackupsPath(filePath);mysqlBackups.setBackupTime(new Date());mysqlBackups.setOperation(0);mysqlBackups.setRemark(remark);this.save(mysqlBackups);try {// 获取Runtime实例Runtime.getRuntime().exec(command);return R.ok("Mysql 数据库备份成功,备份文件名:{}"+ mysqlFileName);} catch (Exception e) {e.printStackTrace();return R.error("网络异常,数据库备份失败");}}
}
- 控制类
public R mysqlBackups(@RequestBody MysqlBackups backups) {String path = null;// 获取操作系统名称String osName = System.getProperty("os.name").toLowerCase();if (Constant.isSystem(osName)) {// Windowspath = this.windowsPath;} else {// Linuxpath = this.linuxPath;}// 数据库用户名String userName = this.userName;// 数据库密码String password = this.password;// 数据库ipString ip = this.ip;// 数据库端口号String port = this.port;// 数据库名称String dbname = this.dbname;R r = mysqlBackupsService.mysqlBackups(path, userName, password, ip, port, dbname , backups.getRemark());return r;}
springboot 数据库备份相关推荐
- SQL Server 数据库备份
SQL Server 数据库备份 原文 http://www.cnblogs.com/ynbt/archive/2013/04/04/2999642.html 备份数据库是指对数据库或事务日志进行复制 ...
- Asp.net 不使用SQLDMO实现数据库备份和还原
今天需要做一个历史数据库,备份还原的程序,就是在sql服务器兴建一个数据库的历史版本的复.手工操作很方便,但是程序来实现我还没做过.上网找资料发现都调用了 SQLDMO 的 SQL COM 来实现. ...
- mysql数据库备份方案_MySQL平台数据库备份方案详细说明
在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.有时,正是MySQL管理员造成破坏.管理员已经知道表已破坏,用 ...
- 咪咕盒子链接服务器失败_云服务器怎样备份数据库备份
云服务器怎样备份数据库备份?云服务器数据库的备份很重要,而手动操作会比较麻烦.以西部数码云服务器为例,可以实现 Ms Sqlserver数据库定时自动备份,并存至指定存储空间. 打开链接 下载,下载后 ...
- javaweb实现mysql备份功能_java web 实现mysql 数据库备份、恢复
如题,由于项目需要,研究并实现了java web的 mysql数据库的备份.下载.恢复功能,中间遇到一些问题,耗费了不少时间,下面让我一一道来: 背景介绍: window 7系统 mysql 5.7 ...
- HANA 数据库备份hang住的解决办法
今天遇到 HANA 数据库备份hang住的情况.经过查 SAP NOTE 解决,记录一下过程.两个NOTE如下: 2452735 - HANA Backup failing with "[4 ...
- 数据库备份到文件服务器,数据库文件备份到云服务器上
数据库文件备份到云服务器上 内容精选 换一换 目前数据库服务器备份Agent安装包需要提交工单进行获取.当前仅支持x86计算类型的服务器,暂不支持鲲鹏计算类型的服务器.用户需要启用数据库备份前,需先在 ...
- 数据库备份定期删除程序的开发。
第一.最近客户的服务器数据库备份每天都在进行,随着数据量的不断的增加,备份也在不断的进行变大. 第二.于是一些问题就出现了客户的服务器的磁盘的空间有限,定期数据库备份文件太大而导致无法进行保存问题. ...
- Linux系统mongdb还原数据库,linux下mongodb数据库备份与还原
MongoDb数据库备份还原 数据库迁移,可视化工具NoSQLBooster for MongoDB 付费版才具有数据导入功能.代价过高,索性采起命令行web 数据备份 备份命令mongodb mon ...
最新文章
- java数组的协变_Java数组协变与范型不变性
- CSS在ASP.NET中使用
- 一个权限的设置,你会混淆么
- nacos集群之日志狂刷fail to connect server,after trying 567 times,last try server is...
- 遍历Map的几种方式以及性能小结
- Java从网络批量读取图片并保存至本网站服务器后再插入文章中
- 华北水利水电大学计算机实验报告怎么写,考试类:华北水利水电大学C语言实验报告.doc...
- linux指令诀窍大全,六个优雅的Linux命令行技巧
- [转] Spring注解@Component、@Repository、@Service、@Controller区别
- 系统性的学会 Pandas, 看这一篇就够了!
- AndroidStudio插件集合
- PFC离散元软件快捷操作方式
- 【坚持每日一题9.21】整数的英语表示
- 魔百和CM311-1a YST线刷精简固件(可救砖)
- Python 程序员需要知道的 30 个技巧
- Excel如何将工作表按数值大小排序
- Auto.js 设置通知栏
- Android 回车换行的持久化
- 今年电商圈618活动很安静!
- Java常用类学习笔记
热门文章
- 1094.谷歌的招聘
- 【Effection C++】读书笔记 条款07~条款08
- 需求说明定义一个超市会员类属性名字会员号余额积分打印名字 会员号 余额和积分充值的方法余额 要累加 输出一下余额消费的方法余额减 积分累加 每消费10元
- 【DB笔试面试623】在Oracle中,给出下面语句的可能的优化思路。
- Ubuntu下安装翻译软件星际译王StarDict
- hihocoder-1851-D级上司
- 李洋:手把手教你开发一个元服务万能卡片
- PHP Fatal error: Uncaught exception 'PHPExcel_Calculation_Exception'(PHPExcel 数据问题)
- FastDFS搭建单机图片服务器(二)
- 【评测】人肝脏细胞转染实验操作