当前位置: 首页 > news >正文

java定时任务备份数据库

文章目录

  • 前言
  • 一、定时任务备份
  • 二、分享两个windows运行项目脚本
  • 总结


前言

数据库备份

程序中数据库备份可以有效避免因为意外,导致数据丢失,因此数据备份显得尤为重要。


一、定时任务备份

  • 定时任务类,要在配置类或启动类开启 @EnableScheduling

@Data
@Sl4j
@Service
public class SqlBackupTask {@Value("${app.sqldir}")private String sqlDir;@Value("${app.host}")private String host;@Value("${app.port}")private String port;@Value("${app.username}")private String username;@Value("${app.password}")private String password;@Value("${app.dbname}")private String dbname;/*** 执行数据库备份*/// 每日0点执行@Scheduled(cron = "0 0 0 * * ?")public void windowsDump() throws Exception {File file = new File(sqlDir);if (!file.exists()) {file.mkdir();}LocalDateTime now = LocalDateTime.now();String sqlname = now.format(DateTimeFormatter.ofPattern("yyyy_MM_dd"));String fileName = sqlDir + File.separator + sqlname + ".sql";File datafile = new File(fileName);if (datafile.exists()) {log.info("文件{}已存在,请更换", datafile.getName());return;}//拼接cmd命令  windows下 cmd   Linux下 /bin/shProcess exec = Runtime.getRuntime().exec("cmd /c mysqldump -h" + host + " -P" + port + " -u " + username + " -p" + password + " " + dbname + " > " + datafile);if (exec.waitFor() == 0) {log.info("数据库备份成功");delHistory(now);} else {log.error("数据库备份失败");}}/*** 删除当前时间五天前的备份*/// 每日1点执行@Scheduled(cron = "0 0 1 * * ?")private void delleteHistory(LocalDateTime now) {try {for (int i = 5; i < 10; i++) {String sqlname = now.plusDays(-i).format(DateTimeFormatter.ofPattern("yyyy_MM_dd"));String fileName = sqlDir + File.separator + sqlname + ".sql";File dataFile = new File(fileName);if (dataFile.exists()) {dataFile.delete();}}} catch (Exception e) {log.error("删除数据库备份文件失败", e);}}
}
  • yml 配置
app:sqldir: D:/dxb/sqlbackup/host: 10.0.15.36port: 3306username: rootpassword: rootdbname: dx_bao

二、分享两个windows运行项目脚本

  • start.bat

可以做到后台运行且不显示cmd窗口

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
start /b java -jar ruoyi-admin.jar --spring.config.location=./application.yml > nul 2>&1 &
  • stop.bat

主要是根据端口停止

@echo off
setlocal enabledelayedexpansion
for /f "eol=* tokens=*" %%i in ('netstat -an -o ^| findstr "8888"') do (
set a=%%i
set a=!a:~69,10!
echo !a!
taskkill /F /PID !a!
)
pause>nul

总结

这样就无须借助其他工具,只要程序运行,就能随时完整备份数据库了。

相关文章:

java定时任务备份数据库

文章目录 前言一、定时任务备份二、分享两个windows运行项目脚本总结 前言 数据库备份 程序中数据库备份可以有效避免因为意外,导致数据丢失,因此数据备份显得尤为重要。 一、定时任务备份 定时任务类&#xff0c;要在配置类或启动类开启 EnableScheduling Data Sl4j Servic…...

Vue.js 传递路由参数和查询参数

Vue.js 传递路由参数和查询参数 在 Vue.js 开发中&#xff0c;Vue Router 提供了灵活的方式来处理路由参数和查询参数&#xff0c;使得组件能够根据不同的路径或查询条件渲染相应的内容。 路由参数 路由参数&#xff08;也称为路径参数&#xff09;是 URL 路径的一部分&…...

2025数学建模美赛|F题成品论文

国家安全政策与网络安全 摘要 随着互联网技术的迅猛发展&#xff0c;网络犯罪问题已成为全球网络安全中的重要研究课题&#xff0c;且网络犯罪的形式和影响日益复杂和严重。本文针对网络犯罪中的问题&#xff0c;基于多元回归分析和差异中的差异&#xff08;DiD&#xff09;思…...

私有包上传maven私有仓库nexus-2.9.2

一、上传 二、获取相应文件 三、最后修改自己的pom文件...

企业信息化4:免费开源的财务管理系统

前言&#xff1a; 一个完整的财务管理系统不局限于传统的记账和核算工具&#xff0c;而是一整套包含了公司财务战略规划制订、编制各种财务计划、预算管理、资金管理、资产管理、税务管理的完整解决方案&#xff0c;从而实现对公司整体经营状况进行财务分析并定期汇报&#xff…...

PyCharm配置Python环境

1、打开PyCharm项目 可以从File-->Open-->选择你的项目路径-->OK&#xff0c;或者直接点击Open&#xff0c;找到项目路径-->OK&#xff0c;如图所示(点击Ok后可能有下面的弹窗&#xff0c;选择“Trust Project”即可&#xff0c;然后选择“New Window”打开项目) …...

蓝桥杯3522 互质数的个数 | 数论

