Heim  >  Artikel  >  Datenbank  >  MySQL-Fall beim Abrufen von Benutzerdaten

MySQL-Fall beim Abrufen von Benutzerdaten

一个新手
一个新手Original
2017-10-13 10:40:001197Durchsuche

Was ist passiert

Eines Tages sagte ein Vertriebs-C aus einem externen Bereich unseres Unternehmens, dass er die Workflow-Datensätze nicht vor dem 3. August finden konnte. Auf die Frage nach dem Grund stellte sich heraus, dass WeChat aktualisiert wurde (der Workflow unseres Unternehmens basiert auf Enterprise WeChat). Nach der Analyse stellten wir fest, dass die WeChat-ID nichts mit Prozessdaten zu tun hat, und kamen daher zu dem vorläufigen Schluss: Ursprünglich mussten wir nur die WeChat-ID aktualisieren, aber als Ergebnis löschte der Prozesssystemadministrator unseres Unternehmens den Benutzer zuerst und erstellte ihn dann ein neuer Benutzer.

Lösungsprozess

1. Das erste, was mir in den Sinn kommt, ist, die ursprüngliche Benutzer-ID direkt aus den geplanten Sicherungsdaten abzurufen Das System wurde nur für zehn Tage gesichert, aber das Workflow-System zeigt, dass Sales C erst nach dem 3. August über Prozessdatensätze verfügt. Seitdem sind mehr als 40 Tage vergangen und eine Wiederherstellung ist nicht mehr möglich Sicherungsdaten.

2. Daher kann es nur anhand der Binärdatensätze in der Datenbank analysiert werden. Geben Sie das Verzeichnis ein, in dem MySQL-Daten gespeichert sind:

 

3. Durch die Analyse der Dateiänderungszeit haben wir erfahren, dass der Löschvorgang in der Datei mysql-bin.000014 aufgezeichnet wird.

4. Da die Protokolldatei binär ist, wird das Protokoll als SQL-Datei exportiert:

mysqlbinlog --no-defaults mysql-bin.000014 > workflow_operator.sql

5. Der Protokolldatensatz ist nach dem Exportieren relativ groß Datei und laden Sie sie lokal herunter. , nur 15,2 Mio.

  tar -czvf workflow_operator.tar.gz workflow_operator.sql

6. Verwenden Sie das Texttool lokal, um alle Vorgänge zum Löschen von Benutzern zu finden:

Die letzte Aktion zum Löschen von Sales C befindet sich unter Zeile 127766 (obwohl die Protokolldatensatzzeile relativ groß ist, sind die Aktionen zum Löschen von Benutzern relativ gering, sodass die Fehlerbehebung einfach ist)

 

7 Glücklicherweise wurde nur der Benutzer gelöscht, nicht die Prozessdaten (da Prozessdaten archiviert werden müssen), also ersetzen Sie einfach die alte Prozessdaten-Benutzer-ID von sales C. Es gibt viele Tabellen verarbeiten. Suchen Sie durch manuelle Arbeit die Tabelle mit der alten ID und verwenden Sie dann die Aktualisierungsanweisung, um sie gemeinsam zu aktualisieren und schließlich alle Daten abzurufen:

(Aus Datenschutzgründen werden die letzten vier Ziffern durch XXX ersetzt Bedenken)


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'

Das obige ist der detaillierte Inhalt vonMySQL-Fall beim Abrufen von Benutzerdaten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Über MySQL-TransaktionenNächster Artikel:Über MySQL-Transaktionen