dbaplus社群■十年难得一遇!从数据误删到全量恢复的惊险记录( 二 )
如果读者使用的是自己的笔记本 , 可以插一块 U 盘或移动硬盘 , 将数据拷贝到 U 盘或移动硬盘;如果使用的是物理机可以考虑使用管道给 netcat 命令把数据文件传输到另外一台服务器 。 如下图所示:
本文插图
表比较多的话建议写个脚本进行批量修复 , 注意提前分好目录结构 , 把对应句柄的文件直接恢复到指定的目录 , 便于后续处理 。 数据文件找回来啦!!!
本文插图
2、恢复数据文件
数据文件已经找回了 , 已经算是完成了一半 , 至少业务的数据都在这些文件里面 , 但独立的 ibd 文件是无法被 MySQL 识别的 , 需要配合表结构定义文件(MySQL 5.7 之前为 frm 文件)才可使用 。 老 A 咨询了业务同学 , 他们使用的是开源的服务 , 可以在其他环境上再部署一套 , 这样就顺利的拿到了这个服务的建表语句 。
MySQL 5.6 以上版本支持通过 ALTER TABLE xxx DISCARD TABLESPACE 和 ALTER TABLE xxx IMPORT TABLESPACE 的方式来删除和导入表空间文件(ibd 数据文件) 。 而我们这次的测试环境刚好是 5.7 的版本 , 支持这种语法 , 真是太幸运了 。 抓紧找个别的临时环境来建表导入数据就好了 。 操作方式如下:
本文插图
笔者在操作的时候使用的账号不是 MySQL 账号 , 导致第 4 步在引入表空间的时候提示表空间不存在 , 修改文件属主再重新导入就可以了 。 提醒大家还是要沉着 , 不要忙中出错 。
3、重建环境
完成了上一步千万不要开心太早 , 由于原来的表空间是未正常关闭的 , 这种方式恢复的表不可直接使用 , 数据有无损坏还需要进一步验证 。 这里老 A 建议把数据使用 mysqldump 出来 , 然后再恢复到准备迁移的新环境中 。 精力所限 MySQL 数据逻辑备份和恢复的方案这里就不再讲解了 , 读者可以自行搜索学习 。
备份出来的数据表被导入到新环境后 , 老 A 请开发同学验证了里面的数据 , 故障前最新的数据都还在 , 服务修改配置重新启动功能正常 , 这时业务终于长出一口气 。
总结
老话说“有备无患” , 线上数据库服务我们有每天的定时全量备份, 还有基于 binlog 的实时增量备份 。 对于自已部署的环境也要加强备份意识 。 笔记本上的代码要及时提交 git , 产品文档要及时上传公司的云盘持久存储 。 线上数据修改要提前备份修改前的内容 , 删除数据建议先标记删除再物理删除 。
本文插图
从过去40年至今 , 数据库的形态基本经历了传统商业数据库、开源数据库到云原生数据库的演进过程 。 云时代下数据库将如何革新与创变?金融行业核心数据库迁移与建设如何安全平稳展开?来Gdevops全球敏捷运维峰会北京站寻找答案:
《All in Cloud 时代 , 下一代云原生数据库技术与趋势》阿里巴巴集团副总裁/达摩院首席数据库科学家 李飞飞(飞刀)
《AI和云原生时代的数据库进化之路》腾讯数据库产品中心总经理 林晓斌(丁奇)
《ICBC的MySQL探索之路》工商银行软件开发中心 魏亚东
《金融行业MySQL高可用实践》爱可生技术总监 明溪源
《民生银行在SQL审核方面的探索和实践》民生银行 资深数据库专家 李宁宁
【dbaplus社群■十年难得一遇!从数据误删到全量恢复的惊险记录】《OceanBase分布式数据库在西安银行的落地和实践》蚂蚁金服P9资深专家/OceanBase核心负责人 蒋志勇
推荐阅读
- SpaceX马斯克SpaceX是怎么战胜巨头波音的?也结束美国对俄罗斯十年依赖
- 电动星球News|失去华为,失去中国智能汽车三十年? | 硬核时间
- 银杏财经|十年跨终端:从各自为营到融合共赢
- 科学求知之者|几十年的谜题或将被解开,快速射电暴成为寻找宇宙缺失物质的关键
- IP200 粉做到 10w+?公众号跨界私域社群?成功 IP 是这么做的
- 「」潜伏100个微信群后,我总结了微信社群卖课的3个套路
- 「晾霸」葵花奖走进晾霸:二十年磨一剑,专注智能电动晾衣架产品技术研发
- 『葛均波』葛均波:让“板凳甘坐十年冷”的科技工作者获得更多褒奖
- 5g■5G时代超高清龙头,大视频赛道二十年资深玩家非他莫属
- 社群营销实战:免费社群与付费社群的利弊,如何从免费转变到付费
