falsche Abfrage rückgängig machen

falsche Abfrage rückgängig machen

am 24.12.2005 01:30:23 von Werner Bauer

Habe grad einen netten Crash erlebt ... in einer von mir geschriebenen
Anwendung wurde durch versehentliche "Injektion" (es ist ein intranet mit
bekannten Usern, aber zugegeben, ich habs übersehen) alle Kundennummern
durch eine einzige ersetzt ...

etwa so:
update tab_bewegung set kunde_nr=4711 where kunde_nr='1' or 1 (1 or 1 hat
der user eingegeben ...)

Die Db wird täglich gesichert, ich hab also den Stand von gestern.
Die DB wird laufend auf einen anderen Rechner repliziert, aber der hat den
Unsinn glatt mitgemacht.

Aber die masterfiles sind "noch" da, ich wüsste aber nicht, wie ich den
richtigen Punkt zum aufsetzen und stoppen fände?

Über "die" geniale Idee würd' ich mich schon freuen, zumal Weihnachten ...
und am Sonntag solls wieder rennen!

W

Re: falsche Abfrage rückgängig machen

am 24.12.2005 01:32:28 von Werner Bauer

ich schrieb ...
> allerhand,

habe aber vergessen zu schreiben welche db: also: mysql 4.1 auf suse
9.irgendwas.

Re: falsche Abfrage rückgängig machen

am 24.12.2005 07:38:43 von Johannes Vogel

Hi Werner

Werner Bauer wrote:
> Habe grad einen netten Crash erlebt ... in einer von mir geschriebenen
> Anwendung wurde durch versehentliche "Injektion" (es ist ein intranet mit
> bekannten Usern, aber zugegeben, ich habs übersehen) alle Kundennummern
> durch eine einzige ersetzt ...

> Die Db wird täglich gesichert, ich hab also den Stand von gestern.
> Die DB wird laufend auf einen anderen Rechner repliziert, aber der hat den
> Unsinn glatt mitgemacht.
> Aber die masterfiles sind "noch" da, ich wüsste aber nicht, wie ich den
> richtigen Punkt zum aufsetzen und stoppen fände?
> Über "die" geniale Idee würd' ich mich schon freuen, zumal Weihnachten ...
> und am Sonntag solls wieder rennen!

Du könntest das Backup vom letzten Tag einspielen, dann mysqlbinlog mit
der Option --start-datetime= laufen lassen. Vorgängig würde
ich noch herausfinden, wann genau das ungünstige Statement ausgeführt
wurde und damit den Intervall mit --stop-datetime= begrenzen.
Alternativ könntest du natürlich auch mit --stop-position arbeiten.

> habe aber vergessen zu schreiben welche db: also: mysql 4.1 auf suse
> 9.irgendwas.

Für all das benötigst du MySQL 4.1.4. Ich hoffe für dich, dass du uns
die MySQL-Version also nur ungenau angegeben hast... :-)

Weitere Hilfe dazu:
http://dev.mysql.com/doc/refman/4.1/en/mysqlbinlog.html

HTH, Johannes

Re: falsche Abfrage rückgängig machen

am 24.12.2005 07:51:20 von Werner Bauer

"Johannes Vogel" schrieb
> Du könntest das Backup vom letzten Tag einspielen, dann mysqlbinlog mit
> der Option --start-datetime= laufen lassen ...

sieht so aus als wärst du das Weihnachtsgeschenk!!!

Re: falsche Abfrage rückgängig machen

am 24.12.2005 12:50:49 von Johannes Vogel

Hi Werner

Werner Bauer wrote:
> "Johannes Vogel" schrieb
>>Du könntest das Backup vom letzten Tag einspielen, dann mysqlbinlog mit
>>der Option --start-datetime= laufen lassen ...
> sieht so aus als wärst du das Weihnachtsgeschenk!!!

Gern geschehen. Aber das nächste Mal könntest du uns damit beschenken,
dass du die korrekte NG verwendest: d.c.d.mysql existiert. Wie du das
Problem in PHP löst, ist ja in diesem Thread egal.

Frohes Fest.
Johannes

Re: falsche Abfrage rückgängig machen

am 24.12.2005 15:18:23 von Werner Bauer

"Johannes Vogel" schrieb im Newsbeitrag
news:dojcmm$kp$1@news.hispeed.ch...
> Gern geschehen. Aber das nächste Mal könntest du uns damit beschenken,
> dass du die korrekte NG verwendest: d.c.d.mysql

ja eh. Aber bei dem Stress! Dort les' ich normal nicht mit ...