MySQL通过binlog进行数据恢复

【maxENT】从数据到地图:R语言实现最大熵物种分布建模全流程解析 本文详细解析了如何使用R语言实现最大熵模型(MaxEnt)进行物种分布建模的全流程。从数据准备、环境变量处理到模型训练与参数调优,再到模型评估与结果可视化,提供了实用的代码示例和避坑指南。特别适合生态学研究者利用最大熵模型处理物种分布数据,提升研究效率。 阅读详情

采用binlog恢复数据的两种情况

1.数据库丢失或者drop
    1)恢复系统自动备份

    2)用binlog恢复系统备份时间到此刻的的数据(drop操作需要binlog删除drop记录)

2.误操作update,delete

    1)恢复系统自动备份

    2)在binlog日志中删除误操作的操作语句,执行binlog恢复其他的数据
或者
在binlog中找到误操作的记录,用脚本回滚生成sql,进行恢复 一般用 mysqlbinlog_flushback,binlog2sql
一般误操作之后把数据库设置成锁表只读

这个时候记得赶紧加一个全局读锁,防止有新的写入发生 flush tables with read lock;

mysqlbinlog_flushback使用限制
1.支持mysql版本为MySQL 5.5 and 5.6.因为底层使用的是python-mysql-replication包。
2.数据库必须是row格式的。
3.反向生成的表必须有主键。
4.日志必须在主库存在
5.反向生成的mysql数据类型列出在下面。没有列出的类型没有经过严格的测试,也许有问题
6.支持的类型
        允许解析的字段类型,不在里面的会报错
  
ALLOW_TYPE={ "varchar":True, "char":True, "datetime":True, "date":True, "time":True, "timestamp":True, "bigint":True, "mediumint":True, "smallint":True, "tinyint":True, "int":True, "smallint":True, "decimal":True, "float":True, "double":True, "longtext":True, "tinytext":True, "text":True, "mediumtext":True }
数据恢复的操作过程和步骤
设置多实力的配置参数
server-id = 1  (在用到flushback.py时必须是主从复制)
socket=/mysql/server/mysql/mysql1.sock
port=3306
pid-file=/mysql/server/mysql/mysql1.pid
datadir=/mysqldata/data1
log-bin = mysql1-bin(生成的binlog名)
log-bin-index = mysql1-bin.index(记录binlog日志文件夹)
binlog_cache_size=1200K
binlog_format = ROW(binlog的生成模式statement(SBR) ROW MIXED)
wait_timeout=2880000
interactive_timeout = 2880000
max_allowed_packet = 256M(一个sql最大的长度)
一丶数据库丢失
1.创建数据库 
create database kuaiyun

2.找到系统的自动备份  kuaiyun.sql

3.导入数据库备份数据

mysql -h127.0.0.1 -P3306 -uroot -p kuaiyun < kuaiyun.sql
备份数据库
/mysql/server/mysql/bin/mysqldump -h127.0.0.1 -P3306 -uroot -p jingan >/root/jingan.sql

查看binlog文件  找到时间和位点 (尽量用位点)

 mysqlbinlog --base64-output=decode-rows -v mysql1-bin.000004(解码,在查看位点的是解码,在导入binlog数据时不解码)

4.在binlog文件中找到系统自动备份时间节点,比如时间是2017-07-12 03:30:00 或者节点数999

mysqlbinlog --start-datetime="2017-07-12 03:30:00" ./mysql-bin.000001 |mysql -h127.0.0.1 -P3306 -uroot -p kuaiyun

mysqlbinlog --start-position=999 ./mysql-bin.000001 |mysql -h127.0.0.1 -P3306 -uroot -p kuaiyun
二丶误操作drop数据库

方法可以和数据库丢失一样,但是要找到执行drop的位点,排除drop的操作或者通过flushback或者binlog2sql恢复drop的文件

用mysqlbinlog_flushback恢复drop的文件

