当前位置: 首页 > 科技观察

还记得MySQL取用户数据的过程吗

时间:2023-03-21 19:00:13 科技观察

事情的经过有一天,我们公司外区的一个销售C说找不到8月3日前的工作流记录。问起原因,原来是微信账号更新了(我们公司的工作流是基于企业微信开发的)。经分析,微信账号与流程数据无关,初步得出结论:本来只需要更新微信账号,但我们公司的流程系统管理员先删除了用户,然后又新建了一个用户.解决方案1.我首先想到的是直接从定时备份数据中找回原来的用户ID。原来系统只备份了十天的记录,工作流系统显示销售C只有8月3日以后的流程记录。40多天了,自动备份的数据无法恢复。2、因此只能从数据库中的二进制记录来分析。进入存放MySQL数据的目录:3、通过分析文件修改时间,可知删除操作记录在mysql-bin.000014文件中。4、因为日志文件是二进制的,所以日志导出为sql文件:mysqlbinlog--no-defaultsmysql-bin.000014>workflow_operator.sql5。日志记录比较大,导出后有132M。压缩打包后的文件,下载到本地。只有15.2Mtar-czvfworkflow_operator.tar.gzworkflow_operator.sql6。在本地使用文本工具找到所有删除用户的操作:***在127766行找到删除salesC的动作(虽然日志行很多,但是删除用户的动作比较少,所以很容易troubleshoot)7.找到用户ID。幸运的是,因为只删除了用户,没有删除流程数据(因为流程数据要归档),所以只有salesC的旧流程数据user_id可以换成新的user_id。有很多进程表。通过手工,找出旧ID的表,然后用update语句一起更新,最后取回所有数据:(***四位由于涉及隐秘,使用XXX代替)updateflow_fr_borrowsetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_fr_costsetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_fr_fixedassetsetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_fr_house_leasesetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_fr_purchasessetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_fr_travelsetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_hr_positivesetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_pr_equip_borrow_salesetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_pr_equip_returnsetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_sa_tepesetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_sa_saforesetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_sa_authorizesetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_sa_businesssetuser_id='e76cb8bccaf74f32b94d17f74437xxxx'whereuser_id='66adfd032ccf428d9e20e864f729xxxx';updateflow_hr_trialsetsel_user_id='e76cb8bccaf74f32b94d17f74437xxxx'wheresel_user_id='66adfd032ccf428d9e20e864f729xxxx';updatewf_hist_ordersetcreator='e76cb8bccaf74f32b94d17f74437xxxx'wherecreator='66adfd032ccf428d9e20e864f729xxxx';updatewf_hist_tasksetoperator='e76cb8bccaf74f32b94d17f74437xxxx'whereoperator='66adfd032ccf428d9e20e864f729xxxx';updatewf_ordersetcreator='e76cb8bccaf74f32b94d17f74437xxxx'wherecreator='66adfd032ccf428d9e20e864f729xxxx';updatewf_hist_task_actorsetactor_Id='e76cb8bccaf74f32b94d17f74437xxxx'whereactor_Id='66adfd032ccf428d9e20e864f729xxxx';销售C说他很高兴,邀请我去贵州拜访他