题目传送门 首先根据a^b得出需要使用欧拉函数φ&#xff0c;根据欧拉函数的性质&#xff1a; φ ( a b ) a b − 1 ∗ φ ( a ) φ ( n ) n ∗ ( 1 − 1 / p 1 ) ∗ ( 1 − 1 / p 2 ) ∗ . . . ∗ ( 1 − 1 / p k ) &#xff0c;其中 p i 为 n 的质因数 φ(a^b)a^{b-1}*φ(…...

Effective C++ 规则49:了解 new-handler 的行为

1、背景 在 C 中&#xff0c;new 运算符用于动态分配内存。然而&#xff0c;当内存分配失败时&#xff0c;程序默认会抛出一个 std::bad_alloc 异常。为了更灵活地处理这种情况&#xff0c;C 提供了一种机制&#xff0c;允许开发者自定义内存分配失败时的行为。这就是 new-han…...

头像生成小程序搭建(免费分享)

如下图为小程序页面的基本效果&#xff0c;下面将介绍该小程序的功能 页面template代码如下&#xff1a; <template><view class"avatar-containner"><block v-if"!showCropper"><image class"pageback" src"../../s…...

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09; 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09;DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…...

MySQL 基础学习(2): INSERT 操作

在这篇文章中&#xff0c;我们将专注于 MySQL 中的 INSERT 操作&#xff0c;深入了解如何高效地向表中插入数据&#xff0c;并探索插入操作中的一些常见错误与解决方案。 一、基础 INSERT 语法 在 MySQL 中&#xff0c;INSERT 操作用于向表中插入新记录&#xff0c;基本语法如…...

openstack 客户端命令行简介

openstack 客户端命令行简介 基本用法常用命令分类**身份认证&#xff08;Keystone&#xff09;**常用命令 **计算服务&#xff08;Nova&#xff09;**常用命令&#xff1a; **网络服务&#xff08;Neutron&#xff09;**常用命令&#xff1a; **块存储服务&#xff08;Cinder&…...

Oracle查看数据库表空间使用情况

Oracle RAC环境查看表空间使用情况 查询字段释义&#xff1a; NEED_ADDFILE,--是否需增加表空间文件 TABLESPACE_NAME,--表空间名称 TABLESPACE_FILE_COUNT, --表空间当前数据文件数量 NOW_FILEENABLE_BLOCKS,--表空间文件当前数据块数 NOW_FILEENABLE_BYTES_GB,--表空间文件当…...

[护网杯 2018]easy_tornado1

题目 、 依次点击文件查看 /flag.txt flag in /fllllllllllllag /welcome.txt render /hints.txt md5(cookie_secretmd5(filename)) tornado模板注入 报cookie /error?msg{{handler.settings}} cookie_secret: 6647062b-e68d-4406-90d3-06e307fa955c} 使用python脚本…...

关于java实现word(docx、doc)转html的解决方案

最近在研究一些关于文档转换格式的方法&#xff0c;因为需要用在开发的一个项目上&#xff0c;所以投入了一些时间&#xff0c;给大家聊下这块逻辑及解决方案。 一、关于word转换html大致都有哪些方法&#xff1f; &#xff08;1&#xff09;使用 Microsoft Word 导出 其实该…...

【8】思科IOS AP升级操作

1.概述 本文主要针对思科AP的升级操作进行记录,思科的AP目前主要分为IOS和COS AP,IOS AP是我们常见的AP3502/AP1602/AP2702等等型号的AP,而COS AP是AP2802/3802等型号的AP。当然这里所指的都是一些室内AP,如AP1572等室外AP也同样适用。本文先对IOS AP的升级操作进行总结,…...

【ROS2】RViz2界面类 VisualizationFrame 详解

1、简述 VisualizationFrame 继承自 QMainWindow 和 WindowManagerInterface; 窗口顶部是常规布局:菜单栏 和 工具栏 窗口中心是 RenderPanel,用来渲染3D画面 周围是dock区域,包括:DisplaysPanel、ViewsPanel、TimePanel、SelectionPanel 和 ToolPropertiesPanel Windo…...

2025年01月24日Github流行趋势

项目名称&#xff1a;shadPS4 项目地址url&#xff1a;https://github.com/shadps4-emu/shadPS4项目语言&#xff1a;C历史star数&#xff1a;15576今日star数&#xff1a;653项目维护者&#xff1a;georgemoralis, psucien, squidbus, raphaelthegreat, DanielSvoboda项目简介…...

Gradle buildSrc模块详解:集中管理构建逻辑的利器

文章目录 buildSrc模块二 buildSrc的使命三 如何使用buildSrc1. 创建目录结构2. 配置buildSrc的构建脚本3. 编写共享逻辑4. 在模块中引用 四 典型使用场景1. 统一依赖版本管理2. 自定义Gradle任务 3. 封装通用插件4. 扩展Gradle API 五 注意事项六 与复合构建&#xff08;Compo…...

【Airsim 仿真】查找配置文件 settings json 的路径优先级

Airsim 查找配置文件 settings.json 的路径优先级 参考官方文档 Settings - AirSim 文件格式要求 settings.json 文件采用常规的 JSON 格式。在首次启动时&#xff0c;AirSim 会在用户的主文件夹中创建一个没有设置的 settings.json 文件&#xff08;待测试&#xff09;。为…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...