mysql中ibd文件的修复
https://www.toutiao.com/i6442804114094031374/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=1546047462&app=news_article&utm_source=weixin
·
总体思路:我们会在一个测试环境去处理受损的ibd文件,然后通过导出的数据,导入到目标数据库中去。
(1)得到测试环境下的表的tablespace id
(2) 伪装成正确 的tabspace id 将有数据的文件覆盖测试环境的这个表文件
(3)innodb_force_recovery=6 后重启数据库,然后数据库是只读的。
(4)可以通过mysqldump-u -p db --table -t > 1.sql只导出数据;也可以直接mysqldump-u -p db --table -t | mysql -uroot -p888 targetdb 即可(到数据库就好,因为导出的语句是带有表名的,insert into table1....)
注意事项
(1) 旧的数据库的的Mysql版本与测试环境的mysql版本不一致,会导致datetime等字段的数据变得不能识别。所以最好旧的数据库版本与测试版本保持一致 。
(2)从测试版 到新数据库通过(4)进行,应该没有太多的版本要求。
(3)测试环境配置成5.6的好像有点问题,始终无法认识修改后的ibd文件!!!!!直接导致方案不可用。
更多推荐
所有评论(0)