MYSQL binlog简述及简单操作

Mysql之binlog日志说明及利用binlog日志恢复数据操作记录 众所周知,binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一、初步了解binlog MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句s... 阅读详情

binlog主要两大作用

  1. 高可用
  2. 数据恢复。

如何开启binlog

在my.cnf中配置:log-bin =/home/data/mysql/binlog/mysql-bin

检查是否开启

关闭binlog

my.cnf注销#log-bin =/home/data/mysql/binlog/mysql-bin
需要restart数据库

线上开启binlog

SET sql_log_bin=1|0 (1为开启,0为关闭)
ps:重启数据库失效

切换binlog命令

在mysql中执行flush logs;

修改二进制日志文件(binlog)大小

my.cnf中配置max_binlog_size

binlog 清理

主从模式下需要关闭主从

设置有效天数清理binlog

my.cnf设置expire_logs_days=10;意思是保留10天的binlog滚动清理。

手动清除binlog文件

根据日志文件名:PURGE MASTER LOGS TO ′MySQL-bin.010′;
根据日志时间: PURGE MASTER LOGS BEFORE '2015-03-02 13:00:00';
根据日志天数: PURGE MASTER LOGS BEFORE DATE_SUB(NOW(), INTERVAL 1 DAY);
清除binlog时,注意slave保持一致,不能清除正在复制的日志。

使用mysqlbinlog 进行二进制解析

执行mysqlbinlog可能会遇到的错误
ERROR: Error in Log_event::read_log_event(): ‘Found invalid event in binary log’, data_len: 77, event_type: 19Could not read entry at offset 306709:Error in log format or read error,将最新安装的mysql bin目录放到环境变量中就可以了。或使用全路径: /usr/local/mysql/bin/mysqlbinlog

解析出来的格式(隔离级别rc模式):read-commit

statement -> sql语句
mixed -> dml(记录所有行的变更)  ddl(sql语句)
row  ->记录所有行的变更

rr模式不受此限制

使用binlog恢复数据

恢复条件:

  1. 旧表:全备份sql文件 + binlog日志
  2. 新表:binlog日志(在此binlog录入期间create)

binlog恢复命令

/usr/local/mysql/bin/mysqlbinlog  --no-defaults --base64-output=decode-rows -v mysql-bin.000030 | /usr/local/mysql/bin/mysql -uroot -p

管道符的作用是先执行前面的语句,然后通过后面的语句导入数据库

定点恢复

--start-position 开始点 --stop-position 结束点
--start-date 开始时间 --stop-date  结束时间
eg:
/usr/local/mysql/bin/mysqlbinlog --start-datetime="2015-02-26 20:05:00" --stop-datetime="2015-02-26 20:07:00" mysql-bin.000067 | /usr/local/mysql/bin/mysql -uroot -p

实战手记

在测试之前,需要保证my.cnf中几个关键配置是关闭的,因为如果我打开指定忽略和指定写入binlog的配置,测试表将无法写入binlog,也有一种情况是写入了。但是无法将数据恢复到表中。

#不写入binlog二进制日志中的数据库
#binlog-ignore-db
#写入binlog二进制日志中数据库
#binlog-do-db
#指定只复制哪个库的数据
#replicate-do-db

旧表:全备份sql文件 + binlog日志

1.以前录入的表数据:

create table test(id int,name varchar(20)) engine=innodb charset=utf8;
insert into test(id,name)values(1,'a');
insert into test(id,name)values(233,'bbbb');

2.全备份

/usr/local/mysql/bin/mysqldump -uroot -p --opt --default-character-set=utf8 --extended-insert=false --triggers -R --hex-blob --all-databases --flush-logs   > /tmp/alldb.sql

3.建表
– 录入数据
insert into test(id,name)values(3,'c');
//新开一个binlog日志,现在会生成一个新的binlog日志,下面的操作会记录在新的binlog日志中

mysql> select * from test;
+------+------+
| id   | name |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
|    1 | a    |
|  233 | bbbb |
|    3 | c    |
+------+------+
6 rows in set (0.00 sec)

4.切换日志
以便将完整的操作保存到单独的binlog中
flush logs;

5.删除数据

select * from test; #有数据
delete from test;
drop table test;

6.恢复数据
先查看上一个binlog里面的内容:

/usr/local/mysql/bin/mysqlbinlog --no-defaults  --base64-output=decode-rows -v  mysql-bin.000042 | more

7.查看新的binlog里面的内容

/usr/local/mysql/bin/mysqlbinlog --no-defaults  --base64-output=decode-rows -v  mysql-bin.000043 | more

8.先恢复全备份集合:
/usr/local/mysql/bin/mysql -uroot -p </tmp/alldb.sql
9.恢复数据

/usr/local/mysql/bin/mysqlbinlog  --no-defaults --base64-output=decode-rows -v mysql-bin.000042 | /usr/local/mysql/bin/mysql -uroot -p

10.查看表中变化

新表新表:binlog日志(在此binlog录入期间create)

1.切换日志
flush logs;
2.建立新表

create table test2(id int,name varchar(20)) engine=innodb charset=utf8;
insert into test2(id,name)values(1,'a');
insert into test2(id,name)values(2,'b');

3.切换日志
flush logs;
4.之后drop表;
drop table test2;

5.然后利用二进制日志进行恢复

/usr/local/mysql/bin/mysqlbinlog  --no-defaults --base64-output=decode-rows -v mysql-bin.000044 | /usr/local/mysql/bin/mysql -uroot -p

定点恢复

定位:

--start-position #开始点 --stop-position #结束点
--start-date #开始时间 --stop-date  #结束时间

按照起始时间来恢复

/usr/local/mysql/bin/mysqlbinlog --start-datetime="2015-02-26 20:05:00" --stop-datetime="2015-02-26 20:07:00" mysql-bin.000067 | /usr/local/mysql/bin/mysql -uroot -p

按照起始位置来进行恢复

/usr/local/mysql/bin/mysqlbinlog --start-position="20" --stop-position="2000" mysql-bin.000067 | /usr/local/mysql/bin/mysql -uroot -p
手把手教你学Simulink——基于Simulink的Boost变换器电流模式控制(峰值电流控制)建模示例 本文详细介绍了基于Simulink的Boost变换器峰值电流模式控制建模方法。首先分析了Boost变换器在CCM模式下的工作原理及电流控制优势,重点阐述了斜坡补偿的必要性。通过分步指导搭建Simulink模型,包括主电路、电流采样、RS触发器和电压外环PI控制器等核心模块。仿真验证了系统在启动、负载突变和输入电压跌落等工况下的优异性能,输出电压稳定在48V±0.5V。文章还总结了工程实践要点,并提出了数字实现等扩展方向。该建模方法为电力电子高级控制策略的工程验证提供了有效途径。 阅读详情

相关推荐

从镜头到像素:深入解析Camera、Sensor与V4L2的协同工作流

本文深入解析了摄像头从物理成像到软件控制的完整工作流。详细介绍了镜头、传感器(Sensor)与V4L2框架的协同机制,涵盖光电转换、同步信号、ISP图像处理等核心环节,并通过实战演示了如何使用v4l2-ctl工具进行调试,为嵌入式开发和驱动调试提供系统指南。

weixin_29230805的博客 389

mysql性能优化之my.cnf配置优化

Linux如何修改mysql配置my.cnf 1.查找路径: mysqld --verbose --help| grep -A 1 "Default options" 2.修改my.cnf (或根据路径用 xftp 记事本打开修改): vim /etc/my.cnf 3.保存并退出 :wq 4.重启服务后生效 service mysqld start my.cnf 配置文件说明: ## global_buffers 在内存中缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能 ##

u010797364的博客 5527

SNAP计算哨兵二号的叶面积指数(LAI)

