Kurz und gut - Episode #11 Ich behalte das mal im Auge!
Ich werde in Seminaren, Workshops oder in Kundenprojekten in Sachen MySQL immer mal wieder mit Dingen konfrontiert, auf die ich ad hoc keine Antwort habe bzw. mit denen ich noch keine Erfahrung gesammelt habe.
Das Problem
Auch das heutige Problem entstand im Rahmen einer Übung. Die Teilnehmer:innen sollten eine langlaufende Session/Statement über die Prozessliste im Auge behalten. Hier ein äquivalentes Beispiel:
MySQL localhost:33060+ ssl SQL > select user, host, state from information_schema.processlist; +-----------------+-----------------+------------------------+ | user | host | state | +-----------------+-----------------+------------------------+ | root | localhost:56946 | executing | | event_scheduler | localhost | Waiting on empty queue | +-----------------+-----------------+------------------------+ 2 rows in set (0.0171 sec)
Dieses Kommando wurde im Rahmen des Beobachtungszeitraumes X-mal ausgeführt. Eine Teilnehmerin fragte, wie man dies mit einem Skript (z. B. Shell) schnell lösende könnte.
Die Lösung
Natürlich würde dies auch über die Shell funktionieren, jedoch brauchen wir diese nicht dafür. Die Watch-Funktion der neuen MySQL-Shell bietet die gleiche Funktionalität, ohne dass wir unseren Client verlassen müssen.
Mit weniges „Keywords“ lassen sich Queries in der MySQL Shell einfach überwachen. Zusätzlich kann auch noch der Schalter „—vertical“ genutzt werden, welcher sehr breite Ausgaben um 90° dreht.
MySQL localhost:33060+ ssl SQL > \watch query --interval=0.5 select user, host from information_schema.processlist;
Fazit
Die MySQL-Shell bietet viele kleine (und große) nützliche Ergänzungen zum klassischen MySQL-Client. Das Schreiben, eines zugegebenermaßen sehr kurzen Shell-Skriptes, war in diesem Fall so nicht notwendig.
Seminarempfehlung
MYSQL ADMINISTRATION DB-MY-01
Zum SeminarPrincipal Consultant bei ORDIX
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare