dbaplus社群 2024年09月30日
宕机的 MySQL 5.7,用 dbsake 和 ibd2sql 抢救回来了!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了一套应对MySQL 5.7数据危机的应急方案,当MySQL未备份、单点部署且突然崩溃无法启动时,可借助dbsake和ibd2sql工具恢复数据,包括详细的操作流程。

💻作者贺春旸是dbaplus社群金牌专家,致力于开源技术研究,负责数据库相关工作。数据安全至关重要,文中探讨MySQL 5.7数据抢救方案。

🔧使用dbsake恢复表结构,需先安装并从frm文件恢复,此操作可提供完整表结构SQL。

📁使用ibd2sql恢复数据,要在新MySQL 8.0实例中创建表结构,获取并配置该工具,指定相关文件路径和参数,将ibd文件转化为可执行SQL语句。

原创 贺春旸 2024-09-30 07:16 广东

本文是一套不用递交辞呈的应急方案。

作者介绍

贺春旸,dbaplus社群金牌专家,凡普金科和爱钱进DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一&二版、《MySQL运维进阶指南》作者,曾任职于中国移动飞信、安卓机锋网。五次荣获dbaplus年度MVP,致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。


数据安全是企业的生命线,数据库一旦意外宕机将不堪设想,试想一下如果你遇到了这样一个棘手的情况: 


面对这种危机,如何抢救 MySQL 5.7 的数据?以下是一套不用递交辞呈的应急方案。


对于 MySQL 5.7 的数据恢复,我们可以借助两个强大的工具—— dbsake 和 ibd2sql 。这个方法不仅能还原表结构,更能恢复数据,堪称一个全面的拯救方案。接下来,让我们一步步探讨详细的操作流程。


第一步:使用 dbsake 恢复表结构


1、安装 dbsake:

# curl -s get.dbsake.net > dbsake# chmod 755 dbsake


2、使用 dbsake 从 frm 文件恢复表结构:

# ./dbsake frmdump /data/mysql/mysql57_1/data/test/t2.frm


frm文件恢复表结构


这一步将为我们提供完整的表结构 SQL。


第二步:使用 ibd2sql 恢复数据


1、在全新的 MySQL 8.0 实例中,创建我们刚刚恢复的表结构。


2、获取并配置 ibd2sql 工具:

# wget https://github.com/ddcw/ibd2sql/archive/refs/heads/main.zip# unzip main.zip# cd ibd2sql-main# python3 main.py /data/mysql/mysql57_1/data/test/t2.ibd  \--sdi-table /data/mysql/mysql8/data/recover/t2.ibd      \--sql --ddl --complete-insert --mysql5


ibd文件数据恢复


参数解释(以下指的是ibd2sql):








回车后,MySQL 5.7 的 ibd 文件就会转化为可执行的 SQL 语句,至此我们的数据抢救行动画上圆满的句号,不仅挽救了宝贵的数据,更是拯救了自己的职业生涯!


跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MySQL 5.7 数据恢复 dbsake ibd2sql
相关文章