ddcw / ibd2sql

parse mysql ibd file to sql for learn or recovery data
GNU General Public License v3.0
198 stars 57 forks source link

说几个使用体验吧 #24

Open laugh0412 opened 4 months ago

laugh0412 commented 4 months ago

1/首先感谢,在已经绝望的情况下,google看到了这个解决方案,虽然不能完美解决问题,但确实提供了许多帮助。 2/在可完全恢复的文件,从sql里面看到 decimal(10,2)的数据类型部分正确,部分变成超长的负数,大部分情况下代表的是0,还有一些null的情况变成一串0x....的长字符串 3/部分ibd文件无法恢复,只能恢复部分,一般是表字符CHARSET=utf8mb3,但实际表是完整无损的。 4/最后,其实我是在清理磁盘空间的时候,清空了undo_001,undo_002,最终发现把四个文件重命名undo_001,undo_002,ib_logfile0,ib_logfile1,重启mysql,重新生成了四个文件,数据都是原来的,一切都恢复正常了,当然可能部分提交中的数据有丢失也未知。

ddcw commented 4 months ago

1/首先感谢,在已经绝望的情况下,google看到了这个解决方案,虽然不能完美解决问题,但确实提供了许多帮助。 2/在可完全恢复的文件,从sql里面看到 decimal(10,2)的数据类型部分正确,部分变成超长的负数,大部分情况下代表的是0,还有一些null的情况变成一串0x....的长字符串 3/部分ibd文件无法恢复,只能恢复部分,一般是表字符CHARSET=utf8mb3,但实际表是完整无损的。 4/最后,其实我是在清理磁盘空间的时候,清空了undo_001,undo_002,最终发现把四个文件重命名undo_001,undo_002,ib_logfile0,ib_logfile1,重启mysql,重新生成了四个文件,数据都是原来的,一切都恢复正常了,当然可能部分提交中的数据有丢失也未知。

  1. 感谢反馈.
  2. mysql的版本是否是 8.0.28(不含)以上呢. 是否做过DDL (add/drop column alg=instant)呢?
  3. 如果存在部分恢复, 可以使用强制解析试下, 看数据行是否完整.