使用mysqldump对MySQL进行定时备份的实践

公司里一直以来都在使用MySQL作为数据库进行软件的开发,但截止到目前为止,公司里开发的软件并没有对MySQL进行自动备份(含已经在客户正常使用的程序)。

考虑到这是一个巨大的风险,今天准备将MySQL自动备份的问题搞定。在处理该问题之前,考虑到MySQL是一个使用范围较广泛的数据库产品,网上肯定有非常多的自动备份工具,所以也没太过用心。

在网上搜索了一段时间之后才发现MySQL的自动备份并不像MS SQLServer,它并没有可视化的工具来支持,和我最开始想的差距有点大。

综合了网上资料和时间性,我选择了使用MySQL自带的mysqldump进行自动备份。

步骤1:批处理命令编写

由于mysqldump支持批处理命令,且我司和客户使用的都是Windows操作系统,故在参考了很多网上知识后编写了一个备份批处理命令,将其写为1个bat文件,文件内容如下:

echo

set backdir="C:\db_backup"
set dbname=cj_manage
set mysqlsetupdir="C:\db\mysql-5.7.14-winx64"
set rootPWD=Enlong123

echo forfiles /p "C:\db_backup" /m %dbname%_*.sql -d -30 /c "cmd /c del /f @path"
forfiles /p %backdir% /m %dbname%_*.sql -d -30 /c "cmd /c del /f @path"

if /i %time:~0,2% lss 10 set hh=0%time:~1,1%
if /i %time:~0,2% geq 10 set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%
set time=%hh%%mn%%ss%
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time%"

cd /d "%mysqlsetupdir%/bin"
mysqldump --opt -u root --password=%rootPWD% %dbname% > %backdir%/%dbname%_%Ymd%.sql

echo

其中:

set backdir="C:\db_backup"    设置备份文件的存储目录
set dbname=cj_manage    设置要备份的数据库名称
set mysqlsetupdir="C:\db\mysql-5.7.14-winx64"    设置mysql的安装目录
set rootPWD=Enlong123   设置root的登录密码

如下代码是完成将备份前30天的文件删除:

forfiles /p %backdir% /m %dbname%_*.sql -d -30 /c "cmd /c del /f @path"

文件形式是以数据库+当前时分秒的时间来命令的。由如下代码设置文件名称:

if /i %time:~0,2% lss 10 set hh=0%time:~1,1%
if /i %time:~0,2% geq 10 set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%
set time=%hh%%mn%%ss%
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time%"

%backdir%/%dbname%_%Ymd%.sql   这里构建了完成的文件的名称

这里我们的数据库都是默认的3306端口,如果端口发生变化需要在mysqldump命令中加入 -P的参数,这里不做具体阐述;

根据上面的批处理文件并结合我的实际,我在我司的一个服务器上直接执行bat文件,执行完成后其已经执行了一遍备份,证明批处理文件正确无误,可以进行接下来的工作

步骤2:设置定时任务执行批处理文件

由于是windows操作系统,我们采用windows中的“任务计划程序”来处理,具体步骤参见下面介绍:

2.1 打开windows操作系统的控制面板,在控制面板中选择“管理工具”打开,然后选中其中的“任务计划程序”打开

2.2 打开后,点击创建任务按钮,

2.3 在弹出的界面中首先填写执行计划任务的名称,然后选中“不管用户是否登录都要运行”

2.4 点击上图中的“触发器”选项卡,并点击“新建”按钮

2.5 在弹出的界面中设置定时任务的周期,这里我选择每天晚上的20:00,并点击确定按钮,如下图

2.6 点击确定后回到开始的界面选择“操作”选项卡,并点击新建“按钮”:

2.7 在弹出的界面中选择要执行的bat批处理文件,然后点击确定按钮

2.8 最后点击创建任务界面上的确定按钮,会弹出输入密码界面:

注意:这里输入的密码为登录到操作系统的用户名和密码。

输入正确的密码后,定时任务即创建完毕,等待第二天检查是否成功。

第二天经检查确定,已正确执行,至此MySQL的定时备份工作圆满完成。

原文地址:https://www.cnblogs.com/kxxx/p/10729462.html

时间: 2024-07-28 14:48:05

使用mysqldump对MySQL进行定时备份的实践的相关文章

mysql数据库定时备份

