2016-07-06 9 views
0

So habe ich ein Binär-Protokoll, das dauert ewig zu wiederherzustellen wegen etwas schlecht geschriebenen Code, der eine Tabelle aktualisiert jede Sekunde oder so für jeden Benutzer, der gerade angemeldet ist. Natürlich die Wiederherstellung Der Prozess stellt jede einzelne dieser Zeilen wieder her und lässt das Skript länger als nötig dauern.So entfernen Sie bestimmte Abfrage von MySQL Binary Log

Was wäre der schnellste Weg, diese Datei zu aktualisieren, um diese spezifische Abfrage aus allen binären Protokollen zu entfernen? Ich habe dieses PHP-Skript, das ich getestet habe und es funktionierte an einer kleineren Datei, aber preg_replace schien einige Grenzen (oder vielleicht nur PHP als Ganzes) zu haben, wenn es um die Dateigröße ging.

Hier ist meine PHP Linie:

file_put_contents("/logs/restore.sql",preg_replace("/use(?:.|\n)+?update `notifi(?:.|\n)+?COMMIT\/\*\!\*\/;/mui",'',file_get_contents("/logs/restorex.sql"))); 

Die Regex dort schienen mit der kleineren Datei groß zu arbeiten, es ist nur, dass ich mit allen möglichen anderen Sprachen nicht so gut bin (PHP ist meine Hauptsprache) um zu wissen, was ich verwenden soll oder wie ich Regex in etwas anderes umsetzen soll.

+0

** grep ** wäre schneller - zeigen Sie mit der Markierung _-v_ an, dass Sie nur die Zeilen ohne den von Ihnen identifizierten Inhalt behalten möchten. – user2182349

+0

Glaubst du, du könntest mir dabei helfen? Ich bin eine Art Bash Noob und ich bin mir nicht sicher, wo ich mit den Beispielen anfangen soll, die ich finden kann. –

+0

Könnten Sie ein winziges bisschen Testdaten posten? Vielleicht zwei Zeilen, die du nicht abgleichen willst und eine, die sollte? – user2182349

Antwort

1

Wenn Sie bereit sind, alle Daten in dieser Tabelle wegzuwerfen

ALTER TABLE notifications ENGINE=BLACKHOLE; 

Dann würde zip die Abfragen durch, weil sie nichts tun würde.

+0

Das ist unglaublich, ich habe nicht einmal gedacht, dass so etwas existieren würde. Ich werde das auf jeden Fall notieren, wenn ich das nächste Mal aus binlogs wiederherstellen muss –

Verwandte Themen