安装mysqlfrm

下载:

mysql-utilities:

https://dev.mysql.com/downloads/utilities/

mysql-connector-python:

https://dev.mysql.com/downloads/connector/python/


创建测试库

create database userdb;

创建一张新表

CREATE TABLE `userinfo` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(150) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

mysqlfrm 恢复异常表

插入测试数据

[[email protected]][userdb]> insert into userinfo select null,'eliott',now();
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
[[email protected]][userdb]> insert into userinfo select null,'mark',now();
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
[[email protected]][userdb]> insert into userinfo select null,'jack',now();
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
[[email protected]][userdb]> insert into userinfo select null,'mary',now();
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
[[email protected]][userdb]> insert into userinfo select null,'Tom',now();

mysqlfrm 恢复异常表

备份数据文件

mysqlfrm 恢复异常表

删除测试表userinfo

mysqlfrm 恢复异常表

把备份文件copy回数据目录

mysqlfrm 恢复异常表

查看测试表userinfo

mysqlfrm 恢复异常表

删除备份文件,然后用mysqlfrm通过备份的frm文件恢复数据结构

mysqlfrm --diagnostic /tmp/userdb/userinfo.frm

mysqlfrm 恢复异常表

重建表

mysqlfrm 恢复异常表

丢弃表空间,复制备份的ibd文件到数据目录

alter table userinfo discard tablespace;

mysqlfrm 恢复异常表

mysqlfrm 恢复异常表

重新导入表空间,恢复完成

alter table userinfo import tablespace;

mysqlfrm 恢复异常表






相关文章:

  • 2021-12-16
  • 2021-10-18
  • 2021-12-15
  • 2022-12-23
  • 2021-07-01
  • 2022-12-23
  • 2021-10-08
  • 2021-07-10
猜你喜欢
  • 2021-11-05
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
  • 2022-12-23
  • 2021-06-11
  • 2021-11-24
相关资源
相似解决方案