-
Notifications
You must be signed in to change notification settings - Fork 72
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
大佬,求助 #38
Comments
看不到图片... 从报错来看,应该是存在lob类型解析失败. 请提供下ibd2sql的版本. 和报错详情.
|
版本 ibd2sql VERSION: v1.5 for MySQL 5.7 or 8.0 |
按照1.6版本下载。 提示还是1.5的版本信息 |
|
按照你的方法试了 运行check_innodb_file 没有提示抱错 |
没有报错那就是没有坏块的意思. 那就说明是这个脚本的BUG了. 执行的时候加上--debug看下具体信息呢 python3 main.py xxx.ibd --ddl --sql --limit 1 --debug |
取1条正常执行 ,这个是取多条抱错了 |
大佬,方便加一下联系方式吗?不太好发图片 |
不太方便提供联系方式呢.(不安全).... 从报错来看, 元数据信息是乱的(account_name 能是blob类型?). 这是5.7的数据文件吗? 8.0的数据文件就在ibd文件里面, 没得坏块的话,基本上不存在有问题的. 或者就是脚本有问题.(但这个版本已经修复了8.0: instant的BUG了) |
这个是8.0.13免安装版本的 |
8.0.13 是在测试范围内的版本. |
会不会是 varchar里面包含特殊字符,或者内容特别长? |
应该不会是特殊字符. 编码问题之前也已经解决了的(目前支持ascii和utf8) [2024-09-25 14:35:47] [DEBUG] OPEN IBD FILE: /data/mysql_3314/mysqldata/ibd2sql/ddcw_alltype_table.ibd
[2024-09-25 14:35:47] [DEBUG] ANALYZE FIRST PAGE: FIL_PAGE_TYPE_FSP_HDR
[2024-09-25 14:35:47] [DEBUG] ibd2sql.read PAGE: 0
[2024-09-25 14:35:47] [DEBUG] ANALYZE FIRST PAGE FINISH
[2024-09-25 14:35:47] [DEBUG] SDI PAGE NO: 3
[2024-09-25 14:35:47] [DEBUG] ANALYZE SDI PAGE
[2024-09-25 14:35:47] [DEBUG] ibd2sql.read PAGE: 3
[2024-09-25 14:35:47] [DEBUG] ANALYZE SDI PAGE FINISH
[2024-09-25 14:35:47] [DEBUG] SET ibd2sql.table = sdi.table (SDI的使命已结束 >_<)
[2024-09-25 14:35:47] [DEBUG] META INFO
[2024-09-25 14:35:47] [DEBUG] COLNO: 1
{'name': 'id', 'is_autoincrement': True, 'type': 'int', 'isvar': False, 'size': 4, 'isbig': False, 'elements_dict': {}, 'varsi
ze': 0, 'have_default': False, 'default': '', 'comment': '', 'collation': 'latin1_swedish_ci', 'character_set': 'latin1', 'ind
ex_type': 'PK', 'is_nullable': False, 'is_zerofill': False, 'is_unsigned': False, 'is_auto_increment': True, 'is_virtual': Fal
se, 'hidden': 1, 'char_length': 11, 'extra': None, 'instant': False, 'instant_value': '', 'instant_null': True, 'generation_ex
pression': '', 'default_option': '', 'collation_id': 8, 'srs_id': 0, 'version_dropped': 0, 'version_added': 0, 'physical_pos':
1, 'ct': 'int'}
|
现在不是走到 |
都检查了一下 两个字段text 类型,isbig都是True |
解析varchar的时候, 异常也是写的: |
看起来低版本报错更离谱了. 也就是大概率不是instant的问题, 这就很有趣了. 能解析部分数据, 然后报错...... (也不是坏块的嘛...) 如果不着急的话: 又不能提供原始文件, 我先想想怎么调试方便呢..... |
大佬,急!急!急!十万火急 |
每页强制解析:, 速度会比较慢哈. (没有做重定向哈, 自己写就是了) filename="/tmp/ddcw_alltype_table.ibd" # 要解析的ibd文件名
python3 main.py ${filename} --ddl # 获取表结构信息
filesize=`stat -c %s ${filename}`
maxpagecount=$[ ${filesize} / 16384 ]
current_page=1
while [ ${current_page} -le ${maxpagecount} ];do
echo "-- ${filename} PAGE NO: ${current_page}";
current_page=$[ ${current_page} + 1 ]
python3 main.py ${filename} --sql --page-start ${current_page} --page-count 1 2>/dev/null ;
done |
一失足成千古恨,有个操作记录表太大了,大意了直接把ibd文件删除了,导致数据库起不来了,只能通过ibd恢复,哭死 |
ibd文件删除, 不影响数据库启动啊 |
鬼知道啊 就是把这个删除了 mysql启动就抱错 |
直接启不来。。一言难尽 |
你发的那个 是搭配shell脚本,一起执行吗? |
看起来已经开始解析了, 但解析成功还是失败得看你重定向的文件里面有没得数据. 这种方法主要是针对坏块的场景的. |
右键对应的服务, 有个属性, 里面有启动命令. 你看下启动命令里面有没有指定配置文件或者error文件, 如果没有指定配置文件的话, 应该就是读的默认配置文件. 如果有指定配置文件的话, 看下里面的error文件路径, 没得的话,就是数据目录下面 |
重定向我写错了。。尴尬 |
这种显然是不对的. |
没有原始数据了,现在唯一的希望就是通过大佬这个工具还原数据 |
看起来就是blob解析那的问题, 但应该是前面varchar读的时候就差几个字节(6), 也就是可能是null或者主键索引哪里解析的时候有问题, |
我来请示一下领导。辛苦了,大佬 |
你好,请问问题有解决方案么?我好像也遇到了这个问题。就一张表数据异常,其他表用这个工具恢复了数据都正常(非常给力,给作者点赞)。 |
没事了,从这个ibd文件本体里读出来的表结构不对,我对着数据一点点调整完表结构之后就好了。总之非常感谢你的工具,很棒 |
感谢反馈!
|
从截图看还是1.6的, 我还没有打tag, 你得直接下载源码的才有: https://github.com/ddcw/ibd2sql/archive/refs/heads/main.zip @ssw0309 |
这个报错是 当varchar存储为溢出页的时候才会走到这个逻辑, 我测试了下是能够正常解析varchar溢出页的(这部分代码也没有动过). 除非有坏块了. 你可以先检查下是否存在坏块: https://github.com/ddcw/ddcw/tree/master/python/check_innodb_file 或者加上--debug看下相关信息呢 |
|
从报错来看, 很前面的字段就有问题了. 可能存在类似varchar(255)或者instant之类的BUG, 但没得相关数据文件无法确认. 也没得相关表结构可以模拟. |
是的 感觉像是解析某个字段失败了 |
他这个如何调整表结构的? |
运行时,遇到这个错误:struct.error: unpack requires a buffer of 20 bytes
The text was updated successfully, but these errors were encountered: