#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审核方面的探索和实践》民生银行 资深数据库专家 李宁宁
《OceanBase分布式数据库在西安银行的落地和实践》蚂蚁金服P9资深专家/OceanBase核心负责人 蒋志勇
【#dbaplus社群#十年难得一遇!从数据误删到全量恢复的惊险记录】
推荐阅读
- 军武吐槽君以色列空军毫发无伤,高超战术美军都自愧不如,空袭叙利亚近十年
- 天下有警干扰全球通讯只需8秒,苏联最牛雷达:诞生几十年仍旧有优势
- 「日产骐达」日产的“省油王”,每公里油耗3毛,能使用十年,比轩逸更便宜
- 爆侃小哥能否匡扶汉室,一统天下?,若诸葛亮再多活三十年
- 【雷达】世界最牛的雷达,面世几十年仍旧是世界第一,干扰全球通讯只需8秒!
- 优视汽车做一个高端的“鸡头”吧,宝骏
- 鲸鲸说历史蜀汉能够复兴汉室,一统天下吗?,如果历史再给诸葛亮十年时间
- 科技快报网国美与TCL社群营销新模式5月出击,剑指一天1亿元目标
- 趣闻晨报男主赖冠霖众望所归,看到女主不淡定了,《十年一品温如言》来袭
- 晨怀化只因为她是军人的姐姐,洪江区:十年如一日地照顾弟弟
