무슨 일이 일어났나요
어느 날, 우리 회사 외부 지역의 영업 C씨가 8월 3일 이전에 작업 흐름 기록을 찾을 수 없다고 했습니다. 이유를 물어보니 위챗이 업데이트된 것으로 드러났습니다(저희 회사의 워크플로우는 Enterprise WeChat을 기반으로 개발되었습니다). 분석 결과 WeChat ID가 프로세스 데이터와 아무런 관련이 없음을 확인하여 예비 결론에 도달했습니다. 원래는 WeChat ID만 업데이트하면 되었지만 결과적으로 회사의 프로세스 시스템 관리자가 해당 사용자를 먼저 삭제한 후 생성했습니다. 새로운 사용자.
해결 과정
1. 가장 먼저 생각한 것은 예약된 백업 데이터에서 원래 사용자 ID를 직접 검색하는 것이었습니다. 시스템이 10일 동안의 기록만 백업했다는 것이 밝혀졌고, 워크플로 시스템에서는 다음과 같이 나타났습니다. 판매 C는 8월 3일만 해당 번호 이후의 처리 기록은 40일 이상 경과되어 자동 백업 데이터에서 복원할 수 없습니다.
2. 따라서 데이터베이스의 바이너리 레코드에서만 분석할 수 있습니다. MySQL 데이터가 저장된 디렉토리를 입력하세요:
3. 파일 수정 시간을 분석하여 삭제 작업이 mysql-bin.000014 파일에 기록되어 있음을 알아냈습니다.
4. 로그 파일이 바이너리이기 때문에 로그는
mysqlbinlog --no-defaults mysql-bin.000014 > workflow_operator.sql
5.로 내보낸 후 로그 기록이 비교적 큽니다. 15.2M
tar -czvf workflow_operator.tar.gz workflow_operator.sql
6입니다. 로컬에서 텍스트 도구를 사용하여 사용자 삭제 작업을 모두 찾습니다.
Sales C를 삭제하는 마지막 작업은 127766행에 있습니다(로그 레코드 수가 비교적 많지만 사용자 삭제 작업이 상대적으로 적어 문제 해결이 쉽습니다)
7. 다행히 사용자만 삭제되었기 때문에 프로세스 데이터는 삭제되지 않았습니다. 보관되어 있으므로 기존 프로세스 데이터 user_id를 판매 C의 새 user_id로 교체하면 됩니다. 수작업을 통해 기존 ID의 테이블을 찾은 다음 업데이트 문을 사용하여 함께 업데이트했습니다. .드디어 모든 데이터를 검색했습니다.
(개인 정보 보호 문제로 마지막 네 자리는 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';
Sales C가 매우 기뻐하며 Guizhou에 가면 방문하도록 초대했습니다
위 내용은 사용자 데이터를 검색하는 MySQL의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!