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

first_blob 方法 解包异常 #22

Open zerommc opened 5 months ago

zerommc commented 5 months ago

解析ibd文件,部分成功解析,解析过程有异常: unpack requires a buffer of 12 bytes,如需要可提供ibd 文件

zerommc commented 5 months ago

mysql8.0 版本,另解析出的日期不正确,还有些列的数据解析结果为null,但实际是有数据的

ddcw commented 5 months ago
  1. unpack requires a buffer of 12 bytes 应该是忘记判断entry为空的情况了....
  2. 解析出来的数据不正确的话, 这是属于严重BUG了. 估计是instant的问题了. (可以先使用ibd2sdi xxx.ibd | grep se_private_data | grep default确认下是否含有instant) 如果是测试环境的话, 请提供下原始的ibd文件吧. 或者提供下报错附近的DEBUG信息

解析ibd文件,部分成功解析,解析过程有异常: unpack requires a buffer of 12 bytes,如需要可提供ibd 文件

zerommc commented 5 months ago

我给你ibd 文件吧,不存在数据安全问题,给我一个邮箱

zerommc commented 5 months ago

文件已发你邮箱,谢谢

zerommc commented 5 months ago

------------------ 原始邮件 ------------------ 发件人: "ddcw/ibd2sql" @.>; 发送时间: 2024年6月3日(星期一) 上午9:16 @.>; @.**@.>; 主题: Re: [ddcw/ibd2sql] first_blob 方法 解包异常 (Issue #22)

unpack requires a buffer of 12 bytes 应该是忘记判断entry为空的情况了....

解析出来的数据不正确的话, 这是属于严重BUG了. 估计是instant的问题了. (可以先使用ibd2sdi xxx.ibd | grep se_private_data | grep default确认下是否含有instant) 如果是测试环境的话, 请提供下原始的ibd文件吧. 或者提供下报错附近的DEBUG信息

解析ibd文件,部分成功解析,解析过程有异常: unpack requires a buffer of 12 bytes,如需要可提供ibd 文件

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

从QQ邮箱发来的超大附件

article.rar (14.68M, 无限期)进入下载页面:https://mail.qq.com/cgi-bin/ftnExs_download?k=233163627a12769e229ff3711f37514e1b4506030a0502534e08015b011a015654064e5001525b4c075702505f56015305030151393c630011450a0155524d130243635f&t=exs_ftn_download&code=c1cb97ca

ddcw commented 5 months ago

目前解析发现 第三行第5字段存在编码问题. PAGE NO:193 OFFSET:1225:1231 具体值为: b'\xe8\x00\x00\x00\xf3\x92' (这里做decode的时候有问题, 但它前后均能正常decode), CHECKSUM 值一致, 原因未知. 你看下该行该字段查询是否正常呢, 有无特殊字符,特殊编码之类的

zerommc commented 5 months ago

在解析过程中,是否可以设置 字段字符集为 utf8mb3,我似乎在哪里看到过utf8mb3这样的编码,不知道会不有影响到解析,我对python 不懂,遇到代码问题,也不会具体调试。感谢感谢

ddcw commented 5 months ago

在解析过程中,是否可以设置 字段字符集为 utf8mb3,我似乎在哪里看到过utf8mb3这样的编码,不知道会不有影响到解析,我对python 不懂,遇到代码问题,也不会具体调试。感谢感谢

目前不支持指定字符集. (utf8和ascii均能自动识别.). utf8mb3和utf8mb4均对应python的utf8. 应该不是这个问题.
个别字符影响不大, 我再看下后面的日期问题和null问题(应该是instant的问题)

zerommc commented 5 months ago

好的,我试着看下 \xe8\x00\x00\x00\xf3\x92的问题,后面instant 还得辛苦您

zerommc commented 5 months ago

通过这个软件,可以查到,大概有233 条数据,现在通过现有版本可以导出136 条数据。至于遇到的无法解码的可以置为null.

------------------ 原始邮件 ------------------ 发件人: "ddcw/ibd2sql" @.>; 发送时间: 2024年6月3日(星期一) 下午2:37 @.>; @.**@.>; 主题: Re: [ddcw/ibd2sql] first_blob 方法 解包异常 (Issue #22)

在解析过程中,是否可以设置 字段字符集为 utf8mb3,我似乎在哪里看到过utf8mb3这样的编码,不知道会不有影响到解析,我对python 不懂,遇到代码问题,也不会具体调试。感谢感谢

目前不支持指定字符集. (utf8和ascii均能自动识别.). utf8mb3和utf8mb4均对应python的utf8. 应该不是这个问题. 个别字符影响不大, 我再看下后面的日期问题和null问题(应该是instant的问题)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zerommc commented 5 months ago

目前解析发现 第三行第5字段存在编码问题. PAGE NO:193 OFFSET:1225:1231 具体值为: b'\xe8\x00\x00\x00\xf3\x92' (这里做decode的时候有问题, 但它前后均能正常decode), CHECKSUM 值一致, 原因未知. 你看下该行该字段查询是否正常呢, 有无特殊字符,特殊编码之类的

image 确实第五列有乱码字符。也应该可以确定是这个乱码导致的数据无法全部解析。 但恢复数据的方式是通过 释放、导入 表空间的方式解决的。而之前无法通过该方式恢复,是因为表结够不一致,即使通过ibd文件解析的sql 脚本也无法恢复到以前的表结构,这与建表时的数据写入和新增字段有关。 在此感谢作者的帮助。谢谢

ddcw commented 5 months ago

ibd2sql解析出来有212条数据, 有3条被标记为删除的, 存在部分编码问题. 那个时间问题目前还没找到原因.... ibd2sdi就能看到 最后5个字段是新增的. 但为啥会表结构不一致呢? 优先 使用官方的alter table xx import tablespace哈. 不行再用其它工具.

目前解析发现 第三行第5字段存在编码问题. PAGE NO:193 OFFSET:1225:1231 具体值为: b'\xe8\x00\x00\x00\xf3\x92' (这里做decode的时候有问题, 但它前后均能正常decode), CHECKSUM 值一致, 原因未知. 你看下该行该字段查询是否正常呢, 有无特殊字符,特殊编码之类的

image 确实第五列有乱码字符。也应该可以确定是这个乱码导致的数据无法全部解析。 但恢复数据的方式是通过 释放、导入 表空间的方式解决的。而之前无法通过该方式恢复,是因为表结够不一致,即使通过ibd文件解析的sql 脚本也无法恢复到以前的表结构,这与建表时的数据写入和新增字段有关。 在此感谢作者的帮助。谢谢