对于哨兵二号数据以及LANDSAT8数据,SNAP提供已经集成好的模块计算LAI。在Optical->Thematic Land Processing->Biopyhsical Processor目录下面。 对于经过Sen2Cor处理好的数据,需经过重采样才可进行计算。重采样工具在Raster->Geometric->Resampling。 如果选择Biopyhsical Processor S2_10m进行计算,需要将所有的波段都重采样为10米(哨兵二号的第二波段为10米,可据此波

gxwwww的博客 9414

MySQL清理binlog日志

1、查看binlog日志 mysql> show binary logs; mysql> show binary logs; ±-----------------±-----------+ | Log_name | File_size | ±-----------------±-----------+ | mysql-bin.000001 | 2792 | | mysql-bin.000002 | 1301425 | | mysql-bin.000003

小啊宇的博客 1150

利用AI辅助工具Codex在30分钟内高效生成发明专利说明书草案

Codex 是什么?简单说,它是 OpenAI 推出的一个高级 AI 工作平台,最初定位是软件开发辅助工具,但现在它的能力边界已经远远超出了写代码。根据 OpenAI 官方信息,每周有超过 500 万人使用 Codex,其中 40% 的新用户是非开发者,包括分析师、营销人员、研究人员等。这意味着 Codex 正在从一个程序员专属工具,演变为一个面向广泛知识工作者的生产力中枢。 那么,它和我们今天要谈的“写发明专利”有什么关系?核心在于 Codex 的“角色专属插件”和“上下文构建”能力。它不再只是根据零散的

weixin_29053067的博客 318

Ubuntu22环境下Xinference与RAGFLOW集成:构建高效rerank模型服务【实战指南】

本文详细介绍了在Ubuntu22.04系统上,通过部署Xinference模型推理服务来加载bge-reranker-base等rerank模型,并将其与RAGFLOW框架集成的完整实战指南。该方案实现了模型服务的解耦与灵活管理,有效提升RAG系统的检索精度与答案相关性,并提供了从环境配置、服务启动、网络连接到性能调优及常见问题排查的全流程解决方案。

pluto的博客 499

mysql关闭binlog日志,删除binlog数据(win和linux通用)

在 C:\ProgramData\MySQL\MySQL Server 8.0 路径下打开 my.ini 并注释掉 bin-log 配置项然后在其后面加入skip-log-bin。(ON)为开启状态 (OFF)为关闭状态 若开启状态则需要修改配置文件,反之不需要任何操作。打开 mysql 命令窗口,查询 binlog 状态,为(OFF)关闭状态。如果需要删除之前的binlog日志文件数据,打开命令窗口执行命令。打开 mysql 命令窗口,查询 binlog 是否开启。

weixin_53053517的博客 4647

子图同构之乌尔曼算法Ullmann Algorithm的python实现

给定两个图Ga​(子图)和Gb​(原图),其中Ga​有pa​个点和qa​条边,Gb​有pb​个点和qb​条边,其邻接矩阵分别为A和B。子图同构的关键在于找到一种从Ga​的点到Gb​的点的映射MM是一个pa​行pb​列的矩阵,且满足每行只有一个1(表示Ga​中的一个点唯一地映射到Gb​中的一个点),每列至多一个1(确保Gb​中的点不会被重复映射)。定义Ccij​MMBT,若在图Ga​。

weixin_42822813的博客 1974

如何关闭 MySQL 的 binlog(Binary Log)日志

MySQL 的但在某些情况下(如单机数据库、测试环境、磁盘空间有限时),可以关闭 binlog 以减少磁盘占用和 I/O 负担。

2401_89793006的博客 3491

【C语言】程序员筑基功法——《函数栈帧的创建与销毁》

汇编角度带你走进函数栈帧

StackFrame 3656

【CloudCompare教程】017:点云快速全局配准

点云数据的配准分为基于特征(特征点、特征线)的拼接和无特征拼接。特征点匹配的方法和全局ICP的方法。特征点的方法通过全局特征匹配达到全局配准,全局ICP的方法通过对变量空间进行搜索的方法达到全局最优解。

智慧空间实验室 3929

MySQL 关闭 binlog 日志

2、重启 mysql 服务。【关闭binlog日志】

m0_67265464的博客 5894

MCAL中Dsadc的配置

DSADC模块作为一个专用的模块,主要应用在编码器软解码,功能强大而复杂,这里介绍了Dsadc的mcal配置和详细描述,让你全面学习和理解这个模块功能和应用。

dhyw12399999的博客 787

mysql binlog常用操作

一.查看 binlog 基本信息 binlog文件的位置配置可在 /etc/my.cnf 配置和查看 0. 登录 mysql mysql -h localhost -u root -p 1.查看binlog文件列表 进入mysql命令行: show binary logs; 2.查看当前正在写入的binlog文件 show master status; 3. 查看binlog事件信息 show binlog events in 'bin-log.000004'; 4.查看 binlog 文件单个

纯洁的小魔鬼 7793

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

binlog日志_MySQL binlog日志常见操作

概述binlog会记录对MySQL数据库执行更改的操作,还包括了语句执行的时间,不包括select和show操作。若操作没有对数据库数据操作,也有可能写入binlog日志,默认情况是不开启。根据官方文档的测试表明,开启binlog日志会有1%的性能损耗,有两个重要用途:主从复制数据恢复查看binlog日志相关信息1.查看binlog日志是否开启show variables like 'log_%'...

weixin_39575502的博客 280

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mysql binlog日志及mysqlbinlog操作详解

binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Repli

爱代码也爱生活 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mysql binlog恢复sql_binlog2sql实现MySQL误操作的恢复

对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能。原理不难理解,基于MySQL的row格式的binlog中,记录历史的增删改SQL信息,基于此解析出来对应的SQL语句(回滚的话就是反向的SQL语句)。在格式为binlog格式为row的日志模式下,binlog中的内容记录了数据库中...

weixin_34362937的博客 354

MYSQL binlog简述及简单操作

MYSQL binlog简述及简单操作

qq_43679720的博客 179

mysql binlog row 格式,mysql使用 row 格式 binlog 撤销操作

本文章来为各位介绍一篇关于mysql使用 row 格式 binlog 撤销操作的例子,希望对各位有帮助。MySQL 在使用 row 格式,并使用默认的 binlog_row_image=full 的时候,binlog 中记录了完整的更新前后的数据镜像。因此,根据 row 格式 binlog 进行撤销操作是可行的。我就试着做了这么个工具[GitHub 页面] [linux 二进制文件]例如./bin...

weixin_33584986的博客 173

mysql限制binlog天数及数量_MYSQL binlog简述及简单操作

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshowbinlog主要两大作用高可用数据恢复。如何开启binlog在my.cnf中配置:log-bin =/home/data/mysql/binlog/mysql-bin检查是否开启mysql> show variab...

weixin_30733115的博客 1674

mysql的binlog的操作

操作mysql的binlog

qq_44860734的博客 1458

MySQL 开启binlog日志和windows服务操作

MySQL 开启binlog日志和windows服务操作

ernesto的博客 1819

binlog回滚mysql误操作数据

binlog回滚mysql误操作

weixin_43547554的博客 2798

mysql 设置binlog row_mysql使用 row 格式 binlog 撤销操作

本文章来为各位介绍一篇关于mysql使用 row 格式 binlog 撤销操作的例子,希望对各位有帮助。MySQL 在使用 row 格式,并使用默认的 binlog_row_image=full 的时候,binlog 中记录了完整的更新前后的数据镜像。因此,根据 row 格式 binlog 进行撤销操作是可行的。我就试着做了这么个工具[GitHub 页面] [linux 二进制文件]例如./bin...

weixin_39674028的博客 192

MySQL恢复工具之binlog2sql闪回操作恢复误操作数据

MySQL恢复工具之binlog2sql闪回操作恢复误操作数据 工具官网:https://github.com/danfengcao/binlog2sql 本文所有依赖包链接:https://share.weiyun.com/57HUxNi ---binlog2sql工具安装过程:http://blog.itpub.net/26736162/viewspace-265141...

小麦苗DBA宝典 1528

mysql binlog恢复错误_Mysql使用binlog恢复数据解决误操作问题的两种方法

为保证没有其他参数配置影响,重新安装配置了一台最小化安装的CentOS7虚拟机1. 基础知识2. 配置mysql 开启binlog、修改binlog模式为Row Level模式[root@localhost~]# vi /etc/my.cnf修改mysql配置文件,在[mysqld]下增加以下内容# 注释: 开启binlog 文件名以mysql-bin开头log-bin = mysql-bin#...

weixin_28862545的博客 966
上一篇: MYSQL日志中ERROR GENERAL SLOW日志分析简述
下一篇: maven学习手记+nexus配置+更换中央仓库为阿里云仓库
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值