1.下载flushback包
   1 ). 下载地址
    https://github.com/58daojia-dba/mysqlbinlog_flashback
    基于binlog恢复工具mysqlbinlog_flashback
  2 ).简介
    mysqlbinlog_back.py 是在线读取row格式的mysqld的binlog,然后生成反向的sql语句的工具。
    一般用于数据恢复的目的。 所谓反向的sql语句就是如果是insert,则反向的sql为delete。
    如果delete,反向的sql是insert,如果是update, 反向的sql还是update,但是update的值是原来的值。
 3 ).这个项目需要安装
    python-pip
    pip install pymysql
    安装pip
    安装pip,最新版本为1.4 这里以1.3版本为例
wget http://pypi.python.org/packages/source/p/pip/pip-1.3.tar.gz
    tar zxvf pip-1.3.tar.gz
    cd pip-1.3
    python setup.py install
或者使用pip的安装脚本get-pip.py
    
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
2.利用脚本生成回滚sql
   
 python mysqlbinlog_back.py --help 看在线的帮助
    python mysqlbinlog_back.py --host="127.0.0.1" --port=3306 --username="root" --password="" --schema=local_world -- tables="area_template" -S "mysql1-bin.000002" -L "2000"
3.生成的sql文件在./log目录下
    flashback_local_world_20170713_141202.sql
4.把生成的sql文件导入进数据库,相当于数据库的所有sql
    1)创建同名数据库  create dtaabase local_world;
    2)mysql -h127.0.0.1 -P3306 -uroot -p kuaiyun < flashback_local_world_20170713_141202.sql
完成
误操作update,delete
利用备份+binlog恢复
1.和drop的一样但是一定要在binlog中排除掉update和delete操作,找准位点
***利用工具生成sql
不用创建数据库,和drop操作一样
三丶其他---binlog2sql的使用
用途
    数据回滚
    1 ) .主从切换后数据不一致的修复
    2 ) .从binlog生成标准SQL,带来的衍生功能

安装
$ git clone https://github.com/danfengcao/binlog2sql.git
$ pip install -r requirements.txt
基本用法
解析出标准SQL
$ python binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'admin' -d dbname -t table1 table2 --start-file='mysql-bin.000002' --start-pos=1240
输出:
INSERT INTO d(`did`, `updateTime`, `uid`) VALUES (18, '2016-12-07 14:01:14', 4);
INSERT INTO c(`id`, `name`) VALUES (0, 'b');
UPDATE d SET `did`=17, `updateTime`='2016-12-07 14:01:14', `uid`=4 WHERE `did`=18 AND `updateTime`='2016-12-07 14:01:14' AND `uid`=4 LIMIT 1;
DELETE FROM c WHERE `id`=0 AND `name`='b' LIMIT 1;
解析出回滚SQL
$ python binlog2sql.py --flashback -h127.0.0.1 -P3306 -uadmin -p'admin' -d dbname -t table1 table2 --start-file='mysql-bin.000002' --start-pos=1240
输出:
INSERT INTO c(`id`, `name`) VALUES (0, 'b');
UPDATE d SET `did`=18, `updateTime`='2016-12-07 14:01:14', `uid`=4 WHERE `did`=17 AND `updateTime`='2016-12-07 14:01:14' AND `uid`=4 LIMIT 1;
DELETE FROM c WHERE `id`=0 AND `name`='b' LIMIT 1;
DELETE FROM d WHERE `did`=18 AND `updateTime`='2016-12-07 14:01:14' AND `uid`=4 LIMIT 1;
具体参数用法

python binlog2sql.py --help

