统计
  • 文章总数:76 篇
  • 评论总数:18 条
  • 分类总数:19 个
  • 最后更新:10月18日

Mysqlbinlog回滚到某一时间生成转存sql

本文阅读 2 分钟
首页 运维 正文
  1. 准备工作
    在开始之前,你需要先准备好以下工具和环境:
    已安装MySQL数据库
    已启用二进制日志(binlog)
    已安装mysqlbinlog工具
  2. 查找binlog文件
    首先,你需要找到指定时间点的binlog文件。可以使用如下命令查看当前数据库的binlog文件列表:
    mysqlbinlog --base64-output=DECODE-ROWS --verbose --help
    其中,--base64-output=DECODE-ROWS用于解码binlog文件,

--verbose
用于显示详细信息,

--help
用于查看帮助信息。执行上述命令后,会输出类似如下内容:

-rw-r----- 1 mysql mysql  1075 Sep 17 14:50 mysql-bin.000001
-rw-r----- 1 mysql mysql  1075 Sep 17 14:50 mysql-bin.000002
-rw-r----- 1 mysql mysql  1075 Sep 17 14:50 mysql-bin.000003

从以上输出中,可以找到目标时间点对应的binlog文件。

  1. 提取指定时间的binlog
    使用mysqlbinlog工具提取指定时间点的binlog文件。将下面的命令中的<binlog_filename>替换为实际的binlog文件名,<start_time>和<end_time>替换为回滚的时间范围:
mysqlbinlog --start-datetime="<start_time>" --stop-datetime="<end_time>" <binlog_filename>
  1. 转换为SQL
    将提取的binlog内容转换为SQL语句。使用如下命令:
mysqlbinlog --base64-output=DECODE-ROWS <binlog_file> > output.sql
  1. 生成转存SQL脚本
    根据需要生成转存SQL脚本。可以使用文本编辑器打开output.sql文件,根据需要进行修改和处理。例如,可以删除不需要的SQL语句,增加一些注释等。

show variables like '%log_bin%';
show variables like '%datadir%';
如若转载请注明出处:
-- 展开阅读全文 --
20240305最新JetBrains IDEs激活码
« 上一篇 04-24
Linux中修改Docker路径
下一篇 » 04-27

发表评论

发表评论