当前位置: 首页 > article >正文

宝塔 binlog mysql 数据恢复

如果 MySQL开启了事务日志,并且你想回滚到两个小时前的状态,可以尝试以下步骤

1.确认二进制日志是否启用

首先,需要确认 MySQL是否启用了二进制日志(binarylog)。可以通过以下命令查看:
sql
SHOW VARIABLES LIKE ‘log bin’;
如果 log_bin 的值为 ON,则表示二进制日志已启用。3

2.查找二进制日志文件

使用以下命令查找二进制日志文件:
sql
复制
SHOW BINARY LOGS;
这将列出所有可用的二进制日志文件及其大小。”

3.使用 nysqlbinlog 工具

mysqlbinlog是一个实用工具,可以将二进制日志文件转换为可读的 SQL 语句。你可以使用它来查看特走时间范围内的日志内容,并生成回滚脚本。

1.生成特定时间范围内的日志内容

sh
mysqlbinlog–start-datetime="2025-01-10 10:00:00–stop-datetime="2025-01-10 12:00:00"binlog.000001>binlog output.sq1
其中 binlog.000001 是二进制日志文件名,2025-01-10 10:00:00和2025-01-10 12:00:00 是你希望回滚的时间范围。3

2.生成回滚脚本:

sh
mysqlbinlog–start-datetime=“2025-01-10 10:00:00”–stop-datetime=“2025-01-10 12:00:00”–reverse binlog.000001>rollback.sq1
这将生成一个包含回滚操作的 SQL 脚本。

4.应用回滚脚本

将生成的 rollback.sql 脚本应用到数据库中:
sh
mysql-u your username -p your database<rollback.sql
输入密码后,回滚操作将开始执行。”

5.验证回滚结果

执行回滚操作后,建议验证数据库状态,确保数据已正确回滚到两个小时前的状态。
注意事顶
备份当前数据库:在执行回滚操作之前,建议备份当前数据库状态,以防操作失败导致数据丢失,。测试环境:在生产环境中进行回滚操作之前,建议先在测试环境中进行测试,确保操作的可行性和安全性。
希望这些步骤能帮助你成功回滚数据库到两个小时前的状态

案例:

//  mysql -u tiku -p tiku < full_backup.sql



// mysqlbinlog --stop - date = "2025 - 01 - 10 12:00:00" /www/server/data/mysql - bin.000015 | mysql -u your_username -p your_database


// mysqlbinlog --stop - index = mysql - bin.000016 --stop - position = 77339 /var/log/mysql/mysql - bin.000014 /var/log/mysql/mysql - bin.000015 /var/log/mysql/mysql - bin.000016 | mysql -u root -p

// mysqlbinlog --stop - date = "2025 - 01 - 10 13:30:00" /var/log/mysql/mysql - bin.000014 /var/log/mysql/mysql - bin.000015 /var/log/mysql/mysql - bin.000016 | mysql -u root -p


// /www/server/mysql/bin/mysqlbinlog --stop-datetime="2025-01-10 13:30:00" /var/log/mysql/mysql - bin.000014 /var/log/mysql/mysql - bin.000015 /var/log/mysql/mysql - bin.000016 | mysql -u root -p

// /www/server/mysql/bin/mysqlbinlog --stop-datetime="2025-01-10 15:30:00" /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 | mysql -u root -p

// /www/server/mysql/bin/mysqlbinlog --force --stop-datetime="2025-01-10 15:30:00" /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 | mysql -u root -p

// /www/server/mysql/bin/mysqlbinlog --force -if-open --stop-datetime="2025-01-10 15:30:00" /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 | mysql -u root -p


// /www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 > binlog_content.sql

// grep -B 1000 -E '2025- 01 - 10 [0 - 9]{2}:[0 - 9]{2}:[0 - 9]{2}' binlog_content.sql | awk 'BEGIN {flag = 0} /2025 - 01 - 10 15:30:00/ {flag = 1} flag == 0' > filtered_binlog_content.sql

// grep -B 1000 -E '2025-01-10[[:space:]]15:[0-9]{2}:[0-9]{2}' binlog_content.sql | awk 'BEGIN {flag = 0} /2025-01-10 15:30:00/ {flag = 1} flag == 0' > filtered_binlog_content.sql

http://www.kler.cn/a/538820.html

相关文章:

  • 迁移学习 Transfer Learning
  • 【Nginx + Keepalived 实现高可用的负载均衡架构】
  • 【玩转 Postman 接口测试与开发2_019】第15章:利用 Postman 初探 API 性能测试(含实战截图)
  • 重生之我要当云原生大师(十四)分析和存储日志
  • 【C语言】数 组与指针:深度剖析与等价表达
  • iPhone 在华销量大幅下挫
  • go并发和并行
  • 人工智能应用-智能驾驶精确的目标检测和更高级的路径规划
  • 【Spring Boot】统一异常处理
  • PostgreSQL中级认证价值
  • 人工智能AI合集:Ollama本地部署对话语言大模型之DeepSeek-网页UI访问完整版
  • 74.在 Vue 3 中使用 OpenLayers 实现游龙动画效果
  • DeepSeek迁移学习与预训练模型应用
  • CST的TLM算法仿真5G毫米波阵列天线及手机
  • DeepSeek-R1 32B Windows+docker本地部署
  • C++学习笔记——类和对象(上)
  • 【C++八股】static关键字
  • 苹果iPhone 16 Pro Max上手体验:性能极致释放
  • 二级C语言题解:十进制转其他进制、非素数求和、重复数统计
  • Linux 系统搭建 Python 开发环境全流程
  • 基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头
  • PDF 2.0 的新特性
  • redis之GEO 模块
  • MVCC机制深度解析
  • html语义化
  • 详细教程 | 如何使用DolphinScheduler调度Flink实时任务