参考相关文档
http://blog.youkuaiyun.com/jerry____wang/article/details/56285859   基于binlog恢复工具mysqlbinlog_flashback
http://www.cnblogs.com/martinzhang/p/3454358.html MySQL的binlog日志
http://blog.youkuaiyun.com/lxpbs8851/article/details/39316589 mysqlbinlog 查看执行的sql (row模式)
https://www.ilanni.com/?p=7911 烂泥:通过binlog恢复mysql数据库
https://yq.aliyun.com/articles/43163 学习mysql的binlog配置 
http://www.cnblogs.com/langtianya/p/5504774.html mysql中binlog_format模式与配置详解
http://www.linuxidc.com/Linux/2014-11/108811.htm CentOS/Ubuntu下安装Python-Pip和Fabric
https://github.com/58daojia-dba/mysqlbinlog_flashback 源码社区
http://www.cnblogs.com/liujingyuan789/p/6674756.html binlog2sql 实战心得
http://blog.youkuaiyun.com/shudaqi2010/article/details/54412895 原创工具binlog2sql:从MySQL binlog得到你要的SQL
希捷硬盘卡死修复实战:U盘启动盘制作与低格清零全流程 机械硬盘使用多年后常出现卡顿、假死、坏道等问题,很多用户在网上搜索“希捷硬盘低格工具”或“U盘硬盘复活器”,却发现要么工具不明,要么操作不当造成二次损伤。其实所谓修复工具,本质是U盘启动环境配合硬盘检测与清零软件,低格并非修复物理坏道,而是通过全盘写零触发主控重映射,隔离不稳定扇区。懂原理后,用官方SeaTools、Ventoy/U盘启动盘、Victoria或Linux dd等组合工具,即可对可抢救的硬盘做清零修复。这一技术适用于逻辑坏道、SMART警告、扇区不稳定等场景,但需先备份数据并判断盘体是否有异响 阅读详情

相关推荐

微信自动化必备软件:inspect(获取微信界面元素)

SaveButton10015.2:1 ✅(合格)Passed ✅说明这个控件完全符合无障碍标准。

Ven%的博客 1381

mysql-drop、truncate、delete

mysql的drop、truncate、delete区别

qq_42208662的博客 1237

算法面经手撕系列(2)--手撕BatchNormlization

手动实现/手撕BatchNormlization

罟霖同学的站点 867

用mysqldump备份的数据结合binlog解决drop库的故障一

文章目录第1章 当前生产环境和故障说明1.1 生产有几个业务库1.2 数据定期备份策略1.3 生产故障画图说明1.4 解决思路事先说明第2章 测试数据准备及故障模拟2.1 创建chenliang业务库2.2 创建帐号可连接业务库2.3 对chenliang库进行备份2.4 期间还有数据在产生2.5 生产业务库被drop掉了第3章 数据恢复详细步骤3.1 对web帐号进行加锁3.2 找到业务库chenliang的全备数据文件3.3 找到增量文件并进行处理3.4 数据恢复 第1章 当前生产环境和故障说明 1.1

chenliang 575

【清华大学软院】15-19年推免试题历年整理

整理的题目为清软预推免机试(外校)硕士机考题目。 年代 题目1 题目2 题目3 2019 质因数分解 二叉搜索树 区间DP(折叠字符串) 2018 日期转换 高精度模拟 区间DP(戳气球) 2017 进制素数 被遗漏的数字 DP(收集苹果) 2016 大数运算 DP DFS 2015 进制素数: http://acm.hdu.edu.cn/showproblem.php?pid=1230 2017年题目(这个是找的最准确的题目): 1题见【链接】 2题见【链接】

云端筑梦师 2255

舵机PWM信号转互斥继电器开关信号

-----------------本文由“麦粒电子”撰写,并提供相应产品服务。---------------- 叙述 上次的PWM转继电器开关方案得到大家的不少好评(博客链接),但是发现有些玩家需要一路PWM同时去控制两路继电器开关通断,并且两者是互斥的,好去控制两种不同的负载。所以就继续升级了如下的模块。 正常的控制部件顺序这样:遥控器按钮拨动,遥控器接收机相应通道PWM值变化,PWM转开关模块检测PWM值发生变化从而驱动相应机械继电器触点吸合释放。本模块的两个继电器动作是互斥的,也就是不会同时吸合。

Mai_LiElectronic的博客 1633

mysql binlog recove drop_MySQL通过Binlog恢复删除的表

查看log-bin是否开启:mysql> show variables like ‘%log%bin%‘;+---------------------------------+-------+| Variable_name | Value |+---------------------------------+-------+| log_bin ...

