mysql删除binlog日志及日志恢复数据的方法

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

 

 
  1. 基本上大家装mysql,都会开启binlog功能,开启这个功能的好处是,日后方便恢复数据,而坏处是日志文件增长速度快,很快占会占满磁盘空间,所以我们要定期或手工来删除过大的日志文件。 
  2.  
  3. 删除日志文件的方法大概有如下几中: 
  4.  
  5. 一、设置日志保留时长expire_logs_days自动删除 
  6.  
  7. #查看当前日志保存天数: 
  8.  
  9. show variables like ‘%expire_logs_days%’;    
  10.  
  11. #这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效: 
  12.  
  13. set global expire_logs_days=7;    
  14.  
  15. #设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置   
  16.  
  17. expire_logs_days = 7   
  18.  
  19. 二、手动删除BINLOG (purge binary logs) 
  20.  
  21. #用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件  
  22.  
  23. PURGE {MASTER | BINARY} LOGS TO ‘log_name’   
  24. PURGE {MASTER | BINARY} LOGS BEFORE ‘date’ 
  25.  
  26. #例如: 
  27.  
  28. PURGE MASTER LOGS TO ‘mysql-bin.010′;   
  29. PURGE MASTER LOGS BEFORE ‘2008-06-22 13:00:00′;   
  30. PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);  
  31.  
  32. 其它: 
  33.  
  34. 查看当前日志文件列表:show binary logs或是show master logs;  
  35. 使用binlog日志的目的是为了方便恢复数据,所以我们不光要会删除,还要会用日志来恢复数据。 
  36.  
  37. 使用binlog恢复数据: 
  38.  
  39. 使用mysqlbinlog命令恢复日志 
  40.  
  41. mysqlbinlog -d test /root/mysql/mysql-bin.000001|mysql -uroot -ppassword   
  42.  
  43.    
  44. #1、关于mysqlbinlog在mysql 5.0上的使用方法,可以参考:官方资料 
  45.  
  46. #2、如果不知道log-bin存放的文件位置,可以使用下面的命令查看: 
  47.  
  48. mysql -uroot -ppassword -e 'SHOW BINLOG EVENTS \G'     
  49.  
  50. #3、当只是需要恢复部分记录的时候,你可以使用时间点或位置点来定位,例如:   
  51.  
  52. mysqlbinlog --start-date="2005-04-20 9:01:00" --stop-date="2005-04-20 10:00:01" /var/log/mysql/bin.123456|mysql -uroot -ppassword[code]     
  53.  
  54. #意思是恢复4月20日早上9点到10点这一段时间的数据。  
  55.  
  56. mysqlbinlog --start-position="368301" --stop-position="368312"/var/log/mysql/bin.123456| mysql -uroot -pmypwd     
  57.  
  58. #意思是重做368301到368312位置点之间的操作。(位置点可以就是用mysqlbinlog看到的at xxx节点)     
  59.  
  60. mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql     
  61.  
  62. #同样的,如果我们只是想查看某段时间的操作,直接把它导到一个文件即可。   

 


本文转自 lover00751CTO博客,原文链接:http://blog.51cto.com/wangwei007/1101757,如需转载请自行联系原作者


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
SQL 运维 关系型数据库
深入探讨MySQL的二进制日志(binlog)选项
总结而言,对MySQL binlogs深度理解并妥善配置对数据库运维管理至关重要;它不仅关系到系统性能优化也是实现高可靠性架构设计必须考虑因素之一。通过精心规划与周密部署可以使得该机能充分发挥作用而避免潜在风险带来影响。
288 6
|
10月前
|
存储 SQL 关系型数据库
MySQL中binlog、redolog与undolog的不同之处解析
每个都扮演回答回溯与错误修正机构角色: BinLog像历史记载员详细记载每件大大小小事件; RedoLog则像紧急救援队伍遇见突發情況追踪最后活动轨迹尽力补救; UndoLog就类似时间机器可倒带历史让一切归位原始样貌同时兼具平行宇宙观察能让多人同时看见各自期望看见历程而互不干扰.
563 9
|
11月前
|
存储 SQL 关系型数据库
MySQL的Redo Log与Binlog机制对照分析
通过合理的配置和细致的管理,这两种日志机制相互配合,能够有效地提升MySQL数据库的可靠性和稳定性。
350 10
|
SQL 监控 关系型数据库
MySQL日志分析:binlog、redolog、undolog三大日志的深度探讨。
数据库管理其实和写小说一样,需要规划,需要修订,也需要有能力回滚。理解这些日志的作用与优化,就像把握写作工具的使用与运用,为我们的数据库保驾护航。
882 23
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4999 32
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
606 9
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
1238 55
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
914 5
图解MySQL【日志】——Redo Log