首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏后台技术杂项笔记

    mysql误操作binlog恢复

    mysql误操作binlog恢复步骤 记录具体步骤,方便日后回忆 一般正式环境使用数据库都会做全备份,但如果某个时刻数据库崩了,若利用全备份文件恢复,则在全备份到出现问题这段时间内的数据将会丢失,一般来说迫不得已也不会采取这种措施 /binlog log_bin_index=/var/lib/mysql/binlog.index 2. warnings (0.02 sec) mysql> DELETE FROM user; Query OK, 0 rows affected (0.00 sec) mysql> mysql> INSERT include-gtids, respectively, instead. root@f5f55acbb59a:/home# ls 000048bin.sql binlog.000048 这里-d用来指定误操作的数据库 1 end_log_pos 10936 CRC32 0x0375a73e Write_rows: table id 114 flags: STMT_END_F BINLOG ' S2jvYRMBAAAARAAAANopAAAAAHIAAAAAAAEACm15RGF0YWJhc2UABHVzZXIABAgPAw8EeADIAA4B

    1.1K20编辑于 2022-09-26
  • 来自专栏linda

    MySQLMysql误操作后使用binlog2sql快速回滚

    在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 二、binlog2sql安装 从mysql binlog解析出你要的sql -h127.0.0.1 -P3306 -uadmin -p'admin' -ddatabase -t table1 table2 --start-file='mysql-bin.000002' --start-datetime /binlog2sql/binlog2sql.py -uflashback -pflashback -dttt -tusers --start-file='mysql-bin.000034' --start-datetime /rollback.sql # python /usr/local/binlog2sql/binlog2sql/binlog2sql.py --flashback -uflashback -pflashback python-mysql-replication 实现了 MySQL 复制协议,客户端伪装成 slave 来获取主的 binlog 和 EVENT。

    1.9K31发布于 2019-06-02
  • 来自专栏python3

    使用python脚本实现mysql误操作

    1.简介 在oracle数据库中,当一个误操作被提交后,我们可以通过oracle提供的闪回功能将表闪回至误操作之前的状态。 mysql中没有原生的flushback功能,DBA误操作时,传统的恢复方式是利用全备+二进制日志前滚进行恢复。 模拟误操作(update) mysql> update test set country='europe' where name='bob'; --bob的国家被改为europe Query OK, 167 May 2 14:30 mysql-bin.000001 -rw-rw---- 1 mysql mysql 11400402 May 2 19:28 mysql-bin.000002 2 20:10 mysql-bin.000004 -rw-rw---- 1 mysql mysql 403 May 2 20:10 mysql-bin.000005 -rw-rw----

    88520发布于 2020-01-07
  • 来自专栏素履coder

    真·MySQL误操作差点删库跑路

    2. 然后编写脚本,根据id一一对应的把state字段的数据修改过来,故障期间造成了一些数据的丢失,不过好在不多,只能根据他们的反馈然后把数据补上 最后,经过分析可以知道,开头提到的写法本身就是错误的,但是mysql

    81530编辑于 2022-11-12
  • 来自专栏小麦苗的DB宝专栏

    【DB宝43】MySQL误操作闪回恢复利器之my2sql

    执行闪回操作 8.5 解析binlog 统计DML、长事务与大事务分析 一、my2sql简介 可以用于MySQL误操作闪回的工具包括my2sql、binlog2sql和MyFlash等工具,其中, my2sql是使用go语言开发的MySQL binlog解析工具,通过解析MySQL binlog ,可以生成原始SQL、回滚SQL、去除主键的INSERT SQL等,也可以生成DML统计信息。 当前是业界使用最广泛的MySQL回滚工具,下面对my2sql和binlog2sql做个性能对比。 /my2sql -user root -password xxxx -host 127.0.0.1 -port 3306 -work-type 2sql -start-file mysql-bin 154 -stop-file mysql3306-bin.000004 -stop-pos 2131 \ -output-dir /my2sql/ 执行过程: [root@lhrmy2sql my2sql

    2.7K20发布于 2021-03-25
  • 来自专栏小麦苗的DB宝专栏

    【DB宝43】MySQL误操作闪回恢复利器之my2sql

    About Me toc 一、my2sql简介 可以用于MySQL误操作闪回的工具包括my2sql、binlog2sql和MyFlash等工具,其中,个人感觉my2sql最好用。 [20210226142725.png] my2sql是使用go语言开发的MySQL binlog解析工具,通过解析MySQL binlog ,可以生成原始SQL、回滚SQL、去除主键的INSERT SQL 当前是业界使用最广泛的MySQL回滚工具,下面对my2sql和binlog2sql做个性能对比。 /my2sql -user root -password xxxx -host 127.0.0.1 -port 3306 -work-type 2sql \ -start-file mysql-bin 154 -stop-file mysql3306-bin.000004 -stop-pos 2131 \ -output-dir /my2sql/ 执行过程: [root@lhrmy2sql my2sql

    1.6K40发布于 2021-03-15
  • 来自专栏爱可生开源社区

    DML 误操作MySQL 闪回工具大盘点

    目前比较主流的 MySQL 闪回工具有 binlog2sql[1]、my2sql[2]、MyFlash[3] 三款。 基本信息 binlog2sql my2sql MyFlash MySQL支持版本 5.7 5.7 / 8.0 5.7 离线解析 否 是 是 语言 Python Go C 最后更新时间 2018.10 my2sql my2sql 是 Go 版的 MySQL binlog 解析工具,通过解析 MySQL binlog ,可以生成原始 SQL、回滚 SQL、去除主键的 INSERT SQL 等,也可以生成 /mysql-bin.000004 -work-type 2sql -start-file mysql-bin.000004 -start-datetime "2025-03-07 14:12:06 使用闪回工具只是一种补救措施,安全运维应该在预防误操作上有哪些安排呢? 一个让运维人员睡的安心的数据保障系统(MySQL 版)。 预防,为了减少数据误删除发生的概率,通过交付基线避免。

    55310编辑于 2025-04-09
  • 来自专栏业余草

    手把手教你MySQL误操作”回魂术

    误操作数据库的事情,估计不少开发人员都可能会遇到。毕竟常在河边走,哪有不湿鞋的呢? ? 今天,我给大家讲一下 MySQL 中的“误操作”回魂术。 用它来解决数据库的误操作问题,将大大缩短我们恢复数据的时间和难度。 网上关于 Flashback 的工具其实比较多。 关于 Flashback 工具,网上开源的有很多,比如:binlog2sql、MyFlash、淘宝彭立勋的 mysqlbinlog 等。今天我主要解释美团的 MyFlash 的使用。 当我们误操作插入了不想要的数据后,可以执行下面的命令,就可以把插入的数据给干掉了。 ? 其他的删除,更新操作都一样。 不要小看 binlog,它可是 MySQL 高可用和可靠性的基石。其实,MySQL 有很多功能都是落后的,这也正是 mariadb 等数据库崛起的原因。可以想象,AI 数据库绝对是未来的一个趋势!

    94020发布于 2019-06-22
  • 来自专栏开源部署

    使用Python脚本实现MySQL误操作的快速回滚

    1.简介 在Oracle数据库中,当一个误操作被提交后,我们可以通过Oracle提供的闪回功能将表闪回至误操作之前的状态。 mysql中没有原生的flushback功能,DBA误操作时,传统的恢复方式是利用全备+二进制日志前滚进行恢复。 模拟误操作(update) mysql> update test set country='europe' where name='bob';  --bob的国家被改为europe Query OK,       167 May  2 14:30 mysql-bin.000001 -rw-rw---- 1 mysql mysql 11400402 May  2 19:28 mysql-bin.000002   2 20:10 mysql-bin.000004 -rw-rw---- 1 mysql mysql      403 May  2 20:10 mysql-bin.000005 -rw-rw----

    1.2K20编辑于 2022-08-16
  • 来自专栏SEian.G学习记录

    MySQL利用binlog恢复误操作数据(Python脚本)

    在线上或者测试环境误操作导致数据被删除或者更新后,想要恢复,一般有两种方法。 方法一、利用最近的全量备份+增量binlog备份,恢复到误操作之前的状态,但是随着数据量的增大,binlog的增多,恢复起来很费时。 /mysql_3306/log/mysql3306.000006 /*! /mysql_3306/log/mysql3306.000006 -o /tmp/rollback.sql -h 118.89.107.162 -u root -P 3306 -p qcloud@2018 `pytest1` WHERE id=1 AND c1=1 AND c2='wjq' AND c3=3; 9、执行回滚操作 [root@VM_54_118_centos ~]# mysql

    1.4K30发布于 2021-03-03
  • 来自专栏冰河技术

    MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!

    写在前面 今天,一位哥们打电话来问我说误操作了他们公司数据库中的数据,如何恢复。他原本的想法是登录数据库update一个记录,结果忘了加where条件,于是悲剧发生了。 今天,我们不讲如何恢复误操作的数据(后面专门讲如何恢复误删除的数据),我们讲讲如何从源头上避免这样的问题,这才是避免类似问题的根本措施。 那么,我们基于MySQL提供的这项设置,就可以轻松实现如何最大程度防止人为误操作MySQL数据库了。什么?你不信? 不信我们就从MySQL的帮助说明说起,一起来看看如何基于MySQL的-u选项实现如何最大程度防止人为误操作MySQL数据库。 指定别名 我们可以将操作MySQL的命令做成别名,防止他人和DBA误操作数据库,将操作MySQL的命令做成别名也非常简单,这里,我们直接上示例了,如下所示。

    97320发布于 2020-10-29
  • 来自专栏idba

    恢复误操作的方法

    二 常用的恢复方式 2.1 利用备份恢复 使用这种方式的前提必须有最近的备份集或者知道出现误操作起始的binlog 位点或者GTID,利用备份集恢复到中间的机器上,然后利用MySQL的slave 特性 使用限制 MySQL的binlog format 必须是row 安装 git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql ,不过一般开发可不知道具体binlog,他们只知道什么时间误操作了,binlog2sql支持按照时间范围恢复。 mysql> select * from flashback; +----+------+ | id | stat | +----+------+ | 1 | 2 | | 2 | 3 | | 3 | 4 [4] danfengcao, binlog2sql: Parse MySQL binlog to SQL you want ---本文介绍的工具 [5] MySQL下实现闪回的设计思路 (MySQL

    1K30发布于 2018-08-09
  • 来自专栏Java学习网

    mysql误操作删除数据后数据恢复--Java学习网

    关于误操作删除数据和数据恢复,一定要有安全意识,MySQL数据的找回,一定要在配置bin-log,否则数据丢失将无法恢复: 在MySQL的my.ini(或my.cnf,视操作系统不同而不同)添加: [mysqld] log-bin=binlog(名字随便取) 然后需要重启MySQL服务才能生效 可以通过命令“show binlog events;”查看配置是否成功 通过mysqlbinlog 恢复MySQL数据的两种方法: (1)时间date 通过cmd运行到binlog所在的目录,再录入: mysqlbinlog –stop-date=”2011-02-27 12:12:59″ jbms_binlog .000001 | mysql -uroot -proot (回车) 恢复到2011-02-27 12:12:59之前的数据,如果是start-date,即从该时间点后的开始算起 (2)位置position 查看生成的txt文件,获取编辑位置和时间等数据,然后通过命令: mysqlbinlog –stop-position=”98″ jbms_binlog.000002 | mysql -uroot -proot

    1.2K30发布于 2021-07-09
  • 来自专栏DBA 平台和工具

    MySQL 数据安全:利用 sql_safe_updates 与 init_connect 防范误操作

    MySQL 提供的 sql_safe_updates(安全更新模式) 正是为了防止因误操作而引发的灾难性数据更改。 IF (SUBSTRING_INDEX(USER(), '@', 1) IN ('rd','rd2')) THEN SET sql_safe_updates = 1; END int | YES | | NULL | |+-------+------+------+-----+---------+----------------+2 这是因为 sql_safe_updates(安全更新模式)已开启,MySQL 会限制执行可能影响大量数据的 UPDATE 或 DELETE 语句,防止误操作导致全表数据被意外修改或删除。 'rd'@'%' |+-------------------------------------------------------------------------------+2

    46210编辑于 2025-02-10
  • 来自专栏Eric杂货铺

    Chmod -R 777 误操作恢复教程

    之前做过一个很傻的事情,输入chmod -R 777 / 输入快了,后面没有跟目录直接回车了。所有目录的权限都凌乱了,这里写一份恢复sshd登录的教程以及恢复系统文件的教程。最好恢复sshd之后,把数据拿出来,重新部署应用环境吧,以防以后位置的bug和风险。

    3K41发布于 2020-09-24
  • 来自专栏腾讯云数据库(TencentDB)

    TDSQL-C MySQL 版数据高可用升级:从误操作到精准恢复的范式革新

    2017年某大厂工程师误操作致使100万用户数据丢失。 2015年某旅行网数据库被物理删除后每小时损失超百万美元。 2、 原子化操作:闪回查询实现快速修复 基于对InnoDB引擎的深度优化,腾讯云数据库推出了闪回查询技术: SQL级原子修复:通过SELECT ... AS OF TIMESTAMP语句,可在秒级完成数据克隆,将误操作修复时间从小时级缩短至分钟级。 2、突发安全事件应急场景 面对外挂攻击、系统漏洞、参数配置错误等突发状况,数据库必须在最短时间内将数据回滚至先前正常版本。 立即体验TDSQL-C MySQL 版,开启数据安全防护新范式,将数据危机转化为业务持续领先的发展契机。

    31800编辑于 2025-07-03
  • 来自专栏用户8644135的专栏

    误操作YUM导致error,rpmdb解决方法

    1、由于搭建Kubernetes集群,误操作导致执行yum出现Error: rpmdb open failed错误,如下图 根据提示我们可以知道rpm数据库在yum安装过程中使用导致RPM数据库损坏了 JDCloud_Server_v1 yum.repos.d]# cd /var/lib/rpm 1)删除RPM库 [root@JDCloud_Server_v1 rpm]# rm -rf __db.00* 2

    59620发布于 2021-07-08
  • 来自专栏企鹅号快讯

    mariadb数据库误操作的克星-flashback

    写在前面 对于数据库而言,误操作是很致命的,并且是很难完全避免的,除了规范DBA操作之外,还需要一个非常好用的快速闪回工具处理误操作问题。 之前有同行发表过类似文章,介绍了诸如binlog2sql和姜承尧开发的增强版mysqlbinlog工具,今天我们介绍一下mariadb官方提供的mysqlbinlog工具的flashback功能,以供大家根据自身情况选择合适的闪回方案 其他参数和普通的mysqlbinlog一样 对于DML闪回,包括update、delete和insert操作,以下分三种场景测试: (注:这里不区分操作类型) (1)单库闪回 假设测试库dbatest包括2个表 (2)单表闪回 闪回前: 闪回: /usr/local/mariadb102/bin/mysqlbinlog -vvv -B -d dbatest -T mtest1 --start-datetime 个人认为,可以考虑使用mariadb替代官方版mysql,可以使用更多的开源管理工具。

    2.6K91发布于 2018-02-28
  • 来自专栏程序猿杂货铺

    MySQL2)| MySQL索引机制】

    MySQL中,索引是在存储引擎层面实现的,所以,并没有统一的索引标准,一般来说,不同存储引擎的工作方式是不一样的,也不是所有的存储引擎都支持所有类型的索引 哈希索引 哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效 B-Tree索引 B-Tree索引使用B-Tree树数据结构存储数据,大多数MySQL引擎都支持这种索引(Archive引擎是个例外) ? B+Tree索引图 详细的B-Tree和B+Tree可以参考 【MySQL一】开发人心里都该有的那颗 B 树 B树被作为实现索引的数据结构被创造出来,是因为它能够完美的利用“局部性原理”。 (1)由于是m分叉的,高度能够大大降低; (2)每个节点可以存储j个记录,如果将节点大小设置为页大小,例如4K,能够充分的利用预读的特性,极大减少磁盘IO; 注意:高度降低的原因在于: 在利用了局部性原理前提下 ,我们把一个节点的大小设为一页,一页4K,假设一个KEY有8byte,一个节点可以存储500个KEY,即j=500 m叉树,大概m/2<= j <=m,即可以差不多是1000叉树 一层树:1个节点,1*

    1.2K20发布于 2019-09-03
  • 来自专栏bisal的个人杂货铺

    误操作怎么办?试试这个神器-Log Miner

    参考了老杨的《Logminer:oracle人为误操作之恢复神器》,在11g尝试一次。但是请注意12c以上,具体操作过程,应该有改动,有机会得研究下。 default '') RETURN VARCHAR2; PROCEDURE remove_logfile( LogFileName IN VARCHAR2); -- SQL> insert into bisal values(2, 'b', 2, sysdate); 1 row created. BISAL" RENAME TO "BIN$tWPQZiEzW2ngVfgWPgtqEw==$0" ; drop table bisal AS "BIN$tWPQZiEzW2ngVfgWPgtqEw== dbms_logmnr.start_logmnr() must be invoked before selecting from v$logmnr_contents 整个操作虽然步骤有些多,但相对来说,还是比较规矩的,可以作为日常误操作的一种应急手段

    1.2K40发布于 2021-09-06
领券