Einträge mit dem Tag: [mysql]

Montag Mrz 04, 2013

Shard-Query fuer MySQL

Shard-Query ist eine verteilte, parallele Queryengine für MySQL. Diese Engine wurde designed, um so viel Arbeit wie möglich zu parallelisieren. Dadurch können z.B. SQL-Anfragen mit BETWEEN in der WHERE-Klausel oder Aggregats-Funktionen im Allgemeinen erheblich beschleunigt werden, wenn die Sache entsprechend designed ist.


Donnerstag Dez 20, 2012

MySQL und DevOps

Slides und Webinar zum Thema "Manage MySQL like a Devops Sysadmin".


Montag Okt 22, 2012

Langsame MySQL Queries ausfindig machen

Anstatt eines der MySQL Logs (slowquery.log im Speziellen) zu verwenden, um die langsamen Queries heraus zufinden, kann man das Ganze weit weniger invasiv (in Form von CPU und I/O) und genauer gestalten. Man benötigt dafür tcpdump und das Percona Toolkit

Als Erstes schneiden wir mit tcpdump mal den Netzverkehr mit, der auf dem Standard MySQL Port 3306 läuft (mal angenommen tcpdump läuft auf dem Rechner, auf dem die MySQL auch ist):

tcpdump -s 65535 -x -nn -q -tttt -i any -c 9999999 port 3306 | gzip -c > /tmp/tcpdump.txt.gz

Das kann man dann solange laufen lassen, wie man will. I.d.R. dürften aber 10 bis max. 30 Min. vollkommen ausreichen. Hängt natürlich auch etwas davon ab, wieviel auf der DB so an Queries/Sek. rein gehen. 

Dann können wir das Ganze auswerten:

gunzip -c /tmp/tcpdump.txt.gz | /pfad/zu/pt-query-digest --type tcpdump > /tmp/digest.txt

Zu pt-query-digest gibt es unzählige Optionen. Da muss man mal die Doku durchblättern. pg-query-digest kann nebei auch noch PostgreSQL und memcached Queries auswerten. Sehr praktische Sache... :-) 

Alternativ finde ich das kommerzielle GUI-Tool Jetprofiler recht schön. Nicht ganz günstig, aber die Daten werden schön aufbereitet (nicht nur Queries, sondern noch viel mehr) und man hat alles im Überblick.


Mittwoch Okt 17, 2012

MySQL Index Design und Tipps / MySQL Upgrading

Auf der Percona Seite gibt es zwei sehr interesseante Slides / Webinars zum Thema MySQL (englisch):

Index-Design: Tools und Techniken
MySQL Indexing: Best Practices

Sehr interessant und einfach erklärt, wie man mit Indizes vernünftig in MySQL umgeht und verwaltet. Es werden z.B. div. Tools vorgestellt, mit denen man relativ einfach prüfen kann, ob ein Index überhaupt notwendig ist oder wie man raus findet, auf welche Spalten ein Index sinnvoll ist. Zu viele Indizes sind ja bekanntlich auch nix... ;-)

Dann noch ein weiteres Webinar mit Slides zum Thema MySQL Updates und welche Möglichkeiten es gibt, eine MySQL möglichst schnell und problemlos auf eine neue Minor- oder Major-Release zu heben.


Donnerstag Okt 04, 2012

Galera Cluster Nagios Plugin

Wer auf der Suche nach einem Nagios Plugin für den Galera Cluster für MySQL ist, wird hier fündig.


Dienstag Sep 04, 2012

Wir bauen uns ein Data Warehouse mit MySQL

Kleine, aber feine Präsentation zum Einstieg ins Thema Data Warehouse und hier im Speziellen mit MySQL von Oli Sennhauser auf slideshare.net.

mysqldump: Error 2013: Lost connection to MySQL server...

Falls einem mal der Fehler 2013 bei mysqldump

mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `...` at row: ...

über den Weg läuft, dem dürfte das Erhöhen zweier net_*_timeout Parameter weiterhelfen. Zum Einen in der my.conf:

net_read_timeout = 120
net_write_timeout = 900

Und wenn man das gleich aktiv haben will noch ohne Neustart:

