通过windows服务器定时任务,定时备份mysql数据库。

版权声明:本文章的所有内容,包括文字、图片,均为原创。转载请注明出处。作者首页:https://blog.csdn.net/songxinfeng1989 https://blog.csdn.net/songxinfeng1989/article/details/82877123

为了防止服务器宕机,导致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.创建任务

右键选择“任务计划程序库”--》“创建任务”

输入一个名字,选择不管用户是否登录都要运行,

注:如果选择只在用户登录时运行,未登录状态是不会执行的。

创建定时器,指定每天执行脚本的时间。

指定脚本位置。

确定,输入服务器登录用户密码,确定后,即可添加成功。

猜你喜欢

转载自blog.csdn.net/songxinfeng1989/article/details/82877123