首页
学习
活动
专区
圈层
工具
发布

MySQL中使用undrop来恢复drop的表(上)

MySQL中可以使用编程语言(比如Python)来解析binlog中DML的逆操作来达到闪回的效果,如果数据不多,手工解析也可以。这也是现在大家碰到的很多DML Flashback的一个基本原理。...而如果是DDL,比如DROP,那就得叹声气了。...GitHub上有一个很不错的项目是undrop,基于InnoDB,也就意味着如果你所在的环境有了drop操作还是存在恢复的可能了,当然这个过程需要谨慎,建议大家在测试环境先练习测试论证后再做决定,当然我们希望这个工具永远不要排上用场...mysql_config --cflags` `$basedir/bin/mysql_config --libs` -o sys_parser sys_parser.c 这个工具的一个基本原理就是解析ibdata....page -t dictionary/SYS_TABLES.sql | grep 'sakila/actor' 其中参数4DF,代表文件格式(4代表文件格式是 REDUNDANT),D(D 表示只恢复被删除的记录

2.7K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL数据库:drop、truncate、delete的区别

    1、删除速度:drop>truncate>delete; 2、删除方式: (1)执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在日志文件中。...(3)drop则删除整个表的结构和数据,但是被依赖的约束、触发器、索引、依赖于该表的存储过程、函数将被保留,但其状态会变为invalid 3、删除后,表和索引所占空间: (1)delete操作不会减少表或索引所占用的空间...; (2)当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,但表结构及其列、约束、索引的定义等保持不变。...(3)drop语句将表所占用的空间全释放掉。...4、提交方式:delete是DML,需要手动提交操作才能生效,可以回滚,可以触发触发器;truncate和drop是DDL,会隐式提交,不能回滚,不会触发触发器。

    2K30

    xfs文件系统浅析 -- 恢复drop的表

    导读我们知道ibd2sql可以解析ibd文件从而恢复mysql的数据, 但没得ibd文件的时候又该怎么办呢? (哎呀, 不小心drop了表, 又没得备份!)...这时候就需要先从文件系统恢复数据文件了. mysql通常运行在linux服务器上, 通常是使用的xfs文件系统, 市面上也有不少该类工具, 有收费的, 也有免费的(比如testdisk,支持多种OS/FS...mysql数据文件)第二个参数: 要恢复的文件的inode (就是上面扫描出来的文件)第三个参数: 恢复的文件存放的文件名字....导入数据库为了方便演示, 我就地恢复的, 实际情况建议恢复到其它环境哈....`testdrop_20241015` limit 1;看来我们成功恢复了drop的表总结虽然我们已经验证了可以从文件系统恢复drop的表, 但还是要做好备份.我们目前只支持简单的情况,比如只支持v5,

    1K40

    【MySql】数据库的备份与恢复

    前言 对与数据库的备份与恢复该怎么去做呢?...Linux下对于文件或目录的备份,直接拷贝一份,留着备用,对于备份,比较简单的做法会就是直接打包拷贝一下,但是,如果需要恢复数据时,你可能会发现更多的问题,如受到版本的影响 不同版本的数据库对于命令,...MySql不提供拷贝或直接对文件夹重命名,而且我们也不推荐这么去做;我们比较推荐的是使用mysql的备份工具。...现在我们在把数据库test1给删除drop掉: 如何进行还原 还原source source /home/hwc/workspace/test1.sql; 采用source命令,后面加上要还原的文件路径...查看连接情况 如果数据库很卡,可以查一下当前有什么人在使用数据库,也就是查看连接情况: show processlist 可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的

    2K30

    13.6 mysql数据库备份恢复

    mysql数据库备份恢复目录概要 备份库 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql 恢复库 mysql -uroot -p123456 mysql...-d mysql > /tmp/mysql.sql mysql数据库备份恢复 备份库 在执行mysqldump -uroot -p123456 mysql的时候会看到很多信息,屏幕上显示的这些就是备份的数据...[root@hf-01 ~]# 我们可以通过mysqlbak.sql来恢复数据库,还可以恢复到另外一个数据库里面去 创建一个新的库mysql2 [root@hf-01 ~]# mysql -uroot...mysqldump -uroot -p123456 mysql user > /tmp/user.sql 能看到备份的时候,库存在的话,先把库drop掉,然后创建库,表存在的话,先把表drop掉,然后创建表...[root@hf-01 ~]# less /tmp/user.sql 查看备份表 恢复表的时候,只需要写库的名字,不需要去写表的名字 恢复表 mysql -uroot -p123456 mysql

    5.9K90

    myloader恢复mysql数据库示例

    mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具,备份方式为逻辑备份。它支持多线程,备份速度远高于原生态的mysqldump以及众多优异特性。...与其相配套的恢复工具则是myloader,主要用于将dump出来的sql以并行的方式进行恢复。本文主要描述myloader的使用方法并给出示例。    ...有关mydumper的相关参考 mydumper备份mysql数据库示例 mydumper安装及安装故障汇总 1、单库的备份与恢复 [root@app ~]# mydumper -u leshami...#创建测试表 >      insert into sakila.tb select * from sakila.actor" ###将备份库恢复到一个新数据库,如restoredb [root@app...(mysql|test))' -o /tmp/bak ###尝试删除部分数据库 [root@app ~]# mysql -urobin -pxxx   \ >  -e "drop database tempdb

    6K20

    mysql 数据库备份和恢复

    全量恢复 vs 增量恢复 全量恢复及恢复备份中所有的数据,是数据库恢复到备份时数据库状态。如果全量恢复的状态不够实时,可以接着使用增量恢复,恢复全量备份到这一刻所有的数据变化,是数据库状态保持最新。...增量恢复即恢复一个时间段内的数据变化。基于二进制日志,作为全量备份的补充。二进制文件中存储数据改变命令操作,通过重新执行相应的操作,使得数据库恢复到特定的状态. 备份规划、压缩和加密 ......这样在恢复时,就可以针对特定的数据库进行恢复,不至于造成所有的恢复都恢复到默认数据库里。如果需要备份文件包含drop数据库语句,则使用 --add-drop-database 选项。...如果指定的数据库不存在,则需要首先创建。 不包含 DROP DATABASE 语句。...dump.sql 备份不包含数据库创建语句,确保指定恢复的数据库存在: shell> mysqladmin create db1 指定数据库: shell> mysql db1 < dump.sql

    5.5K20

    MYSQL数据库恢复案例分享

    本次分享的案例是关于存储的数据恢复,存储上RAID崩溃导致存储无法启动。存储内部共有6台以上虚拟机,其中LINUX虚拟机3台为客户重要数据。...在与客户沟通后得知虚拟机内有MYSQL数据库,因为数据库底层存储的特殊性,可以通过扫描数据页进行数据提取。...首先获取最初版本数据库各个表的表结构:合并快照前的父盘因为写入较早,使用第一块掉线盘进行校验获取到这个文件的完整数据,然后提取出其中数据库各个表的表结构,之后客户方提供了最新版的数据库建表脚本。...提取记录:分别使用两组不同表结构对数据记录进行提取并导入恢复环境中的MYSQL数据库内,然后剔除各个表中因为表结构变更造成的乱码数据,最后将两组数据分别导出为.sql文件。...6、数据恢复结果 因为两个版本的数据库表结构不同,所以联系了客户方的应用工程师进行调试。调试完成后导入平台,经验证,数据可用本次数据恢复成功。

    4.3K20

    MySQL数据库备份和恢复

    数据库备份 数据库复制不能取代备份的作用 备份分类: 全量备份:整个数据库的完整备份 增量备份:在上一次备份基础上,对更改数据进行备份。...bash: mysql-u-p dbname<backup.sql mysql client: mysql>source/tmp/backup.sql 指定时间点的恢复 先决条件 具有指定时间点前的一个全备...具备自上次全备后到指定时间点的所有“二进制日志”(相当于重复操作从备份时间点的到现在的数据库操作) 步骤: 还原某个时间点的全备 mysql-uroot-p mc_orderdb<mc_order_backup.sql...=第一次增量目录 innobackupex--apply-log全备目录 mv/path/to/BACKUP-DIR/home/mysql/data 恢复后的数据直接替换原本的 记得改变属于的用户chmod...制定备份计划 每天凌晨对数据库进行一次全备 实时对二进制日志进行远程备份 使用linux定时任务:crontab 参考 高性能可扩展MySQL数据库设计及架构优化 电商项目,sqlercn,https

    7.9K20

    数据库 DROP INDEX 用法

    今天是日更的 64/365 天 大家好,我是阿常,上一篇阿常讲了如何创建索引,今天阿常和大家分享如何删除索引、表和数据库,通过使用 DROP 语句,我们可以轻松地删除索引、表和数据库。...DROP INDEX(删除索引) DROP INDEX 语句用于删除表中的索引。...用于 MySQL 的 DROP INDEX 语法 ALTER TABLE table_name DROP INDEX index_name; 数据库实例 ALTER TABLE student DROP...DROP TABLE table_name; 数据库实例 DROP TABLE student; DROP DATABASE (删除数据库) DROP DATABASE 语句用于删除数据库。...DROP DATABASE database_name; 数据库实例 DROP DATABASE test; TRUNCATE TABLE (删除表内数据) 如果我们仅仅需要删除表内的数据,但并不删除表本身

    69710

    存储崩溃MySQL数据库恢复案例

    一、分析存储底层次结构 工程师通过与客户的沟通及对RAID阵列的分析得出故障存储的底层结构为若干物理磁盘组成一个存储池,划分了多个LUN,需要进行数据恢复的为LUN1,其中包含重点恢复的3台虚拟机。...四、通过分析数据库页提取数据 本次数据恢复的虚拟机内有mysql数据库,可以利用数据库底层存储的特殊性进行数据页扫描,提取数据。...五、获取mysql数据页并分析 根据mysql数据页特征进行数据页扫描并导出(innodb引擎可以使用此方案,myisam因为没有“数据页”概念所以不可用),分析系统表获取各用户表信息,根据各个表的id...分别使用两组不同表结构对数据记录进行提取并导入恢复环境中的mysql数据库内,然后剔除各个表中因为表结构变更造成的乱码数据,最后将两组数据分别导出为.sql文件。...七、数据验证 因为两个版本的数据库表结构不同,所以联系了客户方的应用工程师进行调试。调试完成后导入平台,平台调试成功,本次数据恢复成功。

    6.1K20

    如何使用phpMyAdmin恢复备份的MySQL数据库

    如何使用phpMyAdmin恢复备份的MySQL数据库 mysql数据库, mysql数据库管理, 备份数据库 如何使用phpMyAdmin恢复备份的MySQL数据库 phpMyAdmin是一个用于通过...在本教程中,我们晓得博客将为你介绍使用phpMyAdmin恢复备份的MySQL数据库。   ...推荐:什么是phpMyAdmin 你需要什么   以下将用备份的数据库 替换 您当前的数据库,并将您的数据库恢复到备份时的状态。...结论   以上是晓得博客将为你介绍怎么使用 phpMyAdmin恢复备份的MySQL数据库的教程,应该已经了解和会使用phpMyAdmin从备份文件中成功恢复了数据库。...推荐:如何使用 phpMyadmin 优化MySQL数据库 晓得博客,版权所有丨如未注明,均为原创 晓得博客 » 如何使用phpMyAdmin恢复备份的MySQL数据库 转载请保留链接:https:/

    6.3K30

    云数据库 MySQL 的备份与恢复实践

    数据库是业务系统中最重要的组件之一。无论是用户信息、订单数据、内容数据还是配置数据,一旦丢失都可能带来严重影响。因此,在使用腾讯云数据库 MySQL 时,备份与恢复能力是必须重点关注的部分。...备份的价值在于,当问题已经发生时,仍然有机会将数据恢复到可用状态。二、云数据库 MySQL 的备份类型常见备份主要包括全量备份和日志备份。...全量备份是对某个时间点的数据库进行完整备份,适合用于周期性数据保护。日志备份则记录数据库变更过程,通常用于按时间点恢复。例如,每天凌晨执行一次全量备份,同时持续保存日志备份。...一旦真正发生故障,才发现恢复流程不熟悉或恢复时间过长。四、恢复前要注意什么?恢复数据库前,不建议直接覆盖现有生产库。更稳妥的方式是先恢复到一个新的临时实例,然后进行数据核对。...七、总结数据库备份不是可选项,而是生产系统的基础保障。腾讯云数据库 MySQL 提供了较完善的备份和恢复能力,但真正的安全来自合理策略和定期演练。

    24410
    领券