set global net_read_timeout = 120;
set global net_write_timeout = 900;

Die Werte sind in Sekunden. Ich hatte das Problem, beim Sichern auf einen langsamen NFS-Mount. Die Meldung selber deutet eigentlich auf ein ganz anderes Problem hin und ist ziemlich irreführend. Nun ja, wenn da auf jeden Fall mehrere Backups liefen, wurde das teilweise arg langsam. Die Parameter schufen Abhilfe.


Montag Jul 23, 2012

Links 20120723 - iVDR, HTML5 Filesystem, Social Widgets, Adminer

iVDR - Ein kostenloses Remote Frontend für den VDR für's iPhone.
filer.js - Eine Wrapper Lib für das HTML5 Filesystem API, das es Web Apps ermöglicht, in ihrer eigenen Sandbox Dateien und Verzeichnisse zu schreiben und zu lesen.
Sharrre - Sharrre ist ein jQuery Plugin mit dem man div. Widgets für Google Plus - Facebook - Twitter - Digg - Delicious - StumbleUpon - Linkedin - Pinterest und Google Analytics erzeugen kann und das in einem einheitlichen Design.
Adminer - Eine interessante und schlankere Alternative zu phpMyAdmin. Zwar nicht ganz so umfangreich, aber für viele Fälle ausreichend. Einfach eine PHP-Datei ins DocRoot legen, Adminer aufrufen und Job erledigen, Datei wieder löschen. Funktioniert auch mit MySQL, PostgreSQL, SQLite, MS SQL und Oracle.


Mittwoch Jul 11, 2012

Links 20120711 - Percona Playback

Percona Playback - Mit Playback kann man Load auf die MySQL-Datenbank geben und reale Last simulieren. Das Programm liegt momentan noch in einer frühen Version vor.


Freitag Apr 20, 2012

Links 20120420 - MySQL Performance, Redis

Understanding MySQL Performance through Benchmarking - Die PalominoDB Jungs geben hier auf einen 180 Seiten Slide einen sehr guten Überblick, wie man einen MySQL Benchmark mit div. Tools durchführt und zeigen dabei viele Tools, die man für Performancemessung, Monitoring, usw. sehr gut gebrauchen kann. Viele mysqlslap Beispiele sind im Slide zu finden. 
mysqlslap - Load Emulation Client - Seit MySQL 5.1.4 ist mysqlslap an Bord, um Client Load auf der Datenbank simulieren zu können. Weitere MySQL Benchmark-Tools: sysbench, DBT2, tpcc-mysql
MySQL Performance Analysis with Percona Toolkit and TCP/IP Network Traffic - Baron Schwartz beschreibt in diesem Whitepaper, wie man sich mit Open Source Tools zwischen Client und DB schalten kann und div. interessante Performance-Informationen raus zieht.
Percona Toolkit - Sollte man auf jedem MySQL-Rechner haben. Sehr gute Sammlung von nützlichen Tools. u.a.:
pt-query-digest - Analyze query execution logs and generate a query report, filter, replay, or transform queries for MySQL, PostgreSQL, memcached, and more


Donnerstag Apr 12, 2012

MySQL 5.6 Replikationsneuerungen

Auf der MySQL-Developerseite MySQL 5.6 Replication - Enabling the Next Generation of Web & Cloud Services gibt es ein paar gute Infos, was MySQL seitens Replikation so bringen wird. U.a. Global Transaction IDs und Utilities für selbstheilende Replication Clusters. Zeit wird's... Dazu kommen dann ein paar neuen Utilities:

mysqlrplcheck utility: verifies configuration parameters to ensure fast and reliable deployment of replication.
mysqlreplicate utility: manages the provisioning of a new slave.
mysqlrplshow utility: auto-discovery of the replication topology.
mysqlrplfailover and mysqlrpladmin: manages failover and switchover from a master to a slave, and provides status monitoring of the replication topology.


Dienstag Apr 10, 2012

MySQL DB Sharding

Wer seine Daten auf mehrere Rechner und MySQL Instanzen verteilen/partitionieren (sharding) muss, der findet inzwischen eine ganze Reihe Optionen:

Scalebase
ScaleArc
dbShards
ParElastic

