有天,我们公司外区的一个贩卖C说他8月3号之前的工作流纪录找不到了。问清启事,本来是更新了微信号(我们公司的工作流是基于企业微信开辟的)。经由剖析,微信号和流程数据并没什么关系,所以开端得出结论:原本只需要更新微信号的,效果我们公司的流程体系管理员把用户先删除,再创建了新的用户。
处理历程
1、起首想到的是直接从定时备份数据内里找回本来的用户ID,效果发明体系只备份了十天的纪录,而工作流体系上显现贩卖C只要8月3号今后的流程纪录,距今已40多天,从自动备份的数据里已没法恢复。
2、所以,只能从数据库的二进制纪录里剖析了。进入MySQL数据寄存的目次:
3、经由过程剖析文件修正时候,得知删除操纵的行动在mysql-bin.000014文件内里纪录。
4、因为日记文件是二进制的,所以导出日记为sql文件:
mysqlbinlog --no-defaults mysql-bin.000014 > workflow_operator.sql
5、日记纪录比较大,导出后有132M,紧缩打包文件并下载到当地,只要15.2M
tar -czvf workflow_operator.tar.gz workflow_operator.sql
6、在当地运用文本东西,查找一切的删除用户的操纵:
末了定位删除贩卖C的行动在127766行(虽然日记纪录行数比较多,然则删除用户的行动比较少,所以好排查)
7、用户ID找到了,所幸的是,因为只删除了用户,没有删除流程数据(因为流程数据是要存档的),所以只要把贩卖C的旧流程数据user_id换成新的user_id就能够了,流程表比较多,经由过程体力劳动,找出有旧ID的表,然后再运用update语句一同更新,终究找回了一切数据:
(末了四位因为触及隐私,运用XXX替代)
update flow_fr_borrow set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_fr_cost set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_fr_fixedasset set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_fr_house_lease set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_fr_purchase set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_fr_travel set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_hr_positive set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_pr_equip_borrow_sale set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_pr_equip_return set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_sa_tepe set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_sa_safore set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_sa_authorize set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_sa_business set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx'; update flow_hr_trial set sel_user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where sel_user_id = '66adfd032ccf428d9e20e864f729xxxx' ; update wf_hist_order set creator = 'e76cb8bccaf74f32b94d17f74437xxxx' where creator = '66adfd032ccf428d9e20e864f729xxxx'; update wf_hist_task set operator = 'e76cb8bccaf74f32b94d17f74437xxxx' where operator = '66adfd032ccf428d9e20e864f729xxxx'; update wf_order set creator = 'e76cb8bccaf74f32b94d17f74437xxxx' where creator = '66adfd032ccf428d9e20e864f729xxxx'; update wf_hist_task_actor set actor_Id = 'e76cb8bccaf74f32b94d17f74437xxxx' where actor_Id = '66adfd032ccf428d9e20e864f729xxxx';
贩卖C示意很高兴,并邀请我去贵州玩的话找他
以上就是MySQL找回用户数据的实例详解的细致内容,更多请关注ki4网别的相干文章!