mysql binlog如何恢复数据到某一时刻

 更新时间:2024年06月01日 15:37:05   作者:骚操作不断  
这篇文章主要介绍了mysql binlog如何恢复数据到某一时刻问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题

误操作将线上数据库进行了覆盖,且没有完整备份

数据库版本:mysql8.0.26

预期结果:数据恢复到 2023.12.05

1、首先 查看数据库的binlog日志

SHOW BINARY LOGS;

2、经查 binlog.000001并没有数据操作

需要从binlog.000002开始还原(重放binglog)

说明:binlog.000002里有建表语句、数据插入、修改等

3、将binlog.000002

binlog.000003文件从服务器上复制到本地

4、找一台本地mysql的环境(linux)

mysqlbinlog --no-defaults ./binlog.000001 --database=rewards | mysql -h127.0.0.1 -P3306 -uroot -p

完整重放binlog.00001中的所有操作。

5、重放binlog.000003中的部分

mysqlbinlog --no-defaults ./ --database=rewards --start-position=156 --stop-position=47183769 | mysql -h127.0.0.1 -P3306 -uroot -p
  • --start-position=156 
  • --stop-position=47183769 这两个值是数据从那个位置开始重放、哪个位置结束。

6、start-postion,stop-position获取

  • --start-datetime="2023-12-05 01:00:00" 操作开始时间
  • --stop-datetime="2023-12-05 14:30:00" 操作结束时间
  • --database=rewards 数据库名称
mysqlbinlog --no-defaults -v --base64-output=decode-rows --database=rewards --start-datetime="2023-12-05 01:00:00" --stop-datetime="2023-12-05 14:30:00" /var/lib/mysql/binlog.000003 > log1.txt

上述解释为,从binlog.000003中提取数据库rewards 2023-12-05 01:00:00到2023-12-05 14:30:00的数据变动记录 将结果输出到log.txt文件中

7、核对数据

核对还原的数据是否完整,没有问题就导到线上。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解mysql中if函数的正确使用姿势

    详解mysql中if函数的正确使用姿势

    这篇文章主要介绍了详解mysql中if函数的正确使用姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • MySQL如何添加外键

    MySQL如何添加外键

    MySQL是一种常用的关系型数据库管理系统,它支持外键的添加,本文主要介绍了MySQL如何添加外键,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • MySQL ClickHouse不同于SQL的语法介绍

    MySQL ClickHouse不同于SQL的语法介绍

    CloudCanal 近期实现了 MySQL(RDS) 到 ClickHouse 实时同步的能力,功能包含全量数据迁移、增量数据迁移、结构迁移能力,以及附带的监控、告警、HA等能力
    2022-11-11
  • 发现mysql一个用法,比较有用

    发现mysql一个用法,比较有用

    mysql下用select实现列运算
    2008-02-02
  • MySQL的GROUP BY与COUNT()函数的使用方法及常见问题

    MySQL的GROUP BY与COUNT()函数的使用方法及常见问题

    在MySQL中,GROUP BY和 COUNT()函数是数据聚合查询中非常重要的工具,正确使用它们可以有效地统计和分析数据,本文给大家介绍MySQL的GROUP BY与COUNT()函数的使用方法及常见问题,感兴趣的朋友一起看看吧
    2025-05-05
  • mysql替换表中的字符串的sql语句

    mysql替换表中的字符串的sql语句

    替换字段里数据内容部分字符串,这个在替换网址呀什么的最经常用了,发布一下做个笔记
    2008-06-06
  • PowerDesigner连接MySQL数据库的详细步骤

    PowerDesigner连接MySQL数据库的详细步骤

    这篇文章主要介绍PowerDesigner连接MySQL数据库的详细步骤,文章通过图文介绍的非常详细,对大家学习PowerDesigner连接MySQL数据库有一定的帮助,需要的朋友可以参考下
    2023-09-09
  • 浅谈innodb的索引页结构,插入缓冲,自适应哈希索引

    浅谈innodb的索引页结构,插入缓冲,自适应哈希索引

    下面小编就为大家带来一篇浅谈innodb的索引页结构,插入缓冲,自适应哈希索引。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Qt如何编译MySQL数据库驱动

    Qt如何编译MySQL数据库驱动

    这篇文章主要介绍了Qt如何编译MySQL数据库驱动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-12-12
  • mysql联合索引的实现示例

    mysql联合索引的实现示例

    联合索引也叫组合索引或多列索引,是指在MySQL中对一个表的多个列共同建立的索引,与单列索引不同,联合索引是同时对多个列的值进行排序和存储的索引结构,下面就来介绍一下如何使用
    2025-12-12

最新评论