操作步骤:1.将脚本放到任意位置下,不容易被误删即可2.定时任务,一周执行一次脚本 脚本如下:#!bin/bash backuppath=/data/mysql/backup date=$(date +%Y%m%d%H%M) SQLuser=root SQLpwd=password mysqldump=/usr/local/mysql/bin/mysqldump mysql=/usr/local/mysql/bin/mysql HIS_Date=`date -d $(date -d "-30 d

mysql自动定时备份,自动备份,windowsmysql自动备份,mysql备份

己找到"mysql自动定时备份"的相关内容 天生创想OA OA软件 OA系统 OA办公系统 协同OA软件 OA 开源OA 协同OA系统 办公移动化的OA系统挑战 项目落地水平看出品质 近两年中,智能科技的快速发展及手机硬件设备的升级,使得人们进入到了移动智能生活模式,随之而来的是移动办公的迅速流行.业内人士一再强调,移动化办公是未来必然趋势,最大的原因在于其拥有较强的市场适用性.实用性,通过手机即可随时随地的处理"公文流转.公文签批.日程管理.通讯录.新闻资讯"等等

windows下mysql数据库定时备份。

注意:看本教程先必须会windows自带的"任务计划程序". 首先创建一个bat后缀的文件我的是timerExecutePhp.bat文件 timerExecutePhp.bat 这个文件是用来定时执行指定的php文件 timerExecutePhp.bat文件内容: F:\web\php-5.6.22-Win32-VC11-x64\php.exe F:\web\htdocs\demo\timer.php 注释: 1.F:\web\php-5.6.22-Win32-VC11-x64\p

Windows下为MySQL做定时备份

第一种:新建批处理文件 backup.dat,里面输入以下代码:  代码如下 复制代码 net stop mysqlxcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /ynet start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号!然后使用Windows的"计划任务"定时执行该批处理脚本即可.(例如:每天凌

Linux下crontab+php实现Mysql数据库定时备份

引言 大项目中的数据库备份是必不可少的,否则一旦出现大问题就GG了,虽然本文是讲述利用PHP实现数据库定时备份,但是这并不是好的方案 想要定时备份数据库,最快捷安全的方法就是利用shell脚本了,功能强大操作方便,而且执行速度极快,不像PHP还需要被apache解析一把.. 当然,不管是用php定时备份,还是shell脚本定时备份,都离不开crontab这玩意,毕竟它才是真正的定时器,这里粗略的说一下crontab吧 crontab使用简介 crontab常用基础命令 crontab -e //

Windows下为MySQL做定时备份(转)

转自:https://www.cnblogs.com/frankielf0921/p/5933127.html 第一种:新建批处理文件 backup.dat,里面输入以下代码:  代码如下 复制代码 net stop mysqlxcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /ynet start mysql 注意:批处理命令中路径里有空格的话,必须在路

mysql 数据库定时备份 增量/全备份

实验楼的 MySQL 数据库需要设计一个自动备份方案,能够每周执行一次全备份,每天执行一次增量备份. 数据库名称为 shiyanlou,管理的用户名为 shiyanlou,密码为 shiyanlou.注意需要先手动启动 MySQL 服务. 目标 设计并实现备份方案,任务完成后满足以下要求: MySQL 服务处于运行状态 需要为服务器中的 shiyanlou 用户设定计划任务 计划任务中设定每周的周一凌晨3点执行一次全备份 计划任务中设定每天凌晨3点执行一次增量备份,周一不执行 请不要编写额外的脚

[转]mysql自动定时备份数据库的最佳方法-支持windows系统

网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自动有备份呢? 这个方法是用bat批处理来完成的. 假想环境:MySQL 安装位置:D:\Program Files\MySQL\MySQL Server 5.0\data 如图: 数据库名称为:952game数据库备份目的地:d:\db_bak\ (你想把数据库备份到哪个盘的路径)我想备到D盘的db

mysql 自动定时备份

说明:以下是数据库自动备份脚本,可以保存成.bat的方式,然后用计划任务去定时执行. ::echo 数据库开始备份! @echo off ::定义磁盘 set disk=D ::定义单位名称 set unit=jd_scjdj ::定义压缩文件路径 set rar=C:\Program Files\WinRAR ::定义存放路径 set filepath_ntdat=%disk%:\webserver\data_bak\ntdat set filepath_ntcms=%disk%:\webse