mysql定时备份,开启binlog,数据库容灾

数据库备份、数据库容灾,开启binlog

开启数据库定时备份

  • 创建备份目录

    mkdir /data/sqldump
    cd sqldump
    
  • 创建备份的shell脚本

    把databaseName换成自己的数据库名

    vim databaseName.sh
    

    输入以下内容

    mysqldump -uusername -ppassword databaseName > /data/sqldump/DatabaseName_$(date +%Y%m%d_%H%M%S).sql
    

    对备份进行压缩:

    mysqldump -uusername -ppassword databaseName | gzip > /data/sqldump/databaseName_$(date +%Y%m%d_%H%M%S).sql.gz
    

    把 username 替换为实际的用户名;

    把 password 替换为实际的密码;

    把 databaseName 替换为实际的数据库名;

  • 添加可执行权限

    chmod u+x databaseName.sh
    

    添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

    ./databaseName.sh

  • 添加计划任务

    crontab -e
    

    输入以下内容

    */1 * * * * /data/sqldump/databaseName.sh
    

    这是core表达式,代表每一分钟执行一次,每一个*依次代表分钟、小时、日期、月份、星期几

  • 测试任务是否执行

    tail -f /var/log/cron
    

    也可以去对应的文件夹目录下查看有没有生成对应的sql文件

开启binlog

  • 查看binlog是否开启的命令:
show variables like 'log_bin';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ngFcIgxy-1722507810469)(https://i-blog.csdnimg.cn/direct/5999c95464724611bdc851c37fe1cf63.png#pic_center)]

on代表开启了,off表示还未开启

  • 修改配置文件

    vim /etc/my.cnf
    

    在mysqld下面新增

    log-bin=mysql-bin   binlog文件名
    server-id=1         配置唯一id,不配置会导致MySQL无法启动
    binlog_format=ROW   binlog日志格式
    
    可选
    max_binlog_size = 100m  binlog每个日志文件大小
    expire-logs-days = 7    设置 binlog 文件的自动清理时间(单位:天)
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Mc9Tqoo-1722507810470)(https://i-blog.csdnimg.cn/direct/634510001aa840beac763ce1d377d8f9.png#pic_center)]

    binlog-format: 指定 binlog 的记录格式。常用的有三种:

    • ROW: 记录每一行的数据变化,数据恢复更精确。
    • STATEMENT: 记录每一条 SQL 语句,节省空间,但可能有精度问题。
    • MIXED: 自动在 ROWSTATEMENT 之间切换,基于上下文。
  • 重启MySQL

    systemctl stop mysqld;
    systemctl start mysqld;
    
  • 再次查看binlog是否开启,ON表示已开启

    show variables like 'log_bin';
    
  • binlog默认存放的位置

    一般存放在/var/lib/mysql下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mdEVFGOy-1722507810471)(https://i-blog.csdnimg.cn/direct/32bfb771f4d64e648347eed8f5732aa3.png#pic_center)]

mysql-bin.000001:

  • 这是一个实际的二进制日志文件。
  • 文件名中的 .000001 部分是文件的序号,随着新日志文件的创建,这个序号会递增。
  • 二进制日志文件保存了数据库变更的详细信息,可以用于数据恢复、数据复制等。

mysql-bin.index:

  • 这是一个索引文件,列出了当前所有的二进制日志文件。
  • 每当创建新的 binlog 文件时,MySQL 会更新这个索引文件。
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恸426

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值