清理Mysql binlog日志的脚本

时间: 2023-05-18 07:03:23 浏览: 34
以下是一个清理 MySQL binlog 日志的脚本示例: #!/bin/bash # 设置变量 MYSQL_USER="root" MYSQL_PASSWORD="password" MYSQL_HOST="localhost" MYSQL_PORT="3306" BINLOG_DIR="/var/lib/mysql/" BINLOG_PREFIX="mysql-bin" BINLOG_DAYS_TO_KEEP="7" # 获取当前日期 CURRENT_DATE=$(date +"%Y-%m-%d %H:%M:%S") # 获取需要删除的 binlog 文件名 BINLOG_FILES_TO_DELETE=$(mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT} -e "SHOW BINARY LOGS;" | awk '{if($1 < DATE_SUB(NOW(), INTERVAL ${BINLOG_DAYS_TO_KEEP} DAY)) print $1}' | grep ${BINLOG_PREFIX}) # 删除 binlog 文件 for BINLOG_FILE in ${BINLOG_FILES_TO_DELETE} do echo "${CURRENT_DATE} - Deleting binlog file ${BINLOG_FILE}" rm -f ${BINLOG_DIR}/${BINLOG_FILE} done echo "${CURRENT_DATE} - Done."

相关推荐

MySQL的binlog是二进制日志文件,用于记录数据库的修改操作。通过binlog可以实现数据的备份和恢复。根据引用\[1\]中的信息,可以使用show variables命令查看binlog相关的变量。其中,log_bin表示是否开启binlog,log_bin_basename表示binlog文件的基本名称,log_bin_index表示binlog索引文件的路径。 根据引用\[2\]中的信息,如果需要从上次备份到发现表被删除的时间点进行恢复,需要按照binlog序号从小到大的顺序进行恢复。可以使用mysqlbinlog命令来解析binlog文件并生成恢复脚本。根据引用\[2\]中的示例,可以使用mysqlbinlog命令按照序号逐个解析binlog文件,并将解析结果追加到恢复脚本中。 引用\[3\]中提到了mysqlbinlog的使用技巧。可以使用--stop-datetime参数指定停止解析binlog的时间点,或者使用--stop-date参数指定停止解析binlog的日期。通过这些参数的灵活组合,可以方便地选择需要恢复的binlog文件。 综上所述,MySQL的binlog是用于记录数据库修改操作的二进制日志文件。可以使用mysqlbinlog命令解析binlog文件并生成恢复脚本,按照binlog序号从小到大的顺序进行恢复。同时,可以使用mysqlbinlog的一些技巧来方便地选择需要恢复的binlog文件。 #### 引用[.reference_title] - *1* *2* *3* [mysql binlog 日志详解](https://blog.csdn.net/zll4859291/article/details/129670719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
下面是一个MySQL binlog恢复数据的案例,假设我们有一个名为testdb的数据库,里面有一张名为testtable的表,我们需要恢复这张表在某个时间点之前的数据。 1. 首先,我们需要确认我们的MySQL实例已经开启了binlog日志,并且我们可以使用mysqlbinlog命令来查看binlog日志文件的内容。 2. 然后,我们需要找到我们需要恢复的时间点之前的最近一个binlog日志文件,可以通过以下命令查看: SHOW BINARY LOGS; 3. 找到我们需要恢复的时间点之前的最近一个binlog日志文件后,可以使用以下命令查看该文件的内容: mysqlbinlog /var/lib/mysql/binlog.000001 这将会输出该文件的所有binlog日志内容。 4. 接下来,我们需要找到我们需要恢复的那条SQL语句在binlog日志中的位置,可以使用以下命令来查找: mysqlbinlog /var/lib/mysql/binlog.000001 | grep -B 2 "UPDATE testdb.testtable SET" 这将会输出所有包含UPDATE testdb.testtable SET的SQL语句,并且输出每条SQL语句的前两行,方便我们确认该SQL语句在binlog日志中的位置。 5. 确认了需要恢复的SQL语句在binlog日志中的位置后,我们可以使用以下命令来恢复该SQL语句: mysqlbinlog /var/lib/mysql/binlog.000001 --start-position=123456 | mysql -u root -p testdb 其中,--start-position参数指定了需要恢复的SQL语句在binlog日志中的位置,testdb是我们需要恢复数据的数据库名。 6. 最后,我们可以使用SELECT语句来确认数据已经成功恢复: SELECT * FROM testdb.testtable; 如果数据已经成功恢复,这条SELECT语句将会返回我们需要恢复的数据。
MySQL的binlog是以事件形式记录了对数据库执行更改的所有操作。在数据恢复方面,可以使用mysqlbinlog工具来恢复数据。 首先,你可以使用mysqlbinlog工具来解析和转换二进制日志文件。使用命令"mysqlbinlog --start-datetime="开始时间" --stop-datetime="结束时间" --database=数据库名 binlog文件名 | mysql -u用户名 -p密码",其中开始时间和结束时间是你想要恢复的时间范围,数据库名是你要恢复的数据库,用户名和密码是连接数据库所需的凭据。这个命令会将binlog文件中指定时间范围内的操作转换为SQL语句并执行,从而恢复数据。 另外,在每次重启MySQL服务时,也会自动刷新binlog日志。此外,使用mysqldump备份数据时,如果加上-F选项,也会刷新binlog日志。所以,如果你想要恢复到最新的binlog状态,可以重启MySQL服务或者进行一次完整的备份。 需要注意的是,binlog只能记录数据库的更改操作,而不能记录表结构的变更。如果你的目标是恢复表结构的变更,可以考虑使用其他工具或备份文件来恢复。 总之,通过使用mysqlbinlog工具以及重启MySQL服务或进行完整的备份,你可以对MySQL的binlog进行数据恢复。123 #### 引用[.reference_title] - *1* [mysql binlog日志恢复【亲测有效,有例子实测】](https://download.csdn.net/download/Jay_Fred/87602788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL binlog 数据恢复](https://blog.csdn.net/qq_39550368/article/details/126901112)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
在MySQL中,可以通过执行以下命令来检查是否开启了BinLog: sql show variables like '%log_bin%'; 查询结果中,如果"log_bin"的值为"ON",表示已经开启了BinLog。 关闭MySQL的BinLog有多种方式。一种常见的方式是在MySQL的配置文件中添加以下配置: shell skip-log-bin 同时将与BinLog相关的配置注释掉。这样做可以禁用BinLog功能。 另外,还可以修改配置文件中的以下参数来指定BinLog文件的前缀和索引文件的名称: shell log-bin = mysql-bin log-bin-index = mysql-bin.index 其中,"mysql-bin"是生成BinLog文件的前缀,例如mysql-bin.000001、mysql-bin.000002等,而"log-bin-index"是BinLog索引文件的名称。 需要注意的是,关闭BinLog可能会影响到某些数据库功能和复制过程,因此在关闭之前,请确保了解相关风险并进行备份。123 #### 引用[.reference_title] - *1* [mysql binlog](https://download.csdn.net/download/weixin_38707356/13684850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [一、binlog的简介](https://blog.csdn.net/ruben95001/article/details/86702613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [mysql关闭binlog的正确操作](https://blog.csdn.net/aben_sky/article/details/121514377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

