事情經過
有天,我們公司外區的一個銷售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表示很開心,并邀請我去貴州玩的話找他
?
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END