上一篇文章为大家介绍了某金融科技企业通过 zCloud 多元数据库智能管理平台的告警中心“警警”有条地管理告警并进行敏捷处置的实践案例。本篇跟大家继续分享该案例客户如何利用 zCloud 备份恢复模块下的Binlog解析功能补齐 MySQL 数据恢复能力,让运维人员快速定位并恢复由于误操作导致的数据错误删除或修改。

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_数据

zCloud 备份恢复模块-Binlog解析页面截图

安全操作,警钟长鸣”是所有IT从业人员都应具备的基本素质,但是在生产实践中依然屡见应用或数据库维护人员误操作导致数据被误删除或误更新,从而影响业务正常运行的情况发生,严重时甚至会造成重大数据和财产损失。在案例客户的实际生产环境中,曾发生过数次由于应用维护人员执行DML SQL条件疏忽而导致数据被错误修改的情形,需要请求DBA协助恢复。

在如下场景中,由于应用维护人员疏忽,将执行的delete语句中result_code为1100的数据条件误写为result_code=1000,从而导致了316279条数据被误删除。

执行操作前:

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_数据_02

执行操作后:

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_数据_03

数据库运维人员接到数据恢复请求后,登录 zCloud,通过 MySQL 备份恢复一级菜单进入Binlog解析功能页面,根据实际情况生成误操作数据表回滚恢复SQL脚本。

Binlog解析功能支持按时间或GTID两种方式进行解析,并可以灵活控制解析策略。运维人员可以通过可视化方式快速定位并生成误操作表数据回滚SQL或误操作原始SQL,提升数据恢复效率,最小化业务影响。

如下图所示,运维人员通过可视化方式聚焦误操作目标表,快速选择输入相应信息后生成数据回滚SQL文件:

  • 服务名称:被执行误删除动作的目标数据库;
  • 解析类型:为找回误删除数据解析类型选择“回滚SQL”;
  • 原始操作类型:指定“DELETE”误删除动作;
  • 解析发起节点:支持选择目标MySQL任一“主节点或从节点”;
  • 指定解析存储目录:恢复数据使用的回滚SQL脚本生成位置;
  • 生成文件名称:自定义指定方便识别的回滚SQL脚本名;
  • 解析方式:确定误删除动作时间后,选定解析时间段,同时支持根据GTID方式解析; 
  • 选择数据库:选择误删除表所属database;
  • Binlog内容:选择误删除表名。

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_SQL_04

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_数据_05

生产恢复无小事”,为确保数据恢复绝对安全可控,zCloud 此时并不执行实际恢复动作。运维人员可以通过点击相应解析文件名的“恢复”按钮查看Binlog解析结果,并“下载解析文件”进行恢复数据的正确性确认,也可以登录解析文件生成数据库节点直接确认。

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_SQL_06


警示:解析文件数据确认无误后,运维人员务必根据实际需要,谨慎判断恢复方式:

√ 先异地或异库后生产恢复

√ 直接执行生产恢复

本例中由于急需完成生产恢复,运维人员可以根据页面相应解析条目显示的“所在目录”,登录目标数据库主节点严格进行解析文件后,直接快速完成恢复动作:

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_数据_07

恢复后验证:

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力_SQL_08

至此,依托 zCloud Binlog解析功能,误操作丢失的316279条数据成功恢复。

由于误删除或应用异常导致业务数据丢失会引发业务中断,因此对业务经营的影响巨大,企业IT人员需要格外重视。zCloud Binlog解析功能不仅能够简化繁琐的人工流程,还能降低技术人员Binlog恢复的技能门槛,从而助力运维人员快速定位并恢复被错误删除或修改的数据。另外,该能力还可以有效支撑历史问题追溯及合规性审计等场景。