weixin_36052776的博客 223

性能测试软件(LR12) 具体汉化(中文)方法

LoadRunner 12 的下载及安装详细过程请参考:https://blog.youkuaiyun.com/xiao66guo/article/details/105465854 1、在LoadRunner文件中找到 Setup.exe 可执行文件,并以管理员的身份运行: C盘 —> Temp—>HP LoadRunner 12.02 Community Edition—> D...

多谢大人光临寒舍,请随便看看,喝口茶吧 ☕️☕️☕️ 1993

MySQL备机比主机binlog大_MySQL · 发动机特性 · DROP TABLE之binlog解析

点击有惊喜阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。Drop Table的特殊之处Drop Table乍一看,与其它DDL 也没什么区别,但当你深入去研究它的时候,发现还是有很多不同。最明显的地方就是DropTable后面可以紧跟多个表,并且可以是不同类型的表,这些表还不需要显式指明其类型,比如是普通表还是临时表,是...

weixin_39978282的博客 215

【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 823

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 120

用mysqldump备份的数据结合binlog解决drop表的故障一

文章目录第1章 当前生产环境和故障说明1.1 生产有几个业务库1.2 我的环境说明1.3 数据定期备份策略1.4 生产故障说明 第1章 当前生产环境和故障说明 1.1 生产有几个业务库 01:当前生产环境的MySQL中只存在一个业务库"chenliang"; 02:为前面web服务创建的连接帐号为www@‘172.16.1.%’。 03:mysql版本为5.7.28,开了Gtid的,开了binlog的,模式为row模式; 1.2 我的环境说明 3306实例 当作是生产环境 只有一个业务库che

chenliang 619

从数据读取到业务事件:理解 ABAP CDS 视图的目的与选型(含 RAP、扩展与分析场景)

CDS视图在SAP S/4HANA中不仅是数据查询工具,更是语义模型和运行时能力的载体。它通过分层架构(基础视图、组合视图、消费视图等)实现数据复用与场景适配,支持UI、分析、事务处理等多样化消费。视图类型包括提供数据访问的接口视图(I_前缀)、消费视图(C_前缀)和事务视图,以及不提供数据访问的扩展视图。这种分层设计确保了数据模型的稳定性与扩展性,同时支持自定义字段和上下文感知分析。正确理解CDS视图的用途和分层规则,能帮助开发者构建更健壮、可维护的SAP应用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 302

mysql通过binlog做数据恢复

mysql通过binlog做数据恢复

weixin_49702090的博客 1668

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

mysql binlog介绍以及通过binlog实现数据恢复

mysql的二进制日志binlog可以说是mysql最重要的日志,它记录了所有数据更新sql,以事件形式记录,还包含语句所执行的消耗的时间,mysql的二进制日志是事务安全型的。binlog日志主要用于mysql主从复制和数据恢复。 原文地址:代码汇个人博客 http://www.codehui.net/info/66.html 简单了解binlog binlog是一个二进制格式的文件,用于记录用户对数据库更新的sql语句信息,但是不包括select和show这类操作,因为这类操作对数据本身并没有修.

波板糖的博客 778

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL binlog 数据恢复

MySQL binlog 数据恢复及备份操作图解

Xiang想 1753

mysql如何利用binlog进行数据恢复详解

mysqlbinlog 官方操作文档:https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.html 前言 MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库。用于slave端执行增删改,保持与master同步 如果线上误操作了一个数据...

wangxuelei036的博客 1万+

MySQL通过binlog数据恢复

MySQL数据恢复binlog的作用修改类型恢复删除类型恢复insert类型恢复 binlog的作用 数据恢复通过BinLog进行恢复,binlog的作用一个是进行主从同步,一个进行数据恢复,数据恢复的前提条件是binlog不能丢失,如果丢失了则不能进行恢复的。 在MySQL中开启binlog [root@localhost ~]# vim /etc/my.cnf [mysqld] log_bin=mysql-bin #(位置一般和mysql库文件所在位置一样) server-id=128 #机器

终将成为大牛 2830

Mysql之binlog数据恢复

binlog——数据恢复 一、什么是binlog binlog(binary log)日志,是二进制日志文件。有增量备份和主从复制作用。 增量备份:保存除查询语句外的执行操作,在mysql误操作后,可以通过binlog日志来恢复数据,本次要说的就是这个东西。 主从复制:主节点维护binlog日志文件,从节点从binlog日志文件中同步数据 二、binlog配置 mysql默认不开启binlog配置,需要通过修改mysql的配置文件来启用binlog日志 windows:修改my.ini配置文件 lin

qq_43077369的博客 1251

Mysql8利用binlog实现数据恢复

mysql 利用binlog实现数据恢复

jianghuchuang的博客 2640

Mysql-BinLog数据恢复

介绍 binlog,即二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中; 它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制(主从数据库的复制)。 binlog有三种格式:Statement、Row以及Mixed。 –基于SQL语句的复制(statement-based replication,SBR), –基于行的复制(row-based replication,RBR), –混合模式复制(mixed-based replication,MBR)。 1 Statem

weixin_45203607的博客 2748

MySql之binlog与数据恢复(Binlog and Data Recovery in MySQL)

binlog我们一般叫做归档日志,他是mysql服务器层的日志,跟存储引擎无关,他记录的是所有DDL和DML的语句,不包含查询语句,binlog是一种逻辑日志,他记录的是sql语句的原始逻辑,binlog写满后会切换到下一个日志继续写,不会覆盖以前的日志。mysql8版本之后是默认是开的,这之前的版本需要我们手动的开启。本章详细介绍MySQL之binlog与数据恢复。

Linux运维老纪的博客 1478

mysql数据恢复,binlog详解

binlog日志恢复数据,是挽救错误操作和数据损坏一根救命稻草,所以认识和使用binglog对于技术人员还是很有必要的 (想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程。完全免费哦!) binlog一般用于 主从复制 中 master节点开启binlog把二进制日志传递给slave节点达到主从数据一致 第二点自然是用于数据恢复了,使用mysqlbinlog工具来恢复...

wanghao112956的博客 304

MySQL Binlog 数据恢复全指南

Binlog(二进制日志)是 MySQL 记录所有修改数据的 SQL 语句的日志文件,采用二进制格式存储。

weixin_52236586的博客 1239

【mysql】基于binlog数据恢复指令和坑

binlog.index是binlog索引目录,记录生成的binlog日志,日志内容在,对应的binlog下,通过后缀区分。mysqlbinlog恢复数据,需要使用同一表的,pos信息进行恢复,如果跨表操作,可以通过查看伪sql进行辅助恢复。可以通过mysqlbinlog指令,对binlog进行操作,通常我们使用这个指令将binlog导出为文本或sql。现在想要回到,之前的数据,那么可以查询binlog,找到刚刚update的,上一条日志。在binlog中找到对应需要恢复的日志,就可以进行数据恢复。

秃头不用洗发水的博客 1484

Mysql之通过Binlog日志实现数据恢复

目录一、binlog日志二、数据恢复: 一、binlog日志 1.binlog日志介绍 1)binlog也叫归档日志,它属于mysql的server层,所以所有储引擎都可以使用该日志。 2)binlog是逻辑日志,记录的是这个语句的原始逻辑,比如“给ID=2这一行的c字段加1 ”。 3)binlog是可以追加写入的。“追加写”是指binlog文件写到一定大小后会切换到下一个,并不会覆盖以前的...

Husky 467

mysql binlog更新记录缺失_mysql的binlog进行数据恢复

什么是binlog?binlog,也称为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)。如何开启binlog?首先我们可以进入mysql输入命令show variables like '%bin...

weixin_31572175的博客 926
上一篇: 百万级并发mysql架构
下一篇: PHP结合redis实现高并发下的抢购、秒杀功能
code301
博客等级 码龄9年 87粉丝 78原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值