MySQL 5.6.26 通过frm & ibd 恢复数据过程

在A服务器上创建数据库yoon
root(yoon)> show create table yoon\G
*************************** 1. row ***************************
Table: yoon
Create Table: CREATE TABLE `yoon` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

插入数据
root(yoon)> insert into yoon values (1,‘HANK‘);
Query OK, 1 row affected (1.01 sec)

root(yoon)> insert into yoon values (2,‘YOON‘);
Query OK, 1 row affected (0.04 sec)

root(yoon)> insert into yoon values (3,‘GARY‘);
Query OK, 1 row affected (0.00 sec)

root(yoon)> insert into yoon values (4,‘NIKO‘);
Query OK, 1 row affected (0.02 sec)

root(yoon)> select * from yoon;
+------+------+
| id | name |
+------+------+
| 1 | HANK |
| 2 | YOON |
| 3 | GARY |
| 4 | NIKO |
+------+------+
4 rows in set (0.00 sec)

在B服务器上,添加参数innodb_force_recovery=1并重启,创建空数据库yoon,并创建表yoon
mysql> create database yoon;
use yooQuery OK, 1 row affected (1.01 sec)

mysql> use yoon;
Database changed
mysql> CREATE TABLE `yoon` (
-> `id` int(11) DEFAULT NULL,
-> `name` varchar(20) DEFAULT NULL
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.09 sec)

将表结构和空间脱离
mysql> alter table yoon discard tablespace;
Query OK, 0 rows affected (0.02 sec)

将A服务器上的ibd数据文件传输至B服务器上
scp yoon.ibd 182.19.4.7:/export/data/mysql/data/yoon

修改权限
chown -R mysql.mysql yoon.ibd

将表结构和空间建立关系
mysql> alter table yoon import tablespace;
Query OK, 0 rows affected, 1 warning (0.04 sec)

查询数据
mysql> select * from yoon;
+------+------+
| id | name |
+------+------+
| 1 | HANK |
| 2 | YOON |
| 3 | GARY |
| 4 | NIKO |
+------+------+
4 rows in set (0.00 sec)

详细步骤如下:
1、停止mysql服务,添加innodb_force_recovery=1 ,启动mysql服务
2、创建新数据库,创建相同表结构的表(表结构必须相同)
3、执行alter table tb discard tablespace;
4、删除表的ibd文件
5、跨服务器复制表ibd文件
6、修改ibd文件权限,执行alter table tb import tablespace;

时间: 2024-10-04 03:21:00

MySQL 5.6.26 通过frm & ibd 恢复数据过程的相关文章

Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据

mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除了,或者ibdata损坏了怎么办呢?别担心,只要有部分的frm.ibd存在就可以恢复部分数据. 注意:一.这个是对innodb的数据恢复.myisam不需要这么麻烦,只要数据文件存在直接复制过去就可以.二.大家的mysql数据库必须是按表存放数据的,默认不是,但是大家生产肯定是按分表设置的吧,如果不

Mysql 通过frm&ibd 恢复数据

mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除了,或者ibdata损坏了怎么办呢?别担心,只要有部分的frm.ibd存在就可以恢复部分数据. 注意: 一.这个是对innodb的数据恢复.myisam不需要这么麻烦,只要数据文件存在直接复制过去就可以. 二.大家的mysql数据库必须是按表存放数据的,默认不是,但是大家生产肯定是按分表设置的吧,如

利用.frm、.ibd恢复数据

我们知道启用innodb_file_per_table选项后,单个表(InnoDB引擎)的数据和索引放入单独的文件中(.ibd),建表语句保存在.frm文件中本文假设192.168.85.132,3306实例无法启动(磁盘还能访问),需要将原实例下的replcrash.py_user表恢复到192.168.85.132,3308实例 一..frm得到建表语句 mysqlfrm可以读取.frm文件并从该文件中找到表定义数据生成CREATE语句.在大多数情况下,生成的CREATE语句用于在另一个服务

服务器上的Mysql表全丢了情况下恢复数据

任务: web项目是在linux的Tomcat部署,Mysql也在上面,不知明原因下数据库宕机,启动不了,数据库表也突然没了,全空了!!!!!!!! mysql安装目录 惊喜的发现var/目录下有类似丢失数据库的表 接下来就是怎么恢复进去了,首先我们用的是mysql的InnoDb引擎,找了下其资料: 两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用. 我作为使用MySQL的用户角度出发,Innodb和M

mysql 选取操作日志(mysql-bin.0000恢复数据)

my.ini 配置log-bin=mysql-bin 启用日志 用  mysql-bin.0000 mysqlbinlog -d keyboard ../data/mysql-bin.000024 –start-datetime="2017-05-29 12:17:56″ –stop-datetime=" 2017-05-29 12:57:56″ > D:k.sql 说明: mysqlbinlog -d 数据库  日志文件路径  –start-datetime="开始时

HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据过程

故障描述 HP FC MSA2000存储,由于RAID5阵列中出现2块硬盘损坏并离线,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用,用户联系联系北亚数据,整个存储空间由8块450GB SAS的硬盘组成,其中7块硬盘组成一个RAID5的阵列,剩余1块做成热备盘使用. 由于存储是因为RAID阵列中某些磁盘掉线,从而导致整个存储不可用.因此接收到磁盘以后先对所有磁盘做物理检测,检测完后发现没有物理故障.接着使用坏道检测工具检测磁盘坏道,发现也没有坏道. 解决方法:

EMC存储崩溃恢复数据过程

[Raid数据恢复概述]北京某企业一台EMC FC AX-4存储由于存储上的RAID5阵列故障导致存储瘫痪,急需进行raid数据恢复.这台存储中搭建了一组12块硬盘的raid5磁盘阵列,阵列中包括有2块热备盘.由于raid阵列中出现两块硬盘离线,但热备盘中有一块未成功激活,raid真累瘫痪,上层LUN无法正常使用,存储崩溃,数据丢失,客户要求上门对raid阵列进行数据恢复.[Raid5硬盘检测过程]由于硬盘离线原因未知,首先由硬盘工程师对raid阵列中的所有硬盘进行物理检测(包括掉线盘和正常磁盘

硬盘物理故障开盘+RAID-5阵列瘫痪恢复数据过程

服务器数据恢复故障描述 服 务 器 型 号:HP P2000服务器操作系统:VMWARE ESX服务器文件系统:VMFS磁盘阵 列 级 别:RAID-5需要进行数据恢复的服务器挂载了8块硬盘组成RAID-5磁盘阵列,其中4号盘是热备盘,服务器在正常运行中两块硬盘亮×××故障灯,经用户方维护人员检测,故障硬盘应为物理故障,表现为:序列号无法读取,在SAS扩展卡上硬盘无法识别.需要对raid磁盘阵列进行数据恢复** 硬盘物理故障修复 由于服务器故障情况严重,需要首先确定该组raid阵列的磁盘掉线原因

MySql通过二进制日志文件恢复数据

在<百度.阿里.腾讯如何承载PB级别大数据>的视频中了解到,大型网站的数据库每天都会定时的进行数据备份份.如果设置每天的0点进行数据备份,在两个数据备份周期期间数据库出现宕机情况,0点到宕机这个时间段的数据如何备份呢?在MySql中是通过数据库的二进制日志文件进行数据恢复的. MySql的二进制日志文件默认是关闭的,需要我们在MySql根目录下的my.ini文件中设置为开启状态.设置方式为在[mysqld]节点下,添加log-bin=mysql  binlog-do-db=spring,mys