mysql通过binlog定时备份数据库与恢复的方法

 更新时间:2024年12月24日 09:20:03   作者:另类程序员132  
这篇文章主要介绍了mysql通过binlog定时备份数据库与恢复的方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

1.配置binlog

vim /etc/my.cnf
server_id=1
log-bin=mysql-bin

查看指定binlog文件中的事件

-- 查看指定binlog文件中的所有事件
show binlog events in 'binlog.000001'
-- 查看指定binlog文件中从指定位置(position)开始的所有事件
show binlog events in 'binlog.000001' from 32556;
-- 分页查询
show binlog events in 'binlog.000001' from 32556 limit 10;

2.编写shell脚本

1.正常安装
mysqldump -uroot -proot --databases test --master-data=2 --flush-logs > /backup/`date +%F-%H`-mysql-vending-machine.sql
2.通过docker部署
docker exec e2c326627ed5 sh -c 'exec mysqldump --databases test -u root -p"root" --master-data=2 --flush-logs' > /opt/backup/`date +%F-%H`-mysql-vending-machine.sql
注: --databases后面是数据库名,master-data=2 注释掉日志记录
1.mkdir /opt/backup
2.vim backup.sh
3.#!/bin/bash
#mysqldump -uroot -proot --databases test --master-data=2 --flush-logs > /backup/`date +%F-%H`-mysql-test.sql

3.查看备份好的数据库.sql脚本

CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

4.创建定时任务

crontab -e   // 创建定时任务,从凌晨2点开始执行
0 2 * * * /opt/backup/backup.sh
crontab -l   // 查看定时任务

5.恢复数据

1.删除数据执行备份好的sql脚本: /backup/date-mysql-test.sql
2.查看date-mysql-test.sql里的CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;记录mysql-bin.000001与154,执行binlog从mysql-bin.000001文件的154开始恢复
3.开始通过binlog恢复数据
mysqlbinlog mysql-bin.000001 --start-position=154 --stop-position=71012  | mysql -uroot -p'root'
注: --start-position:开始恢复的位置
--stop-position:结束的位置,如果需要执行到最后这个参数可以不写

到此这篇关于mysql通过binlog定时备份数据库与恢复的文章就介绍到这了,更多相关mysql binlog定时备份数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL解析JSON格式字段并取出部分值方式

    MySQL解析JSON格式字段并取出部分值方式

    这篇文章主要介绍了MySQL解析JSON格式字段并取出部分值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • MySQL主从同步延迟原因与解决方案

    MySQL主从同步延迟原因与解决方案

    本文主要介绍了MySQL主从同步延迟原因与解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • MYSQL WHERE语句优化

    MYSQL WHERE语句优化

    where优化主要是在SELECT中,因为他们最主要是在那里使用,但是同样的优化也可被用于DELETE和UPDATE语句。
    2009-03-03
  • Mysql超时配置项的深入理解

    Mysql超时配置项的深入理解

    超时是我们日常经常会遇到的一个问题,这篇文章主要给大家介绍了关于Mysql超时配置项的深入理解,内容简明扼要并且容易理解,绝对能使你眼前一亮,需要的朋友可以参考下
    2023-01-01
  • mysql免安装版配置步骤详解分享

    mysql免安装版配置步骤详解分享

    这篇文章主要介绍了mysql免安装版配置步骤详解,提供了二个网友的安装方法,大家可以参考使用
    2013-12-12
  • 安装MySQL 5.7出现报错:unknown variable ‘mysqlx_port=0.0‘的解决方法

    安装MySQL 5.7出现报错:unknown variable ‘mysqlx_port

    这篇文章主要介绍了安装MySQL 5.7出现报错:unknown variable ‘mysqlx_port=0.0‘的解决方法,文中通过图文结合的方式介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-06-06
  • CentOS7环境下安装MySQL5.5数据库

    CentOS7环境下安装MySQL5.5数据库

    大家好,本篇文章主要讲的是CentOS7环境下安装MySQL5.5数据库,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • MySQL优化之如何了解SQL的执行频率

    MySQL优化之如何了解SQL的执行频率

    MySQL 客户端连接成功后,通过 show [session|global]status 命令 可以提供服务器状态信息,也可以在操作系统上使用 mysqladmin extended-status 命令获得这些消息
    2014-05-05
  • mysql 求解求2个或以上字段为NULL的记录

    mysql 求解求2个或以上字段为NULL的记录

    这篇文章主要介绍了mysql 求解求2个或以上字段为NULL的记录,需要的朋友可以参考下
    2017-05-05
  • MySQL 8.0用户和角色管理原理与用法详解

    MySQL 8.0用户和角色管理原理与用法详解

    这篇文章主要介绍了MySQL 8.0用户和角色管理,结合实例形式分析了MySQL 8.0用户和角色管理相关概念、功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04

最新评论