Mysql自动备份及清理(Windows)

Mysql自动备份及清理(Windows)

在Windows中安装的mysql,可通过bat备份清理脚本和Windows定时任务完成自动备份及清理。

1 脚本

@echo off

:: 数据库IP
set host=127.0.0.1
:: 数据库端口号
set port=3306
:: 用户名
set user=root
:: 密码
set pass=root 

:: 要备份的数据库名称
set dbname=test
:: 设置备份文件放置的路径
set backup_dir=E:\mysql-bak\test
:: 备份日志
set logfile=%backup_dir%\%dbname%-log.txt
:: 备份保留天数
set backupDays=30

:: 如果文件夹不存在则创建
if not exist %backup_dir% md %backup_dir%

:: 获取当天的日期格式
set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%
set backup_date=%date:~3,4%%date:~8,2%%date:~11,2%%time:~0,2%%time:~3,2%%time:~6,2%

echo =========== %backup_date%  %dbname% =========== >> %logfile%

:: 设置备份文件的路径
set backupfile=%backup_dir%\%dbname%_backup_%backup_date%.sql

echo 备份文件名称为:%backupfile% >> %logfile%

echo 使用mysqldump对指定的MySql进行备份 >> %logfile%

mysqldump -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
 
echo 数据备份完成 >> %logfile%

echo 查询过期文件并删除 >> %logfile%

:: 打印符合条件的文件到日志
forfiles /p %backup_dir% /s /m %dbname%_backup_.* /d -%backupDays% /c "cmd /c echo @file" >> %logfile%
:: 清理过期文件
forfiles /p %backup_dir% /s /m %dbname%_backup_*.sql /d -%backupDays% /c "cmd /c del @file /f"

echo 删除完成 >> %logfile%

2 创建定时任务

打开【控制面板】 > 【管理工具 】> 【任务计划程序】或直接搜索任务计划程序,选择【操作】>【创建基本任务】
在这里插入图片描述

设置定时任务名称:
在这里插入图片描述

触发器默认选择“每天”(根据实际而定):
在这里插入图片描述

设置定时任务开始执行日期及执行时间:
在这里插入图片描述

操作选择“启动程序”:
在这里插入图片描述

选择执行的备份的脚本:
在这里插入图片描述

确认信息无误后,点击完成即可。
在这里插入图片描述

可手动右击任务,立即执行一次,验证脚本是否有问题,检查执行后的备份文件是否有问题;为了保险起见,还可以将备份的sql导入到数据库,验证备份的sql是否有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值