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中查询慢的SQL语句方法

    查找MySQL中查询慢的SQL语句方法

    这篇文章主要介绍了查找MySQL中查询慢的SQL语句方法,需要的朋友可以参考下
    2017-05-05
  • MySQL 5.7.29 + Win64 解压版 安装教程图文详解

    MySQL 5.7.29 + Win64 解压版 安装教程图文详解

    这篇文章主要介绍了MySQL 5.7.29 + Win64 解压版 安装教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • mysql 字段括号拼接的实现示例

    mysql 字段括号拼接的实现示例

    在使用MySQL进行数据查询时,有时候需要对字段进行拼接,并用括号包围起来,本文主要介绍了mysql 字段括号拼接的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • MySQL 中字符集详细介绍

    MySQL 中字符集详细介绍

    这篇文章主要介绍了MySQL 中字符集详细介绍,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • MySQL字符之char、varchar类型简析

    MySQL字符之char、varchar类型简析

    varchar和char是MySQL中的两种数据类型,都是用来存储字符串的,下面这篇文章主要给大家介绍了关于MySQL字符之char、varchar类型的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 如何解决mysql导入sql文件慢、错等问题

    如何解决mysql导入sql文件慢、错等问题

    这篇文章主要介绍了如何解决mysql导入sql文件慢、错等问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • Mysql及Navicat中设置字段自动填充当前时间及修改时间实现

    Mysql及Navicat中设置字段自动填充当前时间及修改时间实现

    这篇文章主要给大家介绍了关于Mysql及Navicat中设置字段自动填充当前时间及修改时间实现的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-07-07
  • 详解oracle mysql 中的“不等于“ <> != ^= is not

    详解oracle mysql 中的“不等于“ <> != ^=&nbs

    oracle中的 != 与 <> 和 ^= 都是不等于,逻辑上没有区别而mysql中,<> 和 != 相同,接下来通过本文给大家详细讲解oracle mysql 中的“不等于“ <> != ^= is not,感兴趣的朋友一起看看吧
    2023-04-04
  • MySQL中group_concat函数深入理解

    MySQL中group_concat函数深入理解

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,需要的朋友可以适当参考下
    2012-11-11
  • mysql 联合索引生效的条件及索引失效的条件

    mysql 联合索引生效的条件及索引失效的条件

    两个或更多个列上的索引被称作复合索引,本文主要介绍了mysql 联合索引生效的条件及索引失效的条件,感兴趣的可以了解一下
    2021-11-11

最新评论