最新推荐

MySQL 主从复制搭建,基于日志(binlog)

什么是MySQL主从复制  简单来说,是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟),通过这种方式来保证数据的一致性,是...

MySQL – binlog日志简介及设置

  mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看二进制日志的内容。 binlog 的作用 用于数据库的主从复制及数据的增量恢复。 ...

MySQL Binlog Digger 4.8.0

MySQL Binlog Digger是一个基于图形界面的MySQL Binlog挖掘分析工具,可以为数据恢复提供undo sql回滚语句,它免安装,能对在线binlog与离线binlog进行分析,在选定在线binlog(甚至分析到最新日志)或离线binlog日志...

Linux上通过binlog文件恢复mysql数据库详细步骤

binglog文件是服务器的二进制日志记录着该数据库的所有增删改的操作日志,接下来通过本文给大家介绍linux上通过binlog文件恢复mysql数据库详细步骤,非常不错,需要的朋友参考下

MySQL的redo log、undo log、binlog

文章目录一、MySQL日志文件类型二、几种日志的对比2-1、用途 redo log undo log binlog2-2、存储内容、格式 redo log undo log binlog2-3、日志生成 redo log undo log binlog2-4、删除策略 redo log ...

代码随想录最新第三版-最强八股文

这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系、接口、Lambda表达式、类加载机制、内部类、代理类、Java并发、JVM、Java后端编译、Spring 3. Go defer底层原理、goroutine、select实现机制 4. 算法学习 数组、链表、回溯算法、贪心算法、动态规划、二叉树、排序算法、数据结构 5. 计算机基础 操作系统、数据库、计算机网络、设计模式、Linux、计算机系统 6. 前端学习 浏览器、JavaScript、CSS、HTML、React、VUE 7. 面经分享 字节、美团Java面、百度、京东、暑期实习...... 8. 编程常识 9. 问答精华 10.总结与经验分享 ......

