MySQL bin-log日志恢复数据
目录
一、开启二进制日志
二、检查二进制日志是否开启
三、使用二进制日志备份和恢复
使用二进制日志备份恢复前先创建备份:
应用二进制日志:
扩展用法:
四、常见命令和操作
五. 使用 mysqlbinlog 工具查看二进制日志
1. 查看二进制日志的内容
2. 解码二进制日志并将内容保存到文件
3. 查看特定时间范围内的日志
4. 查看特定位置范围内的日志
5. 查看所有二进制日志文件的内容
6. 只查看头部信息
7. 使用过滤条件查看特定表的日志
在 MySQL 中,二进制日志(Binary Log, bin-log)是用于记录所有更改数据库数据的 SQL 语句的日志文件。开启和管理二进制日志可以用于数据恢复、主从复制等场景。默认是关闭的。
一、开启二进制日志
编辑MySQL配置文件(/etc/my.cnf):
在 [mysqld] 部分添加以下行:
log-bin=mysql-bin
binlog-format=ROW
server-id=1
log-bin:指定二进制日志文件的名称(这里是mysql-bin)。binlog-format:设置二进制日志记录的格式(ROW是推荐的格式)。server-id:服务器唯一标识符(用于主从复制)。
重启MySQL服务:
使更改生效,重启MySQL服务:
systemctl restart mysqld
二、检查二进制日志是否开启
登录MySQL:
mysql -u root -p[密码]
检查二进制日志状态:
SHOW VARIABLES LIKE 'log_bin';
SHOW BINARY LOGS;
- 通过
SHOW VARIABLES LIKE 'log_bin';验证log_bin是否为ON。 - 通过
SHOW BINARY LOGS;检查现有的二进制日志文件。
三、使用二进制日志备份和恢复
使用二进制日志备份恢复前先创建备份:
在定期备份数据时,创建物理导出(如 mysqldump)并记录此时的二进制日志位置。
mysqldump -u root -p[密码] --all-databases --single-transaction --flush-logs --master-data=2 > backup.sql
--single-transaction:在一个事务中执行,确保一致性。--flush-logs:刷新日志文件,开始新的二进制日志。--master-data=2:在导出文件中注释的形式记录二进制日志的文件名和位置。
应用二进制日志:
假设从基于时间点(时间戳)恢复,不限定于某个特定的库或表:
mysqlbinlog --start-datetime="2024-06-10 10:00:00" --stop-datetime="2024-06-10 12:00:00" mysql-bin.000001 | mysql -u root -p
或者基于位置点恢复,不限定于某个特定的库或表:
mysqlbinlog --start-position=107 --stop-position=2345 mysql-bin.000001 | mysql -u root -p
注:也可以在上面命令末尾加上一个库名,表示这些数据要在指定的库中执行
扩展用法:
指定库的操作
直接指定库在 MySQL 中解析和应用二进制日志时,可以使用
--database选项:mysqlbinlog --start-datetime="2024-06-10 10:00:00" --stop-datetime="2024-06-10 12:00:00" --database=your_database mysql-bin.000001 | mysql -u root -p在这条命令中,
--database=your_database确保只有与your_database数据库相关的 SQL 语句被解析和执行。针对特定库或表解析日志
例如,假设只关心
test_db数据库中的操作,将想要的生成sql语句文件mysqlbinlog --start-position=107 --stop-position=2345 mysql-bin.000001 | grep 'use `test_db`\|table_name' > filtered-log.sql然后应用筛选后的 SQL 日志
mysql -u root -p[密码] < filtered-log.sql
四、常见命令和操作
列出所有二进制日志文件:
SHOW BINARY LOGS;
查看当前二进制日志文件和位置:
SHOW MASTER STATUS;
清理旧的二进制日志:
假设想删除前30天的二进制日志:
PURGE BINARY LOGS BEFORE DATE_SUB( NOW(), INTERVAL 30 DAY);
或者删除所有:
PURGE BINARY LOGS TO 'mysql-bin.010';
五. 使用 mysqlbinlog 工具查看二进制日志
1. 查看二进制日志的内容
mysqlbinlog mysql-bin.000001
这个命令会将 mysql-bin.000001 文件的内容输出到控制台,内容为可读的 SQL 语句。
2. 解码二进制日志并将内容保存到文件
mysqlbinlog mysql-bin.000001 > decoded-binlog.sql
这个命令会将 mysql-bin.000001 文件的内容解码,并将结果保存到 decoded-binlog.sql 文件中。
3. 查看特定时间范围内的日志
mysqlbinlog --start-datetime="2024-06-10 10:00:00" --stop-datetime="2024-06-10 12:00:00" mysql-bin.000001
这个命令会输出指定时间范围内的二进制日志内容。
4. 查看特定位置范围内的日志
mysqlbinlog --start-position=107 --stop-position=2345 mysql-bin.000001
这个命令会输出指定位置范围内的二进制日志内容。
5. 查看所有二进制日志文件的内容
如果有多个二进制日志文件,可以使用以下命令查看所有二进制日志文件的内容:
mysqlbinlog mysql-bin.000001 mysql-bin.000002 mysql-bin.000003
或者更方便的方法:
mysqlbinlog mysql-bin.0000*
6. 只查看头部信息
有时您可能只需要查看二进制日志文件的头部信息,可以使用 --base64-output=DECODE-ROWS -vv 选项。
mysqlbinlog --base64-output=DECODE-ROWS -vv mysql-bin.000001
7. 使用过滤条件查看特定表的日志
使用 mysqlbinlog 结合 grep 来筛选特定表的日志内容:
mysqlbinlog mysql-bin.000001 | grep -i "table_name"
8.查看当前二进制文件
SHOW MASTER STATUS\G;
mysql> show master status\G
*************************** 1. row ***************************File: mysql-bin.000002Position: 154Binlog_Do_DB: Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)输出结果说明:
File: 当前正在写入的二进制日志文件名。
Position: 二进制日志中的当前写入位置。复制从服务器将从这个位置开始读取日志。
Binlog_Do_DB: 配置中要求记录到日志的数据库名。
Binlog_Ignore_DB: 配置中要求忽略的数据库名。
Executed_Gtid_Set: 已执行的 GTID(全局事务 ID)集,如果开启了 GTID 基于二进制日志。
9. 会创建新的日志文件
FLUSH LOGS;
执行成功后,MySQL 会创建新的日志文件,每个启用了日志的类别(例如二进制日志、错误日志、慢查询日志)都将使用新的文件名来记录后续的日志信息。
具体用途
- 二进制日志:生成一个新的二进制日志文件,现有的二进制日志文件会保留,可以用于恢复和备份操作。
- 错误日志:重新启动 MySQL 错误日志文件。
- 慢查询日志:重新启动慢查询日志文件。
- 常规日志:重新启动常规查询日志文件。
扩展:刷新特定类型的日志
- 刷新二进制日志:
FLUSH BINARY LOGS;
- 刷新错误日志:
FLUSH ERROR LOGS;
- 刷新慢查询日志:
FLUSH SLOW LOGS;
- 刷新常规查询日志:
FLUSH GENERAL LOGS;相关文章:
MySQL bin-log日志恢复数据
目录 一、开启二进制日志 二、检查二进制日志是否开启 三、使用二进制日志备份和恢复 使用二进制日志备份恢复前先创建备份: 应用二进制日志: 扩展用法: 四、常见命令和操作 五. 使用 mysqlbinlog 工具查看二进制日志 1. 查看二进制…...
Linux网络命令——netstat
netstat是Linux系统中非常有用的网络工具,被称为是网络监控中的军工刀,足见其地位。 传统上,它用于问题确定而不是性能测量,但是也可用于查看网络上的流量,以确定性能问题是否由于网络阻塞引起。 netstat用于显示与I…...
手机怎么压缩图片?通过三种压缩操作
手机怎么压缩图片?在智能手机日益普及的今天,拍照分享已成为日常生活的一部分。然而,高质量的照片往往占用较大的存储空间,且在网络上传输时速度较慢。那么,如何在手机上压缩图片呢?本文将介绍三种实用的手…...
分布式CAP、BASE理论务必了解一下
分布式系统理论是计算机科学中的一个重要分支,它关注如何设计和实现能够跨多个物理或逻辑位置运行的系统。在分布式系统中,CAP定理和BASE理论是两个非常著名的理论,它们分别描述了分布式系统设计中的一些基本约束和原则。 CAP定理 CAP定理&…...
spring最常用的注解
核心注解 Component 描述:将类标记为 Spring 组件,以便自动检测。用途:通常用于标注服务类或其他支持类。 Controller 描述:将类标记为 Spring MVC 控制器。用途:用于处理 Web 请求。 Service 描述:将类标记…...
Docker:认识镜像仓库及其命令
文章目录 Docker Registry什么是Docker Registry 镜像仓库工作机制使用流程实际使用方法仓库的拉取机制 常用的镜像仓库---DockerHub什么是DockerHub私有仓库 镜像仓库命令docker logindocker pulldocker pushdocker searchdocker logout Docker Registry 什么是Docker Regist…...
使用 Django 创建 App
文章目录 步骤 1:创建 Django 项目步骤 2:创建 App步骤 3:配置 App步骤 4:编写代码步骤 5:运行服务器 在 Django 中,App 是组织代码的基本单元,它可以包含模型、视图、模板等组件,帮…...
java定时任务 设置开始时间、结束时间;每周一、四、六执行;并且隔n周执行。最后计算所有执行时间
java定时任务 设置开始时间、结束时间;每周一、四、六执行;并且隔n周执行。最后计算所有执行时间) 定时任务需求程序设计依赖引入程序一、计算开始时间那周的周一时间二、根据executeTime和weekList.get(n),计算每个cron表达式。三、根据一和…...
linux的持续性学习
安装php 第一步:配置yum源 第二步:下载php。 yum install php php-gd php-fpm php-mysql -y 第三步:启动php。 systemctl start php-fpm 第四步:检查php是否启动 lsof -i :9000 计划任务 作用&am…...
MyBatis:概念简章
1. hello world 配置文件:mybatis-config.xml(核心配置文件,用于配置连接的数据库信息)(一般一个)XxxMapper.xml 该文件用于操作表(执行sql语句)(一张表一个)…...
有什么接码平台比较好用的
接码平台,也被称作短信接收平台或虚拟号码服务,主要是提供可以接收短信验证码的虚拟手机号码服务。这种服务通常被用于需要在网络平台上注册大量账号的情况,如营销推广、应用测试或是海淘购物时所需的手机号验证。下面将推荐几个较为好用的接…...
微服务之负载均衡器
1、负载均衡介绍 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上 进行执行。 根据负载均衡发生位置的不同, 一般分为服务端负载均衡和客户端负载均衡。 服务端负载均衡指的是发生在服务提供者一方ÿ…...
《时间管理九段》前四阶段学习笔记
文章目录 0.何谓时间管理九段0.1 第一段--把一件事做好0.2 第二段--把一天过好0.3 第三段--掌控两周内的固定日程0.4 第四段--掌控两周内的弹性时间0.5 第五段--科学管理3个月的项目事件0.6 第六段--实现一年的梦想0.7 第七段--明确一生的愿景0.8 第八段--正确补充和释放自身能…...
LLVM Cpu0 新后端5 静态重定位 动态重定位
想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…...
旅游卡是项目还是骗局?还是实实在在的旅游项目?
旅游卡是一个实实在在的旅游项目,而非骗局。以下是我对旅游卡项目的几点分析: 项目实质: 旅游卡项目是由国内外多条旅游线路整合而成的卡片,为旅游者提供方便、实惠的旅游方式。持有旅游卡,可以完全抵销跟团游线路中的…...
大模型+RAG,全面介绍!
1 、介绍 大型语言模型(LLMs)在处理特定领域或高度专业化的查询时存在局限性,如生成不正确信息或“幻觉”。缓解这些限制的一种有前途的方法是检索增强生成(RAG),RAG就像是一个外挂,将外部数据…...
智能合约中存储和计算效率漏洞
存储和计算效率 不当的存储结构或计算密集型操作可能导致高Gas费用和性能瓶颈。示例场景:频繁读取和写入大数组 假设你正在构建一个投票系统,其中每个提案都有一个独立的计票器。为了实现这一点,你可能最初会考虑使用一个映射(m…...
软件测试基础知识总结
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、软件测试概述 1、什么是软件 定义:计算机系统中与硬件相互依存的一部分&#x…...
C语言 | Leetcode C语言题解之第143题重排链表
题目: 题解: struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow head;struct ListNode* fast head;while (fast->next ! NULL && fast->next->next ! NULL) {slow slow->next;fast fast->next-&g…...
探寻性能优化:如何衡量?如何决策?
目录 一、衡量指标说明 (一)响应时间(Response Time) 平均响应时间(Average Response Time) 百分位数响应时间(Percentile Response Time) (二)吞吐量&a…...
TODO:Swagger基本使用
一、依赖及配置<!--swagger--> <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.1.0</version> </dependency>knife4j:enable: trueopen…...
Bootstrap5 图像形状
Bootstrap5 图像形状 Bootstrap5 是全球最受欢迎的前端框架之一,它提供了一个快速、简洁且灵活的方式来创建响应式网站和应用程序。在Bootstrap5中,我们可以通过丰富的组件和工具来设计出各种样式的页面元素,其中图像形状是一个极具创意和实用性的功能。本文将详细介绍Boot…...
使用OpenClaw读取和生成PPT
PPT是大家经常要用到的展示工具,也是我们人类交流中经常用到的工具。我就想用OpenClaw怎么能生成PPT。 在OpenClaw出来之前,就有很多用AI生成PPT的方式,而大部分都能很好的移植到OpenClaw中。 AI生成PPT的方式总结 WPS生成PPT,传统…...
python基于Android的学校教师工作量业绩考核计分系统 小程序
目录需求分析与功能设计技术栈选择数据库设计后端API开发前端小程序开发计分算法实现测试与部署安全与权限控制项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析与功能设计 明确教师工作量业绩…...
AI写论文宝藏推荐,4款AI论文写作工具让写职称论文如行云流水!
科研人员的AI论文写作利器推荐 对于很多科研人员来说,撰写期刊论文是一件让人十分棘手的事情。面对海量的信息和繁琐的格式要求,加上不断的修改和编辑工作,很多学者常常感到手足无措,效率低下。因此,借助一些AI论文写…...
douyin-downloader:8倍效率提升的视频资源管理神器
douyin-downloader:8倍效率提升的视频资源管理神器 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 想象一下,当你需要从抖音平台收集30个教学视频时,传统方式需要手动点击…...
从零到一:go-cqhttp QQ机器人开发全指南
从零到一:go-cqhttp QQ机器人开发全指南 【免费下载链接】go-cqhttp cqhttp的golang实现,轻量、原生跨平台. 项目地址: https://gitcode.com/gh_mirrors/go/go-cqhttp 项目概览:认识go-cqhttp 为什么选择go-cqhttp作为QQ机器人开发框…...
解放双手:B站字幕处理效率工具的全方位解析
解放双手:B站字幕处理效率工具的全方位解析 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 在数字内容爆炸的时代,视频已成为信息传递的主…...
卡证检测矫正模型惊艳效果集:驾驶证复杂背景中精准分割与矫正
卡证检测矫正模型惊艳效果集:驾驶证复杂背景中精准分割与矫正 1. 引言:当AI遇上“找茬”难题 想象一下这个场景:你是一家金融科技公司的风控专员,每天需要审核上千张用户上传的驾驶证照片。这些照片五花八门——有的放在办公桌上…...
Windows系统苹果设备驱动安装完全指南:从问题诊断到高效应用
Windows系统苹果设备驱动安装完全指南:从问题诊断到高效应用 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/…...
