zoukankan      html  css  js  c++  java
  • Centos 实战-MySQL定时全量备份(1)

    /usr/bin/mysqldump -uroot -p123456  --lock-all-tables --flush-logs test > /home/backup.sql

    如上一段代码所示,其功能是将 test 数据库全量备份。其中

    MySQL 用户名为:root 

    密码为:123456

    备份的文件路径为:/home (当然这个路径也是可以按照个人意愿修改的。)

    备份的文件名为:backup.sql

    参数 —flush-logs:使用一个新的日志文件来记录接下来的日志

    参数 —lock-all-tables:锁定所有数据库

    以下为我使用的数据库备份脚本文件:

    本文件功能不是很复杂,首先是各种变量赋值。然后备份数据库,接着是进入到备份文件所在的目录,再将备份文件压缩。

    其中倒数第三行是使用 nodejs 将备份的数据库文件上传到七牛云中,这里就不在过多的阐述了,与本文主题不符,想看具体实现可以查看 GitHub 源码。其中相应的变量改成自己的值即可拿过来使用。

    #!/bin/bash
    #在使用之前,请提前创建以下各个目录
    #获取当前时间
    date_now=$(date "+%Y%m%d-%H%M%S")
    backUpFolder=/app
    username="root"
    password="123456"
    db_name="dbname"
    #定义备份文件名
    fileName="${db_name}_${date_now}.sql"
    #定义备份文件目录
    backUpFileName="${backUpFolder}/${fileName}"
    echo "starting backup mysql ${db_name} at ${date_now}."
    /usr/bin/mysqldump -u${username} -p${password}  --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
    #进入到备份文件目录
    cd ${backUpFolder}
    #压缩备份文件
    tar zcvf ${fileName}.tar.gz ${fileName}
    
    # use nodejs to upload backup file other place
    #NODE_ENV=$backUpFolder@$backUpFileName node /home/tasks/upload.js
    date_end=$(date "+%Y%m%d-%H%M%S")
    echo "finish backup mysql database ${db_name} at ${date_end}."

    恢复全量备份

    mysql -h localhost -uroot -p123456 < bakdup.sql
    或者
    mysql> source /app/bakdup.sql

    定时备份

    输入如下命令,进入 crontab 定时任务编辑界面:

    crontab -e

    添加如下命令,其意思为:

    每分钟执行一次备份脚本:
    
    * * * * * sh /app/mysqlBackup.sh
    每五分钟执行 :
    
    */5 * * * * sh /app/mysqlBackup.sh
    每小时执行:
    
    0 * * * * sh /app/mysqlBackup.sh
    每天执行:
    
    0 0 * * * sh /app/mysqlBackup.sh
    每周执行:
    
    0 0 * * 0 sh /app/mysqlBackup.sh
    每月执行:
    
    0 0 1 * * sh /app/mysqlBackup.sh
    每年执行:
    
    0 0 1 1 * sh /app/mysqlBackup.sh

  • 相关阅读:
    禁止 FireFox 提示安装 Flash 插件
    MongoDb不能同步,可能是服务器时间不一致
    simpletest的一点经验:0个测试、1个Case的情况
    VIM学习笔记:列编辑
    使用 nginx 做http代理
    VirtualBox非常简单的克隆虚拟机的功能
    PDOStatement的HY093错误原因及解决办法
    火狐英文原版的下载地址
    修改 PHP 的 memory_limit 内存限定
    TEA 加密解法,统一了C语言、Java与PHP的运算结果
  • 原文地址:https://www.cnblogs.com/aqicheng/p/11009140.html
Copyright © 2011-2022 走看看