为了防止服务器宕机,导致mysql数据库损坏无法修复,所以每天定时进行备份。一旦有问题直接还原数据库!
50多个G的数据库备份完成sql大概在20G,通过压缩后大概在2G左右。
长时间进行后硬盘吃不消。所以做了一个定时清理备份文件的脚本。
点此进入下一篇文章->精简mysql数据库备份文件 - windows定时任务
嫌自己编写麻烦的可以直接下载后修改,每个1积分。
制作完成的脚本下载地址:
数据库密码为空的 脚本下载地址:点此下载 ↓ 数据库密码为空的脚本
数据库密码为非空修改脚本文档:点此下载 ↓ 数据库密码为非空修改脚本文档
一、编写可执行脚本:
1提示文本
rem *******Start Backup***********
@echo off
rem *******Start Backup*********** -->输出提示文本
@echo off -->关闭执行语句显示
2.声明备份sql的文件名称(本次采用 “数据库名称_yyyyMMdd” 格式)
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
set fileName="smartshop_%Ymd%"
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" -->声明 Ymd变量 赋值为当前时间yyyyMMdd
set fileName="test_%Ymd%" -->声明fileName变量 赋值为“test_当前时间yyyyMMdd”
3.执行mysql备份命令。
..\mysql\bin\mysqldump --opt -u root --password= test --skip-lock-tables > \\172.30.162.8\NECbak\%fileName%.sql
..\mysql\bin\mysqldump 是mysqldump相对于脚本文件的路径。
--opt等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用--skip-opt禁用.
-u root 用户名是root
--password= root的密码(我数据库是没有密码的,所以此处只有=)
test 要备份的数据库名称
--skip-lock-tables 执行备份时进行锁表(防止同时操作一张表导致锁表)
> 导出符号
\\172.30.162.8\NECbak\%fileName%.sql 导出路径+文件名+后缀(\172.30.162.8\NECbak\test_20180928.sql)
注:此路径为其他服务器共享文件夹路径,可根据实际情况填写
4.将数据库备份文件打成压缩包
..\jdk\bin\jar cf \\172.30.162.8\NECbak\\%fileName%.rar \\172.30.162.8\NECbak\\%fileName%.sql
..\jdk\bin\jar 是jar相对于脚本文件的路径。
cf -c 创建新的归档文件 、-f 指定归档文件名
\\172.30.162.8\NECbak\\%fileName%.rar 压缩后的路径+文件名+后缀(\172.30.162.8\NECbak\test_20180928.rar)
\\172.30.162.8\NECbak\\%fileName%.sql 被压缩的sql文件路径+文件名+后缀(\172.30.162.8\NECbak\test_20180928.sql)
5.删除备份的sql
del \\172.30.162.8\NECbak\\%fileName%.sql
del \\172.30.162.8\NECbak\\%fileName%.sql
del 删除命令
\\172.30.162.8\NECbak\\%fileName%.sql 要删除的sql文件路径+文件名+后缀(\172.30.162.8\NECbak\test_20180928.sql)
6.删除完成提示文本
@echo on
rem *******Backup Finished********
@echo on -->打开执行语句显示
rem *******Backup Finished******** -->提示文本。
二、添加定时任务
1.打开搜索输入任务计划程序
“开始”--》“控制面板”--》将查看方式选择为“大图标”模式--》“管理工具”--》“任务计划程序”
2.创建任务
右键选择“任务计划程序库”--》“创建任务”
输入一个名字,选择不管用户是否登录都要运行,
注:如果选择只在用户登录时运行,未登录状态是不会执行的。
创建定时器,指定每天执行脚本的时间。
指定脚本位置。
确定,输入服务器登录用户密码,确定后,即可添加成功。