MySQL找到用戶數(shù)據(jù)的案例詳細(xì)說明
發(fā)表時(shí)間:2023-07-19 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]事情經(jīng)過有天,我們公司外區(qū)的一個(gè)銷售C說他8月3號(hào)以前的工作流記錄找不到了。問清緣由,原來是更新了微信號(hào)(我們公司的工作流是基于企業(yè)微信開發(fā)的)。經(jīng)過分析,微信號(hào)和流程數(shù)據(jù)并沒什么關(guān)系,所以初步得出...
事情經(jīng)過有天,我們公司外區(qū)的一個(gè)銷售C說他8月3號(hào)以前的工作流記錄找不到了。問清緣由,原來是更新了微信號(hào)(我們公司的工作流是基于企業(yè)微信開發(fā)的)。經(jīng)過分析,微信號(hào)和流程數(shù)據(jù)并沒什么關(guān)系,所以初步得出結(jié)論:本來只需要更新微信號(hào)的,結(jié)果我們公司的流程系統(tǒng)管理員把用戶先刪除,再創(chuàng)建了新的用戶。
解決過程
1、首先想到的是直接從定時(shí)備份數(shù)據(jù)里面找回原來的用戶ID,結(jié)果發(fā)現(xiàn)系統(tǒng)只備份了十天的記錄,而工作流系統(tǒng)上顯示銷售C只有8月3號(hào)以后的流程記錄,距今已經(jīng)40多天,從自動(dòng)備份的數(shù)據(jù)里已經(jīng)無法恢復(fù)。
2、所以,只能從數(shù)據(jù)庫(kù)的二進(jìn)制記錄里分析了。進(jìn)入MySQL數(shù)據(jù)存放的目錄:
3、通過分析文件修改時(shí)間,得知?jiǎng)h除操作的動(dòng)作在mysql-bin.000014文件里面記錄。
4、因?yàn)槿罩疚募嵌M(jìn)制的,所以導(dǎo)出日志為sql文件:
mysqlbinlog --no-defaults mysql-bin.000014 > workflow_operator.sql
5、日志記錄比較大,導(dǎo)出后有132M,壓縮打包文件并下載到本地,只有15.2M
tar -czvf workflow_operator.tar.gz workflow_operator.sql
6、在本地使用文本工具,查找所有的刪除用戶的操作:
最后定位刪除銷售C的動(dòng)作在127766行(雖然日志記錄行數(shù)比較多,但是刪除用戶的動(dòng)作比較少,所以好排查)
7、用戶ID找到了,所幸的是,因?yàn)橹粍h除了用戶,沒有刪除流程數(shù)據(jù)(因?yàn)榱鞒虜?shù)據(jù)是要存檔的),所以只要把銷售C的舊流程數(shù)據(jù)user_id換成新的user_id就可以了,流程表比較多,通過體力勞動(dòng),找出有舊ID的表,然后再使用update語(yǔ)句一起更新,終于找回了所有數(shù)據(jù):
。ㄗ詈笏奈挥捎谏婕半[私,使用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表示很開心,并邀請(qǐng)我去貴州玩的話找他
以上就是MySQL找回用戶數(shù)據(jù)的實(shí)例詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。