| | |
| | | // 获取系统时间 |
| | | Date finalTime = new Date(); |
| | | Date startTime = null; |
| | | // 获取系统备份周期(分钟) |
| | | int backupCycle = Integer.valueOf(Global.getSystemConfig("SYSTEM_BACK_CYCLE", "1440")); |
| | | // 获取系统最大备份时间 |
| | | StringBuilder sbSql = new StringBuilder(); |
| | | sbSql.append("SELECT TIMESTAMPDIFF(MINUTE, end_time, ?) AS diff_minutes,end_time \n"); |
| | | sbSql.append("SELECT end_time \n"); |
| | | sbSql.append("FROM product_sys_backup_log \n"); |
| | | sbSql.append("WHERE backup_status = 1 \n"); |
| | | sbSql.append("ORDER BY end_time DESC \n"); |
| | | sbSql.append("LIMIT 1 \n"); |
| | | FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {standardTimeFormat.format(finalTime)}, false); |
| | | if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("diff_minutes"))) { |
| | | Integer diffMinutes = fseMaxLogTime.getInteger("diff_minutes"); |
| | | if (diffMinutes < backupCycle) { |
| | | // 小于备份周期,不备份 |
| | | return ; |
| | | } |
| | | FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {}, false); |
| | | if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("end_time"))) { |
| | | startTime = fseMaxLogTime.getDate("end_time"); |
| | | } |
| | | // 初始备份日志数据 |
| | |
| | | // 保存日志 |
| | | baseDao.saveFieldSetEntity(fseBackLog); |
| | | } |
| | | // public void systemBackupInit() { |
| | | // // 获取系统时间 |
| | | // Date finalTime = new Date(); |
| | | // Date startTime = null; |
| | | // // 获取系统备份周期(分钟) |
| | | // int backupCycle = Integer.valueOf(Global.getSystemConfig("SYSTEM_BACK_CYCLE", "1440")); |
| | | // // 获取系统最大备份时间 |
| | | // StringBuilder sbSql = new StringBuilder(); |
| | | // sbSql.append("SELECT TIMESTAMPDIFF(MINUTE, end_time, ?) AS diff_minutes,end_time \n"); |
| | | // sbSql.append("FROM product_sys_backup_log \n"); |
| | | // sbSql.append("WHERE backup_status = 1 \n"); |
| | | // sbSql.append("ORDER BY end_time DESC \n"); |
| | | // sbSql.append("LIMIT 1 \n"); |
| | | // FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {standardTimeFormat.format(finalTime)}, false); |
| | | // if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("diff_minutes"))) { |
| | | // Integer diffMinutes = fseMaxLogTime.getInteger("diff_minutes"); |
| | | // if (diffMinutes < backupCycle) { |
| | | // // 小于备份周期,不备份 |
| | | // return ; |
| | | // } |
| | | // startTime = fseMaxLogTime.getDate("end_time"); |
| | | // } |
| | | // // 初始备份日志数据 |
| | | // FieldSetEntity fseBackLog = new FieldSetEntity("product_sys_backup_log"); |
| | | // fseBackLog.setValue("start_time", startTime); |
| | | // fseBackLog.setValue("end_time", finalTime); |
| | | // |
| | | // // 执行备份 |
| | | // boolean flag = backupProcess(startTime, finalTime); |
| | | // if (flag) { |
| | | // fseBackLog.setValue("backup_status", 1); |
| | | // } else { |
| | | // fseBackLog.setValue("backup_status", 0); |
| | | // } |
| | | // // 保存日志 |
| | | // baseDao.saveFieldSetEntity(fseBackLog); |
| | | // } |
| | | |
| | | |
| | | /** |
| | |
| | | } else { |
| | | log.writeInfo("【备份数据库】数据库备份失败,退出码: " + exitCode, BackupLogger.ERROR_TYPE); |
| | | } |
| | | return true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.writeInfo("【备份数据库】数据库备份失败:" + e.getMessage(), BackupLogger.ERROR_TYPE); |
| | | backupFile.delete(); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | /** |