• 使用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:dbmysql-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:dbmysql-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的定时备份工作圆满完成。

  • 相关阅读:
    js实现输入银行卡号隔四位添加一个空格
    写出优雅的代码
    FOJ Problem 1016 无归之室
    FOJ Problem 1015 土地划分
    大数相加减
    NYOJ 42 一笔画
    NYOJ36 水池数目
    NYOJ 32 组合数
    贪吃蛇StringBuilder 和 定时器
    星 辰 · 第 三 条 约 定
  • 原文地址:https://www.cnblogs.com/kxxx/p/10729462.html
Copyright © 2020-2023  润新知