zoukankan      html  css  js  c++  java
  • Linux下实现MySQL数据库定时备份,删除7天前的备份

    咳~ 咳~ 为了避免数据操作失误、数据丢失、甚至删库跑路,简单做个数据备份吧

    1、创建备份目录

    # 习惯放在 local 下
    cd /usr/local/
    # 创建备份目录
    mkdir backup
    
    cd backup
    # 在备份目录下创建 sql 文件夹
    mkdir sql

    2、修改 MySQL 配置文件 my.conf

    # 编辑 /etc/my.conf 文件地址可能与我不同,自行切换即可
    vim /etc/my.conf
    
    # 开启 binlog
    [mysqld]
    lob-bin=mysql-bin  # 开启二进制日志
    server-id=12      # ip后2位
    
    # 添加 mysqldump 配置
    [mysqldump]
    user=root        # mysql用户名
    password=root    # mysql密码

    3、重启 MySQL 数据库

    systemctl restart mysql

      

    4、创建 shell 脚本

    # 在 backup 目录下创建 备份脚本
    vim DBbackup.sh
    
    # 脚本内容如下:
    #!/bin/bash
    /usr/local/mysql/bin/mysqldump bosen_shop | gzip > /usr/local/backup/sql/bosen_shop_$(date +%Y%m%d).sql.gz
    
    # 删除7天前的备份数据
    find /usr/local/backup/sql -name "bosen_shop_*.sql.gz" -type f -mtime +7 -exec rm {} ; > /dev/null 2>&1

      把 bosen_shop 换成自己的数据库名,备份为 gz 文件压缩空间

    5、DBbackup.sh 添加可执行权限

    chmod u+x DBbackup.sh
    
    # 执行脚本看是否有错
    ./DBbackup.sh

      

    6、添加定时计划任务

    crontab -e
    # 就像vivim 功能,要先安装 crontab

    # 输入下方内容并保存
    30 23 * * * /bin/bash /usr/local/backup/DBbackup.sh # 每天 23:30 执行

      查看 当前的定时任务

     crontab -l 

      

    7、数据恢复

    # 解压 gz 文件
    gzip -d bosen_shop_20210711.sql.gz
    
    # 导入数据库
    mysql -u root -p bosen_shop < bosen_shop_20210711.sql
    # 输入数据库的密码即可

      此时已经恢复定时备份的数据,再打开 binlog 日志。恢复定时备份期间至数据丢失时的数据即可

    # 登录 MySQL
    mysql -uroot -p
    # 输入 root密码
    
    # 查看 binlog
    show master logs;
    
    # 根据相应的 log 文件,以及需要恢复的行号执行即可,这里就不多说了

      

  • 相关阅读:
    euler v10 dracut失败
    基于RYU应用开发之负载均衡
    4、网上收集Storm 讲解图
    3、SpringBoot 集成Storm wordcount
    git常用
    3、SpringBoot集成Storm WorldCount
    2、Storm中的一些概念理解
    1、Storm集群安装
    8、Spring-Kafka Recving Messages
    7、Kafka、AMQ、RabbitMQ对比
  • 原文地址:https://www.cnblogs.com/linnuo/p/15001138.html
Copyright © 2011-2022 走看看