.frm和.ibd恢复数据
昨日晚上开发告诉我不小心truncate两个表的数据,要求还原。结果在阿里云上找到了备份内容,结果是物理备份文件.frm、.ibd。心中一万个草泥马啊。。没办法,开始还原吧。
1、查看测试机Mysql配置文件位置
[root@localhost mysql]# which mysqld
/usr/sbin/mysqld
[root@localhost mysql]# /usr/sbin/mysqld --verbose --help|grep -A 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
可以看到Mysql首先调用的是/etc/my.cnf。查看该文件
[root@localhost mysql]# cat /etc/my.cnf
#
# The Percona Server 5.7 configuration file.
#
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
# Please make any edits and changes to the appropriate sectional files
# included below.
#
!includedir /etc/my.cnf.d/
!includedir /etc/percona-server.conf.d/
发现加载的是/etc/my.cnf.d/和/etc/percona-server.conf.d/目录,/etc/my.cnf.d/为空,/etc/percona-server.conf.d/有两个文件。

终于找到了配置文件/etc/percona-server.conf.d/mysqld.cnf。
2、进入测试机mysql,创建一个表(表名需要与恢复的表名一致,表结构一致)
CREATE TABLE `goms_hangar` (
`hangar_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`airport_iata` char(3) NOT NULL DEFAULT 'KMG' COMMENT '所属机场',
`hangar_category` varchar(16) NOT NULL DEFAULT '' COMMENT '所属机库分类',
`hangar_num` varchar(16) NOT NULL DEFAULT '' COMMENT '机库具体编号',
`arr_fid` char(32) NOT NULL DEFAULT '' COMMENT '进港航班',
`aircraft_num` varchar(16) NOT NULL DEFAULT '' COMMENT '飞机编号',
`from_parking_num` varchar(8) NOT NULL DEFAULT '' COMMENT '原机位',
`in_time` int(11) unsigned NOT NULL COMMENT '进库时间',
`go_parking_num` varchar(8) NOT NULL DEFAULT '' COMMENT '出库机位',
`out_time` int(11) unsigned NOT NULL COMMENT '出库时间',
`uid` int(11) unsigned NOT NULL COMMENT '操作人',
`is_exists` tinyint(1) unsigned NOT NULL DEFAULT '' COMMENT '是否还存在',
`update_time` int(11) unsigned NOT NULL,
`create_time` int(11) NOT NULL COMMENT '数据创建时间',
PRIMARY KEY (`hangar_id`),
KEY `IDEX_H_CATEGORY` (`hangar_category`),
KEY `IDX_H_NUM` (`hangar_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、
alter table goms_hangar discard tablespace;
4、将备份的.ibd拷贝到datadir目录下,记得更改权限
[root@localhost hello]# cp ~/source/goms_hangar.ibd .
[root@localhost hello]# chown -R mysql:mysql .
5、在Mysql数据库中输入
mysql> alter table goms_hangar import tablespace;
完成恢复。
6、查看效果
mysql> select count(*) from goms_hangar;
+----------+
| count(*) |
+----------+
| 341 |
+----------+
1 row in set (0.09 sec)
附:alter table table_name discard tablespace;与alter table goms_hangar import tablespace;
ALTER TABLE tbl_name DISCARD TABLESPACE;会将当前.ibd文件删除掉
ALTER TABLE tbl_name IMPORT TABLESPACE;会将文件内容导入到表空间中
注:如果在ALTER TABLE tbl_name IMPORT TABLESPACE;报如下错误

则需要在创建表的时候指定表的行格式。即加上ROW_FORMAT=COMPACT
.frm和.ibd恢复数据的更多相关文章
- 利用.frm、.ibd恢复数据
我们知道启用innodb_file_per_table选项后,单个表(InnoDB引擎)的数据和索引放入单独的文件中(.ibd),建表语句保存在.frm文件中本文假设192.168.85.132,33 ...
- Centos7下Mysql通过.frm和.ibd恢复数据
通过.frm和.ibd文件恢复表结构和数据 这里以hue数据库中的desktop_document2表为例 分成两步骤,先去表结构,再取数据,最好在一个用完就可以删除的数据库中进行 取表结构篇: 1. ...
- frm和ibd恢复sql文件的操作
情况:有mysql中data文件(仅仅一个数据库) 操作:frm和ibd恢复sql文件的操作 1.创建相同名字的库xxx 2.把ibdata1替换成原来的 3.把数据库xxx内内容全部替换为原来的 完 ...
- Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据
mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除 ...
- Mysql 通过frm&ibd 恢复数据
mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除 ...
- 通过.frm和.ibd恢复mysql数据
.frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索 ...
- windows mysql5.7 InnoDB 通过frm与ibd对数据进行恢复
参考:https://www.jianshu.com/p/50a2e13cd5cf 安装MySQL Utilities 下载地址:https://dev.mysql.com/downloads/uti ...
- mysql InnoDB通过.frm和.ibd恢复表和数据
ibdata1是一个用来构建innodb系统表空间的文件,这个文件包含了innodb表的元数据.撤销记录.修改buffer和双写buffer.如果file-per-table选项打开的话,该文件则不一 ...
- MySQL 5.6.26 通过frm & ibd 恢复数据过程
在A服务器上创建数据库yoonroot(yoon)> show create table yoon\G*************************** 1. row *********** ...
随机推荐
- Oracle数据库的三种验证机制
关于超级管理员登陆不需要密码因为: 数据库的三种验证机制: 操作系统验证(具有sysdba和sysopera的用户) 密码文件验证(具有sysdba和sysopera的用户) 数据库验证(普通用户) ...
- (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...
- c/c++写的比较好的读写配置文件的函数或者类
共用版 .h文件 //---------------------------------------------------------------------------- // 程序名称: ...
- 如何实现1080P延迟低于500ms的实时超清直播传输技术
再来当一次技术搬运工,内容来自高可用框架,学霸君工程师袁荣喜的如何实现1080P延迟低于500ms的实时超清直播传输技术. 导语:视频直播是很多技术团队及架构师关注的问题,在实时性方面,大部分直播是准 ...
- px-rem自适应转换(进阶@rem:40rem; )
接力之前的文章 https://www.cnblogs.com/leshao/p/5674710.html 这篇文章讲解的是px -rem 单位换算 除100的 写法 比如实际测量PSD宽度是500 ...
- Oracle中spool命令实现的两种方法比较
---恢复内容开始--- 要输出符合要求格式的数据文件只需在select时用字符连接来规范格式.比如有如下表 SQL>; select id,username,password from myu ...
- windows拾遗
Files has invalid value "<<<<<<< .mine". Illegal characters in path.在 ...
- Poj 1077 eight(BFS+全序列Hash解八数码问题)
一.题意 经典的八数码问题,有人说不做此题人生不完整,哈哈.给出一个含数字1~8和字母x的3 * 3矩阵,如: 1 2 X 3 4 6 7 5 8 ...
- j++与++j
(j++)+(++j)+(++j) 核心部分汇编代码 执行顺序j原始值为5,存放在栈的ebp-4中;q无初始值,存放在栈的ebp-8中先执行一次j自增赋值++j ;j=6执行第一个加法运算;值存放在C ...
- 奇异值分解(SVD)详解
2012-04-10 17:38 45524人阅读 评论(18) 收藏 举报 分类: 数学之美 版权声明:本文为博主原创文章,未经博主允许不得转载. SVD分解 SVD分解是LSA的数学基础,本文是 ...