MySQL 通过ibd恢复数据
2021/5/18 19:28:01
本文主要是介绍MySQL 通过ibd恢复数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
个人学习笔记,谢绝转载!!!
原文:https://www.cnblogs.com/wshenjin/p/14780723.html
故障背景:线上一台老数据库跑在单盘上,因坏道导致ibdata损坏。
恢复前提:表ibd文件正常,开启innodb_file_per_table。
安装mysqlfrm以读取表结构
[root@ ~]# wget https://downloads.mysql.com/archives/get/p/30/file/mysql-utilities-1.6.5.tar.gz [root@ ~]# tar -xvzf mysql-utilities-1.6.5.tar.gz [root@ ~]# cd mysql-utilities-1.6.5 [root@ ~]# python ./setup.py build [root@ ~]# python ./setup.py install
导出故障实例表结构
[root@ ~]# /usr/bin/mysqlfrm --diagnostic /data/database/mysql/testdb/user_info.frm
恢复数据
新起一个MySQL5.7新实例,在新实例上建相同的表,并卸载表空间
(root@localhost) > alter table testdb.user_info discard tablespace;
将故障库user_info表的ibd文件(testdb/user_info.ibd)拷贝到新实例对应的路径
挂在表空间
(root@localhost) > alter table testdb.user_info import tablespace;
如果报错Error Code: 1808. Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format.)
则在建表语句后加上 ROW_FORMAT=COMPACT
至此,user_info表就恢复了。
参考:
https://blog.csdn.net/u012887385/article/details/54406712
https://blog.csdn.net/weixin_31478029/article/details/113171741
https://www.cnblogs.com/gered/p/12524586.html
这篇关于MySQL 通过ibd恢复数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践