Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

first_blob 方法 解包异常 #22

Open
zerommc opened this issue Jun 3, 2024 · 12 comments
Open

first_blob 方法 解包异常 #22

zerommc opened this issue Jun 3, 2024 · 12 comments

Comments

@zerommc
Copy link

zerommc commented Jun 3, 2024

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

@zerommc
Copy link
Author

zerommc commented Jun 3, 2024

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

@ddcw
Copy link
Owner

ddcw commented Jun 3, 2024

  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
Copy link
Author

zerommc commented Jun 3, 2024

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

@zerommc
Copy link
Author

zerommc commented Jun 3, 2024

文件已发你邮箱,谢谢

@zerommc
Copy link
Author

zerommc commented Jun 3, 2024 via email

@ddcw
Copy link
Owner

ddcw commented Jun 3, 2024

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

@zerommc
Copy link
Author

zerommc commented Jun 3, 2024

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

@ddcw
Copy link
Owner

ddcw commented Jun 3, 2024

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

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

@zerommc
Copy link
Author

zerommc commented Jun 3, 2024

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

@zerommc
Copy link
Author

zerommc commented Jun 3, 2024 via email

@zerommc
Copy link
Author

zerommc commented Jun 3, 2024

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

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

@ddcw
Copy link
Owner

ddcw commented Jun 4, 2024

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 脚本也无法恢复到以前的表结构,这与建表时的数据写入和新增字段有关。 在此感谢作者的帮助。谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants