.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 *********** ...
随机推荐
- 通用jquery页面验证
页面通过给input 标签设置样式或者属性,即可实现所有页面的验证,customValidate方法并支持自己补充验证! 验证包括:必输项,只能输入数字, 输入数字并设定小数最大位数,下拉框必选,复选 ...
- mysql delete数据时报Error Code 1175
我们在学校mysql的时候,在更新或者删除数据的时候,会遇到以下错误: Error Code: . You are using safe update mode and you tried to up ...
- 十六 Django框架,信号
Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 也就是当程序有指定动作时,触发一个信号函数 1.Django内置信 ...
- jmeter--轻量级接口自动化测试框架
大致思路: jmeter完成接口脚本,Ant完成脚本执行并收集结果生成报告,最后利用jenkins完成脚本的自动集成运行. 环境安装: 1.jdk1.7 配置环境变量(参考前面的分页) 2.jmete ...
- 【leetcode刷题笔记】Longest Consecutive Sequence
Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...
- 继续学习C:运算符
" / " 两整数相除,结果为整数,有一方是实数形式,结果保留小数 " % " 求余运算符要求两侧均为整型数据, 数值取余,符号与被除数一 ...
- 2017-2018-1 20179203 《Linux内核原理与分析》第七周作业及第三周测试总结
攥写人:李鹏举 学号:20179203 ( 原创作品转载请注明出处) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...
- codevs1020 孪生蜘蛛
1020 孪生蜘蛛 题目描述 Description 在G城保卫战中,超级孪生蜘蛛Phantom001和Phantom002作为第三层防卫被派往守护内城南端一带极为隐秘的通道. 根据防护中心的消息 ...
- bzoj 3157 & bzoj 3516 国王奇遇记 —— 推式子
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...
- POJ1088(记忆化搜索)
经典记忆化搜索题目.当 从每个点一次进行搜索时要采用 记忆化搜索 #include"cstdio" #include"algorithm" using name ...