"Es gibt keine Datenbank ausgewählt" oder "Tabelle" db.table 'existiert nicht "Misserfolge in PT-Upgrade-Lauf, wo Abfragen von mehreren DBS mit TCPDump gesammelt wurden

dba.stackexchange https://dba.stackexchange.com/questions/103198

  •  26-09-2020
  •  | 
  •  

Frage

Ich habe Anfragen auf unserem Master mit dem folgenden TCPDUMP-Befehl gesammelt:

generasacodicetagpre.

Die Abfragen werden von mehreren Datenbanken ausgeführt.

Ich habe diese Datei mit dem folgenden Befehl über PT-Query-Digest durchführen:

generasacodicetagpre.

Dann rannte ich PT-Upgrade gegen zwei Sklaven wie folgt:

generasacodicetagpre.

Aber ich habe jedoch eine Reihe von Misserfolgen, da es nicht anscheint, welche Datenbank die Abfrage ausgeführt werden soll.

Wie soll man PT-Upgrade verwenden, wenn Abfragen unter mehreren DBS gesammelt werden? AFAITT Dies ist in der Dokumentation überall nicht angegeben.

Sollen Sie - filter mit PT-Query-Digest verwenden, um nur Abfragen für eine bestimmte Datenbank auszugeben, und geben Sie dann --Database mit PT-Upgrade an? Spülen und wiederholen Sie pro Datenbank.

Es dauert mehrere Stunden, um meine gigantische TCPDump-Erfassung zu analysieren, sodass alle Anleitungen hier geschätzt werden.

danke!

p.s.

Ich habe diese verwendet Artikel als Ausgangspunkt, aber es ist veraltet. z.B. PT-Query-Digest hat keine Option -Druck-Option mehr.

War es hilfreich?

Lösung

  • funktioniert es immer noch nicht, wenn Sie --sample?

  • (aus dem Handbuch)

Beachten Sie auch, dass PT-Query-Digest die Datenbank möglicherweise nicht melden kann Abfragen beim Analysieren von TCPDump-Ausgang.Die Datenbank wird nur entdeckt Bei den anfänglichen Connect-Events für einen neuen Client oder wann ist hingerichtet.Wenn der TCPDump-Ausgang keiner von diesen enthält, dann PT-Query-Digest kann die Datenbank nicht entdecken.

  • Überlegen Sie das allgemeine Protokoll anstelle von TCPDump?

Andere Tipps

Ich habe ein ähnliches Problem. Ich habe auch Tische und fehlende Anwendungsstatmente. Manchmal ist die Nutzungsanweisung vorhanden, jedoch mit der falschen Datenbank. Ich benutze eine ganz einfache Problemumgehung.

(Prelude) Meine erste Ausgabe: Mein Slow.log ist 60go lang, so

    .
  1. Ich teile es mit Split mit der Option -l auf 20 Millionen eingestellt (das mir ungefähr 1go pro Datei gibt) Vergewissern Sie sich, dass Sie keine Anweisungen haben, die sich zwischen Dateien befinden, die sie mit

    bearbeiten.

    kopf -Numberflines ab >> aa zum Beispiel

  2. Finden Sie die Aussage, die das Wurzel Ihres Problems ist (mit weniger offen, mit dem Sie nicht mit vi) haben möchten,

  3. sed es mit

    sed -e '/nameofscriptinyourfilewhichisinthefirstline.php/ ,+'

  4. mit n die Anzahl der Zeilen, die Sie zum Bearbeiten benötigen. (Aus meiner Sicht muss der Entwickler diese Informationen zu Debugging-Zwecken setzen, und es ist sowieso Teil unseres historischen Rahmens).

    1. Kommunizieren Sie das Problem dem Entwickler und führen Sie Ihren bearbeiteten Slowlog erneut aus.

    2. Wiederholen Sie die Schritte 2 bis 4, bis Sie nicht mehr von diesen Fehlern finden. Sie können Ihre Liste der SED durch diese Art von Befehl ausführen

      sed -e '...' | sed -e '...' | sed - '...'> korrekt_aa

    3. Fiant-Ausgabe: Ich habe festgestellt, dass die Anfragen mit ähnlicher Weise und "%" auch ein Schmerz sind, weil der Parser sie nicht verstehen kann. (Immer noch nach einer Lösung suchen).

      Wenn dies helfen kann, bin ich froh. Es ist nicht sauber, es ist lang, aber es erlaubt mir, alle Anfragen zu finden, die nicht zu unserem Rahmen passen, obwohl sie es irgendwie an den Prete gemacht haben. Und da wir in unseren MySQL-Versionen sehr spät sind, ist es mir eine Freude, sie schließlich für mich zu arbeiten. ;)

      p.s. : Das ist mein erster Beitrag.

Was wir endeten, ist das Grepping von Abfragen aus dem Slow.Log basierend auf Tabellennamen in databrechnungsspezifischen (rohen) Protokolldateien.Dann haben wir - Type RawlaG und --Database mit PT-Upgrade festgelegt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top