Und dann gäbe es noch so etwas wie shard-query und spider Storage Engine. Weiterhin gäbe es dann noch den MySQL Cluster als kommerzielles Produkt, Clustrix und SchoonerSQL mit dbShards Erweiterung.


Dienstag Apr 03, 2012

MySQL Multimaster Replikation - Percona XtraDB Cluster

Wem die MySQL Replikation schon immer etwas gegen den Strich gegangen ist, der hat vielleicht mit Galera von Codership mehr Glück. Das ist eine Open Source Multimaster Replikation für MySQL, d.h. es gibt nicht nur einen Master und x Slaves, wo man nur in den Master schreiben kann, sondern man kann in alle verfügbaren Nodes schreiben. Das sollte man aber vermutlich nicht auf die Spitze treiben und die Zuständigkeiten etwas trennen, damit nicht alle Nodes auf den gleichen Daten/Tabellen "rumhacken" ;-) 

Percona ist mit XtraDB schon lange auf dem Markt und hat einen guten Ruf. Nun kommt die Replikation auf Basis von Galera dazu. Beide Produkte sind als Open Source erhältlich und das gilt auch für Percona XtraDB Cluster. Support kann man über Percona einkaufen, was das Produkt für Firmen interessant macht. Damit sollte es jetzt also möglich sein, das alle Nodes zur gleichen Zeit den gleichen Stand der Daten haben und nicht kilometerweit hinterherlaufen.


Mittwoch Mrz 14, 2012

Links 20120314 - Percona XtraDB und XtraDB Cluster

Percona Server mit XtraDB Engine - Percona erweitert MySQL um einige interessante Funktionen wie z.B. detailiertere Performancewerte und um eine erweiterte InnoDB Engine namens XtraDB, die vor allem auf Rechnern mit vielen Kernen und flotten Platten wie SSDs oder Flash punktet.
Percona XtraDB Cluster - Vermutlich im Ende März 2012 wird die finale Version von XtraDB Cluster erscheinen - eine Multimaster MySQL soz. Im Grunde basiert die Multimaster Replikation auf Galera einer OpenSource Multimaster Lösung für MySQL. Durch die synchrone Replikation wird verhindert, das Master und Slave auseinander laufen. Ich bin eigentlich kein Fan von Multimaster, aber selbst wenn man das nur dafür einsetzen kann, das man einen aktuellen Slave hat, wenn der Master mal ausfällt, wäre das auch schon ganz praktisch und würde u.U. so manches HA-Setup vereinfachen. Und im Gegensatz zu SchoonerSQL ist das hier OpenSource. Support kann man über Percona einkaufen. Noch zwei Links zu dem Thema:
Percona XtraDB Cluster Feature 1: High Availability
Percona XtraDB Cluster Feature 2: Multi-Master replication
Percona XtraBackup - Wer zum großen Teil InnoDB einsetzt (am Besten ausschließlich), der bekommt mit XtraBackup ein sehr gutes Backup-Programm für MySQL (InnoDB). Wer's noch nicht kennt, ist auf jeden Fall einen Blick wert.


Montag Mrz 12, 2012

Links 20120313 - SchoonerSQL

SchoonerSQL - SchoonerSQL ist soz. ein Ersatz für MySQL+InnoDB. Beides hat Schooner von Oracle direkt lizensiert und um "synchrone" Replikation und automatischen Failover erweitert. D.h. da durch diese Art der Replikation alle Nodes immer die gleichen Daten haben, kann einer der "Slaves" im Fehlerfall des Masters sofort übernehmen. Das Ganze läuft automatisch ab. Dadurch bekommt man natürlich eine hohe Ausfallsicherheit hin. Was von dem Konzept an sich zu halten ist, muss jeder für sich entscheiden. Wem eine MySQL mit Redhat Cluster z.B. nicht zusagt, für den könnte das eine Lösung sein. Hier noch ein paar Links zu dem Thema:

Schooner Resources (White Paper, Case Studies, Entscheidungshilfen, usw.)
Schooner Product Documentation
Schooner Blog

Schooner bietet noch ein Produkt namens Membrain an, das ist soz. ein ausfallsicherer Memcached, z.B. zum Speichern von Sessioninformationen.