>  기사  >  데이터 베이스  >  MySQL:如何从ibd文件中恢复数据

MySQL:如何从ibd文件中恢复数据

WBOY
WBOY원래의
2016-06-07 17:11:001575검색

在使用独立表空间的情况下,如果不慎使得innodb存储引擎的元数据文件ibdata损坏,我们还可以挽救宝贵的数据.因为在innodb使用独立表

在使用独立表空间的情况下,如果不慎使得innodb存储引擎的元数据文件ibdata损坏,我们还可以挽救宝贵的数据.因为在innodb使用独立表空间的情况下,ibdata文件会记录每个innodb表的id,只要使得ibd中的表id和ibdata文件中记录的表id相同,就能够打开表,读取到数据.

#创建表

CREATE TABLE `ibdtest` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `fid` int(11) NOT NULL COMMENT '表b中的id',

  `content` char(255) NOT NULL COMMENT '操作内容,系统生成',

  `mark` char(255) NOT NULL COMMENT '备注',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

MySQL:如何从ibd文件中恢复数据

#添加数据

INSERT ibdtest (fid,content,mark) VALUES (1,'1','1'),(2,'2','2');

SELECT * FROM ibdtest;

MySQL:如何从ibd文件中恢复数据

关闭mysql将ibdtest.ibd copy出来,放到其他数据库中来模拟灾难.

[root@localhost ~]#/opt/soft/mysql/bin/mysqladmin -p123456 shutdown

120130 18:31:50 mysqld_safe mysqld from pidfile /opt/soft/mysql/60137.localdomain.pid ended

[1]+ Done                    /opt/soft/mysql/bin/mysqld_safe--defaults-file=/opt/soft/mysql/config/my.cnf --user=mysql

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.