zoukankan      html  css  js  c++  java
  • 使用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的定时备份工作圆满完成。

  • 相关阅读:
    Java 基础
    Java 数据类型
    Spring 拦截器实现事物
    SSH 配置日记
    Hibernate 知识提高
    Jsp、Servlet
    leetcode 97. Interleaving String
    leetcode 750. Number Of Corner Rectangles
    leetcode 748. Shortest Completing Word
    leetcode 746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/kxxx/p/10729462.html
Copyright © 2011-2022 走看看