zoukankan      html  css  js  c++  java
  • windows下mysql自动备份及备份同步至远端的NAS解决方案

    一、问题描述

    某项目客户要求把阿里云上一台ECS非核心的mysql库做备份,具体要求如下:

    1、每天1:00对mysql数据库进行完全备份。

    2、备份文件存放到阿里云的NAS平台上。

    3、保留5天的备份副本。

    TPS:

    • 运行mysql的ECS的操作系统为windows 2012 64位

    • mysql的版本为MariaDB 10.2

    • 本地备份路径在C:mysql_backup(因为只有一个系统盘,没得选择)

    看似很简单的问题,中间在实施过程中,还是遇到一些坑,特地作一下记录,以备后续参考。

     

    二、实施过程

    拓扑图-20210825

    2.1 编写mysql的备份脚本

    1、mysql的自动备份脚本

    @echo off
    set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
    cd C:Program FilesMariaDB 10.2in&&mysqldump -hlocalhost  -uroot -p***** --single-transaction --opt --events  --triggers  --routines -B itsm > C:itop_mysql_backupitsm_%Ymd%.sql
    ​
    forfiles /p "C:itop_mysql_backup" /s /m *.sql /d -5 /c "cmd /c del @path"
    

      

    mysqldump参数说明:

    • --single-transaction:该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。本选项和--lock-tables 选项是互斥的,因为LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。

    • --opt: 等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用--skip-opt禁用.

    • --event: 导出事件

    • --triggers: 导出触发器

    • --routines:导出存储过程以及自定义函数

    forfiles参数说明:

    • /p Path

      指定 Path,表明要从哪里开始搜索。默认的文件夹是当前工作目录,该目录通过键入句号 (.) 指定。

      注:绝对路径应该包含在双引号中,且路径应该由反斜杠分割:example:"D:HOMEDesktop62backup"

    • /m SearchMask

    按照 SearchMask 搜索文件。默认的 SearchMask*.*

    • /s

    指示 forfiles 在子目录中搜索。

    • /c Command

    在每个文件上运行指定的 Command。带有空格的命令字符串必须用引号括起来。默认的 Command"cmd /c echo @file"

    • /d[{+ | -}] [{MM/*DD/YYYY* | DD}]

    选择日期大于或等于 (+)(或者小于或等于 (-))指定日期的文件,其中 MM/*DD/YYYY* 是指定的日期,DD 是当前日期减去 DD 天。如果未指定 +-,则使用 +DD 的有效范围是 0 - 32768。

    • /?

    在命令提示符下显示帮助。

    2、设置脚本的静默执行

    mysql_bak.vbs,内容如下:

    Set ws = CreateObject("Wscript.Shell")
    ws.run "cmd /c mysql_bak.bat",vbhide
    

      

    参数说明:

    • mysql_bak.bat:mysql备份脚本文件名。

    2.2 设置定时计划

    1、任务计划--》创建基本任务

    image-20210825165159231

     

     

    image-20210825165318543

     

    2、设置触发器

    image-20210825165421505

     

    3、设置操作

    image-20210825165646689

     

     

    2.3 同步备份文件至NAS

    1、安装SyncBackPro软件

    2、创建任务

    1)点击添加按钮,创建任务

    image-20210825170127110

    2)选择任务的类型

    image-20210825170305072

    TPS:

    • 备份:不会删除目标端的文件,如果此文件在源端不存在的话。

    • 同步:是双向同步,最终两边的文件会达到一致。

    • 镜像:以源为标准,同步到目标源,如果目标端的文件在源中不存在,则目标端的文件会被删除掉。

    3)选择同步文件的位置

    image-20210825171009296

    4)选择要同步的源文件夹和目标文件夹

    image-20210825171326414

    3、创建定时计划

    1)创建计划任务

    image-20210825171654561

    2)设置计划任务

    image-20210825171907711

    三、注意事项

    1、设置windows计划时,操作阶段,必须在“起始于”设置脚本的路径,否则bat不能成功执行。具体如下图所示:

    image-20210825165646689

     

    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    [转]data类型的Url格式:把小数据直接嵌入到Url中
    SQL 找出某列最小的行记录.
    用 Dos 像数据库一样拎出所有文件.
    Js 正则表达式 RegExp .
    KMP算法C语言实现。弄了好久才搞好。。。
    python如何保证输入键入数字
    数据库关系图:“此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法
    建立sql数组的一个函数
    实用的240多个jQuery插件
    begin tran,commit tran和rollback tran的用法
  • 原文地址:https://www.cnblogs.com/lkj371/p/15186147.html
Copyright © 2011-2022 走看看