位置: 编程技术 - 正文

Mysql误操作后利用binlog2sql快速回滚的方法详解(mysql误操作数据恢复)

编辑:rootadmin

推荐整理分享Mysql误操作后利用binlog2sql快速回滚的方法详解(mysql误操作数据恢复),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql误操作 恢复,mysql误操作 恢复,mysql 误删,mysql 误删,mysql 误删,mysql误删数据怎么恢复,mysql误操作数据恢复,mysql 误操作,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

在日常工作或者学习中,操作数据库时候难免会因为“大意”而误操作,需要快速恢复的话通过备份来恢复是不太可能的,下面这篇文章主要给大家介绍关于Mysql误操作后利用binlog2sql快速回滚的方法,话不多说,来一起看看详细的介绍:

一、总体解释:

DML(data manipulation language):

它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言

DDL(data definition language):

DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用

DCL(Data Control Language):

是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

二、binlog2sql安装

从mysql binlog解析出你要的sql。根据不同选项,你可以得到原始sql、回滚sql、去除主键的insert sql等。

2.1、用途

&#;数据快速回滚(闪回) &#;主从切换后数据不一致的修复 &#;从binlog生成标准SQL,带来的衍生功能

2.2、安装

2.3、user需要的最小权限集合:

select, super/replication client, replication slave权限建议授权

2.4、基本用法

解析出标准SQL

Mysql误操作后利用binlog2sql快速回滚的方法详解(mysql误操作数据恢复)

解析出回滚SQL

三、测试:

3.1、新建表users

3.2、解析标准sql

3.3、解析出回滚SQL

查看解析出的sql,如无误,可打印到sql文件中/data/backup/rollback.sql

mysql连接配置

解析模式

--realtime 持续同步binlog。可选。不加则同步至执行命令时最新的binlog位置。 --popPk 对INSERT语句去除主键。可选。 -B, --flashback 生成回滚语句。可选。与realtime或popPk不能同时添加。

解析范围控制

--start-file 起始解析文件。必须。 --start-pos start-file的起始解析位置。可选。默认为start-file的起始位置; --end-file 末尾解析文件。可选。默认为start-file同一个文件。若解析模式为realtime,此选项失效。 --end-pos end-file的末尾解析位置。可选。默认为end-file的最末位置;若解析模式为realtime,此选项失效。

对象过滤

-d, --databases 只输出目标db的sql。可选。默认为空。 -t, --tables 只输出目标tables的sql。可选。默认为空。

3.4、开始回滚

3.5、登陆数据库验证

四、注意事项

4.1、在配置文件中设置了以下参数:

4.2、在闪回的时候必须启动 MySQL 服务

因为它是通过 BINLOG_DUMP 协议来获取 binlog 内容,需要读取server端 information_schema.COLUMNS 表,来获取表结构的元信息,才能拼接成 SQL 语句。因此需要给用户提供的最小权限如下:

源码中,主要是使用 python-mysql-replication 作为实时解析 MySQL binlog 来获取各个 EVENT。 python-mysql-replication 实现了 MySQL 复制协议,客户端伪装成 slave 来获取主的 binlog 和 EVENT。

4.3、insert、update、delete大部分时候可以解析出来标准sql和回滚sql

一种情况例外:insert、updete、delete操作之后,drop/truncate table。 此时虽然在binlog中记录了所有的event,但是使用binlog2sql生成标准sql、回滚sql的时候已经找不到了dml操作的相应的表

4.4、DDL无法使用binlog2sql闪回数据。

总结

标签: mysql误操作数据恢复

本文链接地址:https://www.jiuchutong.com/biancheng/349055.html 转载请保留说明!

上一篇:MySql版本问题sql_mode=only_full_group_by的完美解决方案(mysql版本信息)

下一篇:阿里云ECS centos6.8下安装配置MySql5.7的教程(阿里云ecs centos sysctl)

  • 企业所得税法允许税前扣除的费用划分为
  • 高校报销需要增值税专用发票吗
  • 固定资产原值增加后折旧年限变吗
  • 一般户用途可以是往来款吗
  • 增值税加计扣除是什么意思啊
  • 已经计提折旧的固定资产购入后 加快折扣年限
  • 增值税一般纳税人证明怎么查询
  • 政府补贴是什么职能
  • 资本回收系数等于什么系数与利率之和
  • 计划成本法领用原材料会计分录
  • 机票退票账务处理
  • 无偿捐赠设备该如何做账务处理呢?
  • 开办公用品发票需要清单吗
  • 辅导期一般纳税人预缴增值税
  • 车辆租赁费可以开专票吗
  • 电费先付后开票怎么做账
  • 销售方如何开具红字增值税专票 对方未抵扣
  • 安装费要交税吗
  • 将自产产品用于职工福利的账务处理
  • 企业研发过程中特殊收入的会计处理
  • 基本户收到个人款项的分录
  • psbcie.exe是什么
  • 清华同方笔记本怎么进入u盘启动
  • 贸易公司出口是什么意思
  • 如何调整文件夹内文件的顺序
  • 票已收到款未付怎么办
  • mac怎么隐藏app
  • 专项用途财政性资金纳税调整明细表
  • php二维数组求和
  • 短期资金都是债务类资金
  • 负债大于资产能贷款吗
  • 通信原理简明
  • php require函数
  • “php”
  • 发票待开是什么意思?
  • 小规模普通发票几个点的税
  • 织梦网站老是被挂马
  • 结转本期损益怎么看亏损
  • 企业会计准则和企业会计制度的区别
  • 每月企业所得税怎么征收
  • mysql大分页优化
  • 实收资本印花税是一年一交吗
  • 其他收益期末余额
  • 企业购买二手车计提折旧年限
  • 收到公众号消息提醒
  • 电商公司不用交税吗
  • 国外工程合同类型
  • 一般纳税人购货取得普通发票
  • 一般纳税人提供劳务税率是多少
  • 设备融资租赁会上征信吗
  • 大型商业企业
  • 数据库性能优化方法论和最佳实践
  • win 9x
  • watchs2最新版本
  • win8系统一直重启
  • winxp任务栏消失
  • pcards
  • win10预览版21277下载
  • perl中的$1
  • js内存释放
  • android模块开发
  • javascript的
  • angularjs删除数组元素
  • vue如何用
  • unity unity3d
  • jQuery插件库
  • unity ui批处理
  • unity preferences
  • 安卓实现单选题
  • 每月个人所得税申报截止时间是几号
  • 代发工资法律依据
  • 车船税是比例还是定额
  • 给派出所写情况说明房屋情况怎么写啊
  • 税控盘开票怎么添加新商品
  • 马达加斯加秒懂百科
  • 自然人电子税务局(扣缴端)怎么添加公司
  • 欠账6万怎么还
  • 上海房产税2021征收对象
  • 江苏个人扣税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设