事件摄像机的异步事件处理方法及快速目标识别

934}{基于图的异步事件处理的快速目标识别Yijin Li,Han Zhou,Bangbang Yang,Ye Zhang,Zhaopeng Cui,Hujun Bao,GuofengZhang*浙江大学CAD CG国家重点实验室†摘要与传统摄像机不同,事件摄像机捕获异步事件流,其中每个事件编码像素位置、触发时间和亮度变化的极性。在本文中,我们介绍了一种新的基于图的框架事件摄像机,即SlideGCN。与最近一些使用事件组作为输入的基于图的方法不同,我们的方法可以有效地逐个事件处理数据,解锁事件数据的低延迟特性,同时仍然在内部保持图的结构。为了快速构建图,我们开发了一个半径搜索算法,该算法更好地利用了事件云的部分正则结构,而不是基于k-d树的通用方法。实验表明,我们的方法降低了计算复杂度高达100倍,相对于当前的基于图的方法,同时保持最先进的性能上的对象识别。此外,我们验证了我们的方�

下半年软件开发工作计划应该分哪几个模块

通常来说,软件开发工作可以分为以下几个模块: 1. 需求分析:确定软件的功能、特性和用户需求,以及开发的目标和约束条件。 2. 设计阶段:根据需求分析的结果,制定软件的架构、模块和接口设计,确定开发所需的技术和工具。 3. 编码实现:根据设计文档和开发计划,实现软件的各项功能和模块,编写测试用例和文档。 4. 测试阶段:对软件进行各种测试,包括单元测试、集成测试、功能测试、性能测试、安全测试等,确保软件的质量和稳定性。 5. 发布和部署:将软件打包发布,并进行部署和安装,确保用户可以方便地使用软件。 6. 维护和更新:对软件进行维护和更新,修复漏洞和Bug,添加新的特性和功能,保证

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

开集域自适应方法及其在靶点发现中的应用

9322基于开集域自适应的新靶点发现Taotao Jing< $,Hongfu LiuXiang,and Zhengming Ding<$†美国杜兰大学计算机科学系‡美国布兰代斯大学Michtom计算机科学学院网址:tjing@tulane.edu,hongfuliu@brandeis.edu,网址:www.example.com,zding1@tulane.edu摘要开集域自适应算法(OSDA)认为目标域包含了在外部源域中未观察到的新类别的样本不幸的是,现有的OSDA方法总是忽略了看不见的类别的信息的需求,并简单地将它们识别为“未知”集合而没有进一步的这促使我们通过探索底层结构和恢复其不可解释的语义属性来更具体地理解未知类别。在本文中,我们提出了一种新的框架,以准确地识别目标领域中的可见类别,并有效地恢复未见过的类别的语义属性具体而言,结构保持部分对齐开发,通过域不变的特征学习识别看到的基于视觉图的属性传播是为了通过视觉语义映射将可见属