Mysql,innodb使用.ibd文件快速批量恢复数据---批量快速!

本文介绍了如何使用.ibd文件快速批量恢复MySQL InnoDB数据库的数据。通过调整innodb参数、脱离表结构、拷贝文件、导入表空间等步骤,详细阐述了批量恢复过程。此外,还提供了批量执行SQL、拷贝和赋权的方法,以实现高效的数据恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总述

本文以linux安装的mysql记录一次恢复数据的过程。
一般情况,如果我们有一个数据库叫做testDB,里面有一张表叫testTable,那么就会在mysql的目录下创建一个叫做testDB的目录,同时在这个目录下,会生成两个文件,testTable.frm和testTable.idb。当然创建表或者增加数据还会修改其它文件,这边不强调这个。
如果这两个文件保留正常的情况下,我们就可以在一个新库里面恢复到之前的表结构以及数据。
恢复数据的前提是需要知道表结构,我自己的在操作的时候,因为知道表结构,手动创建的,所以没有真正执行这一步,不过网上有通过.frm恢复表结构的,可以参考一下,比如:
.frm恢复表结构

然后就可以利用idb文件恢复数据了,当然这个文章也很多,不过都是单表的,表太多的话,那操作起来实在太麻烦了,本文稍微处理了一下,能够快速批量的恢复数据。

前期准备

  1. 需要有正确的frm和idb文件。
  2. 第一步先得创建一个数据库,同时创建一个同名的表以及表结构。如果你很清楚表结构的话,直接跑sql还是非常快的。因为我们这边每个库里面的所有的表都是比较规范,有固定的sql,直接跑一下即可;如果没有的话,可能先得很费劲的恢复表结构。

具体操作

调整innodb的参数

修改/etc/my.cnf文件,增加一个强制恢复相关的参数:
innodb_force_recovery=1
至于什么意思,网上也有不少解释。

让表结构和表空间脱离

执行sql:


                
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值