You are here
Feed aggregator
DOAG Conference 2011 - MySQL Community Abend
Hallo zusammen,
Einige von Euch haben sicher vor, an die DOAG Conference 2011 nach Nürnberg zu kommen, welche vom 15. bis 17. November statt findet.
Neben zahlreichen interessanten Vorträgen über MySQL soll auch das Gesellschaftliche nicht zu kurz kommen. Daher planen wir am Dienstag, 15. November einen MySQL Community Abend mit gemeinsamem Nachtessen in einer netten Lokalität in Nürnberg. Ca. 18:30 - 19:00
Ihr seid alle herzlich eingeladen, daran teilzunehmen (auch wenn Ihr es nicht auf die DOAG Conference 2011 schafft).
Wer kennt ein nettes Restaurant wo wir hin gehen könnten (ich wüsste noch ein peruanisches Restaurant (nein, es gibt KEINE Meerschweinchen zu essen!) unterhalb der Burg!)?
Wer kommen möchte, bitte asap bei uns melden (contact@fromdual.com), damit wir genügend Plätze reservieren können.
Wenn die Speaker das Event während Ihres Vortrags ebenfalls ankündigen würden, wäre das sehr nett! Und wenn Ihr noch alle Leute, welche ebenfalls Interesse daran haben, informieren würdet wäre das toll!
Liebe Grüsse,
Oli
MySQL Queries taggen
Früher, lange, lange ist's her, konnte man den folgenden Trick verwenden um MySQL Queries in der Applikation zu taggen:
SELECT /* My Application Tag */ * FROM test;Im Slow Query Log und im General Query Log ist das SQL Query dann wie folgt erschienen:
# Time: 111020 22:03:33 # User@Host: root[root] @ localhost [] Id: 1335 # Query_time: 17.873938 Lock_time: 0.007952 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319141013; SELECT /* My Application Tag */ * FROM test;und
111020 22:03:15 1335 Query SELECT /* My Application Tag */ * FROM testDas ist recht nützlich, wenn man nicht genau weiss woher ein Query stammt oder wie es von der Applikation schlussendlich ausformuliert wird.
Leider wurde dieses Feature irgendwann einmal von MySQL abgeschafft. Wann das genau geschehen ist, konnte ich nicht mehr herausfinden. Heute sehen die entsprechenden Einträge wie folgt aus:
# Time: 111020 22:03:33 # User@Host: root[root] @ localhost [] Id: 1335 # Query_time: 17.873938 Lock_time: 0.007952 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319141013; SELECT * FROM test;und
111020 22:03:15 1335 Query SELECT * FROM testBei unserem heutigen Kunden hatten wir wieder mal genau dieses Problem. Zum Glück hatte er eine glorreiche Idee. Aus:
SELECT * FROM test WHERE 1 = 1;machten wir kurzerhand:
SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';und siehe da:
# Time: 111020 22:24:59 # User@Host: root[root] @ localhost [] Id: 2077 # Query_time: 12.270074 Lock_time: 0.000124 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319142299; SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';und
2077 Query SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag'es funktioniert...
Ist zwar nicht ganz so sexy, aber recht nützlich...
Taxonomy upgrade extras: tagquerygeneral query logMySQL Queries taggen
Früher, lange, lange ist's her, konnte man den folgenden Trick verwenden um MySQL Queries in der Applikation zu taggen:
SELECT /* My Application Tag */ * FROM test;Im Slow Query Log und im General Query Log ist das SQL Query dann wie folgt erschienen:
# Time: 111020 22:03:33 # User@Host: root[root] @ localhost [] Id: 1335 # Query_time: 17.873938 Lock_time: 0.007952 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319141013; SELECT /* My Application Tag */ * FROM test;und
111020 22:03:15 1335 Query SELECT /* My Application Tag */ * FROM testDas ist recht nützlich, wenn man nicht genau weiss woher ein Query stammt oder wie es von der Applikation schlussendlich ausformuliert wird.
Leider wurde dieses Feature irgendwann einmal von MySQL abgeschafft. Wann das genau geschehen ist, konnte ich nicht mehr herausfinden. Heute sehen die entsprechenden Einträge wie folgt aus:
# Time: 111020 22:03:33 # User@Host: root[root] @ localhost [] Id: 1335 # Query_time: 17.873938 Lock_time: 0.007952 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319141013; SELECT * FROM test;und
111020 22:03:15 1335 Query SELECT * FROM testBei unserem heutigen Kunden hatten wir wieder mal genau dieses Problem. Zum Glück hatte er eine glorreiche Idee. Aus:
SELECT * FROM test WHERE 1 = 1;machten wir kurzerhand:
SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';und siehe da:
# Time: 111020 22:24:59 # User@Host: root[root] @ localhost [] Id: 2077 # Query_time: 12.270074 Lock_time: 0.000124 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319142299; SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';und
2077 Query SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag'es funktioniert...
Ist zwar nicht ganz so sexy, aber recht nützlich...
Taxonomy upgrade extras: tagquerygermanMySQL Queries taggen
Früher, lange, lange ist's her, konnte man den folgenden Trick verwenden um MySQL Queries in der Applikation zu taggen:
SELECT /* My Application Tag */ * FROM test;Im Slow Query Log und im General Query Log ist das SQL Query dann wie folgt erschienen:
# Time: 111020 22:03:33 # User@Host: root[root] @ localhost [] Id: 1335 # Query_time: 17.873938 Lock_time: 0.007952 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319141013; SELECT /* My Application Tag */ * FROM test;und
111020 22:03:15 1335 Query SELECT /* My Application Tag */ * FROM testDas ist recht nützlich, wenn man nicht genau weiss woher ein Query stammt oder wie es von der Applikation schlussendlich ausformuliert wird.
Leider wurde dieses Feature irgendwann einmal von MySQL abgeschafft. Wann das genau geschehen ist, konnte ich nicht mehr herausfinden. Heute sehen die entsprechenden Einträge wie folgt aus:
# Time: 111020 22:03:33 # User@Host: root[root] @ localhost [] Id: 1335 # Query_time: 17.873938 Lock_time: 0.007952 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319141013; SELECT * FROM test;und
111020 22:03:15 1335 Query SELECT * FROM testBei unserem heutigen Kunden hatten wir wieder mal genau dieses Problem. Zum Glück hatte er eine glorreiche Idee. Aus:
SELECT * FROM test WHERE 1 = 1;machten wir kurzerhand:
SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';und siehe da:
# Time: 111020 22:24:59 # User@Host: root[root] @ localhost [] Id: 2077 # Query_time: 12.270074 Lock_time: 0.000124 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319142299; SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';und
2077 Query SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag'es funktioniert...
Ist zwar nicht ganz so sexy, aber recht nützlich...
Automatitisiertes Starten und Stoppen der Canias ERP Applikation
Beim Betrieb der Canias ERP Applikation stösst man unweigerlich früher oder später auf das lästige Verhalten, dass eine Konsole mit der Canias RMI Registry Applikation offen gehalten werden muss.
Eine offene Konsole kann dazu führen, dass aus Versehen die Applikation gestoppt wird und somit die ganze Produktion, welche am ERP hängt, still steht.
Ein weiteres Problem besteht darin, dass der Canias Server mit seinen Komponenten (RMI-Registry, Lizenz- und Applikations-Server) nicht als Dienst gestartet werden kann.
Das hat zur Folge, dass keine Standard Monitoring Lösung für die Canias-Überwachung genutzt werden kann.
Um dieses Problem zu umgehen haben wir für die Canias ERP Applikation ein start/stop Skript unter CentOS gebaut, welches alle Canias Komponenten steuert. Dieses Skript sollte mit minimalen Änderungen auch auf anderen Linux Distributionen lauffähig sein.
Mit diesem Skript lässt sich nun die Canias RMI-Registry, der Canias Controler sowie der Canias Server automatisiert beim Systemstart über den init-Prozess starten und wieder stoppen ohne, dass eine lästige Konsole offen bleiben muss.
Somit kann eine hohe Verfügbarkeit der Canias Applikation beim System-Neustart gewährleistet werden.
Zudem lässt sich dieses Skript als Ressource in einen aktiv/passiv Failover Cluster mit einbauen und im Fehlerfall automatisch mit auf den anderen Node rüberschwenken, wo die ERP Applikation innert weniger Minuten wieder zur Verfügung steht.
Wir konnten trotzt ausführlicher Tests keine Probleme mit dieser Konfiguration feststellen und wundern uns daher, dass dieses Verfahren nicht bereits durch den Hersteller Canias eingesetzt wird.
Durch leichtes Abändern des Skripts kann sogar ein Icon auf dem Desktop angelegt werden, welches durch Klicken den ganzen Canias Stack neu startet.
Bei Fragen zur Installation oder zum Betrieb von Canias ERP sowie des zugrunde liegenden MySQL Datenbank helfen wir gerne weiter.
#!/bin/sh # # /etc/init.d/canias {start|stop|reload|restart|status} # # canias: Start and Stop Canias ERP System # # chkconfig: is manged by Cluster suite # # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 1 fi appdir="/canias/iasAppServer" logdir="$appdir/Log" start() { echo -n "Starting Canias RMI Registry: " runuser -l canias -c "cd $appdir && nohup /usr/lib/jvm/jre-1.6.0/bin/java -jar serverUtils.jar \ start_ias_rmi_registry debug 1>$logdir/start_rmi_registry.log 2>&1 &" echo sleep 2 echo -n "Starting Canias Controller: " export DISPLAY=$(hostname):1 runuser -l canias -c "cd $appdir && nohup /canias/java/j2re1.4.2_18/bin/java -classpath controller.jar \ -Djava.security.policy=canias.policy -Djava.library.path=. com.ias.starter.iasControllerStarter /Port:USB \ 1>$logdir/start_controller.log 2>&1 &" echo sleep 2 echo -n "Starting Canias Server: " export DISPLAY=$(hostname):1 runuser -l canias -c "cd $appdir && nohup /usr/lib/jvm/jre-1.6.0/bin/java -Xmx4g \ -Djava.security.policy=canias.policy -cp server.jar:./RESOURCES/lib/activation.jar:./RESOURCES/lib/axis.jar:\ ./RESOURCES/lib/commons-discovery.jar:./RESOURCES/lib/commons-fileupload-1.1.1.jar:./RESOURCES/lib/commons-io-1.2.jar:\ ./RESOURCES/lib/commons-logging.jar:./RESOURCES/lib/FontBox-0.1.0-dev.jar:./RESOURCES/lib/iascommapi.jar:\ ./RESOURCES/lib/itext-paulo-155.jar:./RESOURCES/lib/jai_codec.jar:./RESOURCES/lib/jai_core.jar:\ ./RESOURCES/lib/jaxrpc.jar:./RESOURCES/lib/jcchart451K.jar:./RESOURCES/lib/jcert.jar:./RESOURCES/lib/jcfield451K.jar:\ ./RESOURCES/lib/jctable451K.jar:./RESOURCES/lib/jdbc2_0-stdext.jar:./RESOURCES/lib/jnet.jar:./RESOURCES/lib/jradius-client.jar:\ ./RESOURCES/lib/jsse.jar:./RESOURCES/lib/mail_v1.4.jar:./RESOURCES/lib/mlibwrapper_jai.jar:./RESOURCES/lib/NSClient_comp_1.4.jar:\ ./RESOURCES/lib/PDFBox-0.7.3-dev-20060516.jar:./RESOURCES/lib/RetepPDF.jar:./RESOURCES/lib/saaj.jar:./RESOURCES/lib/servlet.jar:\ ./RESOURCES/lib/smlib.jar:./RESOURCES/lib/soap.jar:./RESOURCES/lib/uddi4j.jar:./RESOURCES/lib/wsdl4j.jar:\ ./RESOURCES/lib/xerces.jar:./RESOURCES/lib/xml4j.jar:./RESOURCES/lib/JDBCDrivers com.ias.starter.iasServerStarter \ /settings:ServerSettings.ias 1>$logdir/start_server.log 2>&1 &" echo } stop() { echo -n "Shutting down all Canias related Java processes: " # kill processes in reverse order plist=$(pgrep -u canias java | sort -n -r) for i in $plist ; do kill $i done echo } status() { cnt=$(pgrep -u canias java | wc -l) if [[ $cnt -gt 0 ]] ; then echo "$cnt java processes for user canias are running..." exit 0 else echo "Canias seems to be stopped" exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart|reload) stop sleep 5 start ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac # Always return 0 because we do not want to have a cluster starting # failure just because of Canias! exit 0 Über acar software GmbHAcar software GmbH ist ein IT-Systemhaus, welches sich im ERP Bereich spezialisiert und weitreichendes Know-How in komplexen Geschäftsprozessen angeeignet hat.
Wir sorgen dafür, dass der Kunde seine komplexen Prozesse mit unserer Software transparent und leicht abwickeln kann, ohne einen grossen Overhead zu erzeugen.
Mehr Infos zur acar software GmbH finden Sie unter: www.acarsoftware.de
FromDual GmbH ist ein Hersteller unabhängiges und neutrales Beratungs- und Dienstleistungs-Unternehmen für MySQL, Percona Server und MariaDB.
Wir unterstützen unsere Kunden bei der Wartung und dem Betrieb von MySQL Datenbanken. Zudem machen wir auch MySQL Performance Tuning und helfen unseren Kunden MySQL Hochverfügbarkeits-Lösung zu implementieren, für welche wir auf Wunsch auch MySQL Support anbieten.
Mehr Infos zur FromDual GmbH finden Sie unter: www.fromdual.com
Automatitisiertes Starten und Stoppen der Canias ERP Applikation
Beim Betrieb der Canias ERP Applikation stösst man unweigerlich früher oder später auf das lästige Verhalten, dass eine Konsole mit der Canias RMI Registry Applikation offen gehalten werden muss.
Eine offene Konsole kann dazu führen, dass aus Versehen die Applikation gestoppt wird und somit die ganze Produktion, welche am ERP hängt, still steht.
Ein weiteres Problem besteht darin, dass der Canias Server mit seinen Komponenten (RMI-Registry, Lizenz- und Applikations-Server) nicht als Dienst gestartet werden kann.
Das hat zur Folge, dass keine Standard Monitoring Lösung für die Canias-Überwachung genutzt werden kann.
Um dieses Problem zu umgehen haben wir für die Canias ERP Applikation ein start/stop Skript unter CentOS gebaut, welches alle Canias Komponenten steuert. Dieses Skript sollte mit minimalen Änderungen auch auf anderen Linux Distributionen lauffähig sein.
Mit diesem Skript lässt sich nun die Canias RMI-Registry, der Canias Controler sowie der Canias Server automatisiert beim Systemstart über den init-Prozess starten und wieder stoppen ohne, dass eine lästige Konsole offen bleiben muss.
Somit kann eine hohe Verfügbarkeit der Canias Applikation beim System-Neustart gewährleistet werden.
Zudem lässt sich dieses Skript als Ressource in einen aktiv/passiv Failover Cluster mit einbauen und im Fehlerfall automatisch mit auf den anderen Node rüberschwenken, wo die ERP Applikation innert weniger Minuten wieder zur Verfügung steht.
Wir konnten trotzt ausführlicher Tests keine Probleme mit dieser Konfiguration feststellen und wundern uns daher, dass dieses Verfahren nicht bereits durch den Hersteller Canias eingesetzt wird.
Durch leichtes Abändern des Skripts kann sogar ein Icon auf dem Desktop angelegt werden, welches durch Klicken den ganzen Canias Stack neu startet.
Bei Fragen zur Installation oder zum Betrieb von Canias ERP sowie des zugrunde liegenden MySQL Datenbank helfen wir gerne weiter.
#!/bin/sh # # /etc/init.d/canias {start|stop|reload|restart|status} # # canias: Start and Stop Canias ERP System # # chkconfig: is manged by Cluster suite # # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 1 fi appdir="/canias/iasAppServer" logdir="$appdir/Log" start() { echo -n "Starting Canias RMI Registry: " runuser -l canias -c "cd $appdir && nohup /usr/lib/jvm/jre-1.6.0/bin/java -jar serverUtils.jar \ start_ias_rmi_registry debug 1>$logdir/start_rmi_registry.log 2>&1 &" echo sleep 2 echo -n "Starting Canias Controller: " export DISPLAY=$(hostname):1 runuser -l canias -c "cd $appdir && nohup /canias/java/j2re1.4.2_18/bin/java -classpath controller.jar \ -Djava.security.policy=canias.policy -Djava.library.path=. com.ias.starter.iasControllerStarter /Port:USB \ 1>$logdir/start_controller.log 2>&1 &" echo sleep 2 echo -n "Starting Canias Server: " export DISPLAY=$(hostname):1 runuser -l canias -c "cd $appdir && nohup /usr/lib/jvm/jre-1.6.0/bin/java -Xmx4g \ -Djava.security.policy=canias.policy -cp server.jar:./RESOURCES/lib/activation.jar:./RESOURCES/lib/axis.jar:\ ./RESOURCES/lib/commons-discovery.jar:./RESOURCES/lib/commons-fileupload-1.1.1.jar:./RESOURCES/lib/commons-io-1.2.jar:\ ./RESOURCES/lib/commons-logging.jar:./RESOURCES/lib/FontBox-0.1.0-dev.jar:./RESOURCES/lib/iascommapi.jar:\ ./RESOURCES/lib/itext-paulo-155.jar:./RESOURCES/lib/jai_codec.jar:./RESOURCES/lib/jai_core.jar:\ ./RESOURCES/lib/jaxrpc.jar:./RESOURCES/lib/jcchart451K.jar:./RESOURCES/lib/jcert.jar:./RESOURCES/lib/jcfield451K.jar:\ ./RESOURCES/lib/jctable451K.jar:./RESOURCES/lib/jdbc2_0-stdext.jar:./RESOURCES/lib/jnet.jar:./RESOURCES/lib/jradius-client.jar:\ ./RESOURCES/lib/jsse.jar:./RESOURCES/lib/mail_v1.4.jar:./RESOURCES/lib/mlibwrapper_jai.jar:./RESOURCES/lib/NSClient_comp_1.4.jar:\ ./RESOURCES/lib/PDFBox-0.7.3-dev-20060516.jar:./RESOURCES/lib/RetepPDF.jar:./RESOURCES/lib/saaj.jar:./RESOURCES/lib/servlet.jar:\ ./RESOURCES/lib/smlib.jar:./RESOURCES/lib/soap.jar:./RESOURCES/lib/uddi4j.jar:./RESOURCES/lib/wsdl4j.jar:\ ./RESOURCES/lib/xerces.jar:./RESOURCES/lib/xml4j.jar:./RESOURCES/lib/JDBCDrivers com.ias.starter.iasServerStarter \ /settings:ServerSettings.ias 1>$logdir/start_server.log 2>&1 &" echo } stop() { echo -n "Shutting down all Canias related Java processes: " # kill processes in reverse order plist=$(pgrep -u canias java | sort -n -r) for i in $plist ; do kill $i done echo } status() { cnt=$(pgrep -u canias java | wc -l) if [[ $cnt -gt 0 ]] ; then echo "$cnt java processes for user canias are running..." exit 0 else echo "Canias seems to be stopped" exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart|reload) stop sleep 5 start ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac # Always return 0 because we do not want to have a cluster starting # failure just because of Canias! exit 0 Über acar software GmbHAcar software GmbH ist ein IT-Systemhaus, welches sich im ERP Bereich spezialisiert und weitreichendes Know-How in komplexen Geschäftsprozessen angeeignet hat.
Wir sorgen dafür, dass der Kunde seine komplexen Prozesse mit unserer Software transparent und leicht abwickeln kann, ohne einen grossen Overhead zu erzeugen.
Mehr Infos zur acar software GmbH finden Sie unter: www.acarsoftware.de
FromDual GmbH ist ein Hersteller unabhängiges und neutrales Beratungs- und Dienstleistungs-Unternehmen für MySQL, Percona Server und MariaDB.
Wir unterstützen unsere Kunden bei der Wartung und dem Betrieb von MySQL Datenbanken. Zudem machen wir auch MySQL Performance Tuning und helfen unseren Kunden MySQL Hochverfügbarkeits-Lösung zu implementieren, für welche wir auf Wunsch auch MySQL Support anbieten.
Mehr Infos zur FromDual GmbH finden Sie unter: www.fromdual.com
Automatitisiertes Starten und Stoppen der Canias ERP Applikation
Beim Betrieb der Canias ERP Applikation stösst man unweigerlich früher oder später auf das lästige Verhalten, dass eine Konsole mit der Canias RMI Registry Applikation offen gehalten werden muss.
Eine offene Konsole kann dazu führen, dass aus Versehen die Applikation gestoppt wird und somit die ganze Produktion, welche am ERP hängt, still steht.
Ein weiteres Problem besteht darin, dass der Canias Server mit seinen Komponenten (RMI-Registry, Lizenz- und Applikations-Server) nicht als Dienst gestartet werden kann.
Das hat zur Folge, dass keine Standard Monitoring Lösung für die Canias-Überwachung genutzt werden kann.
Um dieses Problem zu umgehen haben wir für die Canias ERP Applikation ein start/stop Skript unter CentOS gebaut, welches alle Canias Komponenten steuert. Dieses Skript sollte mit minimalen Änderungen auch auf anderen Linux Distributionen lauffähig sein.
Mit diesem Skript lässt sich nun die Canias RMI-Registry, der Canias Controler sowie der Canias Server automatisiert beim Systemstart über den init-Prozess starten und wieder stoppen ohne, dass eine lästige Konsole offen bleiben muss.
Somit kann eine hohe Verfügbarkeit der Canias Applikation beim System-Neustart gewährleistet werden.
Zudem lässt sich dieses Skript als Ressource in einen aktiv/passiv Failover Cluster mit einbauen und im Fehlerfall automatisch mit auf den anderen Node rüberschwenken, wo die ERP Applikation innert weniger Minuten wieder zur Verfügung steht.
Wir konnten trotzt ausführlicher Tests keine Probleme mit dieser Konfiguration feststellen und wundern uns daher, dass dieses Verfahren nicht bereits durch den Hersteller Canias eingesetzt wird.
Durch leichtes Abändern des Skripts kann sogar ein Icon auf dem Desktop angelegt werden, welches durch Klicken den ganzen Canias Stack neu startet.
Bei Fragen zur Installation oder zum Betrieb von Canias ERP sowie des zugrunde liegenden MySQL Datenbank helfen wir gerne weiter.
#!/bin/sh # # /etc/init.d/canias {start|stop|reload|restart|status} # # canias: Start and Stop Canias ERP System # # chkconfig: is manged by Cluster suite # # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 1 fi appdir="/canias/iasAppServer" logdir="$appdir/Log" start() { echo -n "Starting Canias RMI Registry: " runuser -l canias -c "cd $appdir && nohup /usr/lib/jvm/jre-1.6.0/bin/java -jar serverUtils.jar \ start_ias_rmi_registry debug 1>$logdir/start_rmi_registry.log 2>&1 &" echo sleep 2 echo -n "Starting Canias Controller: " export DISPLAY=$(hostname):1 runuser -l canias -c "cd $appdir && nohup /canias/java/j2re1.4.2_18/bin/java -classpath controller.jar \ -Djava.security.policy=canias.policy -Djava.library.path=. com.ias.starter.iasControllerStarter /Port:USB \ 1>$logdir/start_controller.log 2>&1 &" echo sleep 2 echo -n "Starting Canias Server: " export DISPLAY=$(hostname):1 runuser -l canias -c "cd $appdir && nohup /usr/lib/jvm/jre-1.6.0/bin/java -Xmx4g \ -Djava.security.policy=canias.policy -cp server.jar:./RESOURCES/lib/activation.jar:./RESOURCES/lib/axis.jar:\ ./RESOURCES/lib/commons-discovery.jar:./RESOURCES/lib/commons-fileupload-1.1.1.jar:./RESOURCES/lib/commons-io-1.2.jar:\ ./RESOURCES/lib/commons-logging.jar:./RESOURCES/lib/FontBox-0.1.0-dev.jar:./RESOURCES/lib/iascommapi.jar:\ ./RESOURCES/lib/itext-paulo-155.jar:./RESOURCES/lib/jai_codec.jar:./RESOURCES/lib/jai_core.jar:\ ./RESOURCES/lib/jaxrpc.jar:./RESOURCES/lib/jcchart451K.jar:./RESOURCES/lib/jcert.jar:./RESOURCES/lib/jcfield451K.jar:\ ./RESOURCES/lib/jctable451K.jar:./RESOURCES/lib/jdbc2_0-stdext.jar:./RESOURCES/lib/jnet.jar:./RESOURCES/lib/jradius-client.jar:\ ./RESOURCES/lib/jsse.jar:./RESOURCES/lib/mail_v1.4.jar:./RESOURCES/lib/mlibwrapper_jai.jar:./RESOURCES/lib/NSClient_comp_1.4.jar:\ ./RESOURCES/lib/PDFBox-0.7.3-dev-20060516.jar:./RESOURCES/lib/RetepPDF.jar:./RESOURCES/lib/saaj.jar:./RESOURCES/lib/servlet.jar:\ ./RESOURCES/lib/smlib.jar:./RESOURCES/lib/soap.jar:./RESOURCES/lib/uddi4j.jar:./RESOURCES/lib/wsdl4j.jar:\ ./RESOURCES/lib/xerces.jar:./RESOURCES/lib/xml4j.jar:./RESOURCES/lib/JDBCDrivers com.ias.starter.iasServerStarter \ /settings:ServerSettings.ias 1>$logdir/start_server.log 2>&1 &" echo } stop() { echo -n "Shutting down all Canias related Java processes: " # kill processes in reverse order plist=$(pgrep -u canias java | sort -n -r) for i in $plist ; do kill $i done echo } status() { cnt=$(pgrep -u canias java | wc -l) if [[ $cnt -gt 0 ]] ; then echo "$cnt java processes for user canias are running..." exit 0 else echo "Canias seems to be stopped" exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart|reload) stop sleep 5 start ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac # Always return 0 because we do not want to have a cluster starting # failure just because of Canias! exit 0 Über acar software GmbHAcar software GmbH ist ein IT-Systemhaus, welches sich im ERP Bereich spezialisiert und weitreichendes Know-How in komplexen Geschäftsprozessen angeeignet hat.
Wir sorgen dafür, dass der Kunde seine komplexen Prozesse mit unserer Software transparent und leicht abwickeln kann, ohne einen grossen Overhead zu erzeugen.
Mehr Infos zur acar software GmbH finden Sie unter: www.acarsoftware.de
FromDual GmbH ist ein Hersteller unabhängiges und neutrales Beratungs- und Dienstleistungs-Unternehmen für MySQL, Percona Server und MariaDB.
Wir unterstützen unsere Kunden bei der Wartung und dem Betrieb von MySQL Datenbanken. Zudem machen wir auch MySQL Performance Tuning und helfen unseren Kunden MySQL Hochverfügbarkeits-Lösung zu implementieren, für welche wir auf Wunsch auch MySQL Support anbieten.
Mehr Infos zur FromDual GmbH finden Sie unter: www.fromdual.com
ER-Diagramm des InnoDB Data Dictionaries
Mit dem neuen MySQL Release 5.6 sind einige neue InnoDB Data Dictionary Tabellen zum INFORMATION_SCHEMA hinzu gekommen:
Neu in MySQL 5.5 sind:
INNODB_CMPINNODB_CMP_RESETINNODB_CMPMEMINNODB_CMPMEM_RESETINNODB_TRXINNODB_LOCK_WAITSINNODB_LOCKSNeu in MySQL 5.6 sind:
INNODB_BUFFER_PAGEINNODB_BUFFER_PAGE_LRUINNODB_BUFFER_POOL_STATSINNODB_METRICSINNODB_SYS_COLUMNSINNODB_SYS_FIELDSINNODB_SYS_FOREIGNINNODB_SYS_FOREIGN_COLSINNODB_SYS_INDEXESINNODB_SYS_TABLESINNODB_SYS_TABLESTATSDie INNODB_SYS Tabellen waren bereits früher vorhanden, aber nicht über SQL zugreifbar. Man konnte Sie sehen, indem man den InnoDB Table Monitor eingeschaltet hat.
Um eine grobe Übersicht zu erhalten, welchen Bezug diese Tabellen zueinander haben, haben wir das ER-Diagramm des InnoDB Data Dictionaries reverse engineered. Bitte teilt uns mit, wenn Ihr einen Fehler findet oder wenn etwas fehlt...
Viel Spass!
Oli
innodb_dd.pdf (PDF: 93k)
Taxonomy upgrade extras: innodbdata dictionaryer-diagramgermanER-Diagramm des InnoDB Data Dictionaries
Mit dem neuen MySQL Release 5.6 sind einige neue InnoDB Data Dictionary Tabellen zum INFORMATION_SCHEMA hinzu gekommen:
Neu in MySQL 5.5 sind:
INNODB_CMPINNODB_CMP_RESETINNODB_CMPMEMINNODB_CMPMEM_RESETINNODB_TRXINNODB_LOCK_WAITSINNODB_LOCKSNeu in MySQL 5.6 sind:
INNODB_BUFFER_PAGEINNODB_BUFFER_PAGE_LRUINNODB_BUFFER_POOL_STATSINNODB_METRICSINNODB_SYS_COLUMNSINNODB_SYS_FIELDSINNODB_SYS_FOREIGNINNODB_SYS_FOREIGN_COLSINNODB_SYS_INDEXESINNODB_SYS_TABLESINNODB_SYS_TABLESTATSDie INNODB_SYS Tabellen waren bereits früher vorhanden, aber nicht über SQL zugreifbar. Man konnte Sie sehen, indem man den InnoDB Table Monitor eingeschaltet hat.
Um eine grobe Übersicht zu erhalten, welchen Bezug diese Tabellen zueinander haben, haben wir das ER-Diagramm des InnoDB Data Dictionaries reverse engineered. Bitte teilt uns mit, wenn Ihr einen Fehler findet oder wenn etwas fehlt...
Viel Spass!
Oli
innodb_dd.pdf (PDF: 93k)
Taxonomy upgrade extras: innodbdata dictionaryer-diagramgermanER-Diagramm des InnoDB Data Dictionaries
Mit dem neuen MySQL Release 5.6 sind einige neue InnoDB Data Dictionary Tabellen zum INFORMATION_SCHEMA hinzu gekommen:
Neu in MySQL 5.5 sind:
INNODB_CMPINNODB_CMP_RESETINNODB_CMPMEMINNODB_CMPMEM_RESETINNODB_TRXINNODB_LOCK_WAITSINNODB_LOCKSNeu in MySQL 5.6 sind:
INNODB_BUFFER_PAGEINNODB_BUFFER_PAGE_LRUINNODB_BUFFER_POOL_STATSINNODB_METRICSINNODB_SYS_COLUMNSINNODB_SYS_FIELDSINNODB_SYS_FOREIGNINNODB_SYS_FOREIGN_COLSINNODB_SYS_INDEXESINNODB_SYS_TABLESINNODB_SYS_TABLESTATSDie INNODB_SYS Tabellen waren bereits früher vorhanden, aber nicht über SQL zugreifbar. Man konnte Sie sehen, indem man den InnoDB Table Monitor eingeschaltet hat.
Um eine grobe Übersicht zu erhalten, welchen Bezug diese Tabellen zueinander haben, haben wir das ER-Diagramm des InnoDB Data Dictionaries reverse engineered. Bitte teilt uns mit, wenn Ihr einen Fehler findet oder wenn etwas fehlt...
Viel Spass!
Oli
innodb_dd.pdf (PDF: 93k)
Newsletter Summer 2011
Dear MySQL and MariaDB User,
With this Newsletter you receive the News about FromDual for Summer 2011.
Sie können diesen Newsletter auch auf deutsch lesen oder sich den deutschprachigen Newsletter. abonnieren.
Topics- Basic- and Silver Support for MySQL and MariaDB
- FromDual Performance Monitor for MySQL with more InnoDB Graphs
- Summer vacation without a MySQL DBA?
- Upcomming Trainings and Workshops
- Technical Information
- German Speaking MySQL User Group founded
- News about MySQL
End of last year Oracle/MySQL has dropped the low cost Basic- and Silver-Support contracts from their service portfolio. The official justification was: Minor demand from the customers.
Numerous MySQL users since then have inquired this Support offerings with FromDual. We can offer you now the following Support Services for MySQL:
- Our Best Effort Support (BES) for EUR 990.-/year as an alternative to MySQL Basic and
- Our Business Hour Support (5 x 9, BHS) for EUR 1'990.-/year as an alternative to MySQL Silver.
Naturally we offer you as well Support in the high-end range for MySQL and MariaDB with our All Day Long Support (ADLS, 7x16) and our All around the Clock Support (7 x 24, AatCS).
More information you will find at 24x7 Premium Support.
If you have any question about our Support Offerings please let us know by sending us an e-mail to the following address and we will contact you asap...
FromDual Performance Monitor for MySQL with more InnoDB GraphsIn the middle of June FromDual has published its newest Release of its MySQL Performance Monitor. Because of many requests from our customers we have improved the InnoDB module and increased the number of InnoDB Graphs.
Some sample Graphs you can find at InnoDB Graphs for MySQL Performance Monitor.
Summer vacation without a MySQL DBA?If your MySQL DBA is leaving you for its well-deserved summer holidays, you do not have to prohibit him his holidays anymore! We take-over his work during his summer vacation...
More information about our Remote-DBA services you will find on our website.
Upcoming Trainings and Workshops- On August 20 and 21 in St. Augustin (Germany) the FrOSCon 6 / 2011 is taking place. We will be present with our presentation MySQL Performance Tuning (in German). If you would like to know how we do Performance Tuning with our customers, come an visit us!
- From August 15th to 17th we will have an Advanced MySQL Developer Workshop with Citrus in Helsinki. The workshop will be held in English.
- At the /ch/open Workshop Days 2011 we will have on Thursday, September 15 our Workshop MySQL High-Availability with an active/passive Failover-Cluster. All those who were last year in the wrong Workshop have this year the chance to visit the right one...
- On October 24 and 25 in the Linux-Hotel in Essen a MySQL Cluster course is taking place. You can apply directly at the Linux Hotel.
We have compiled the following interesting technical information for you:
- From time to time one has to Dumping BLOB's from the MySQL database. A rarely known MySQL Feature is described.
- How you can find out, when a MySQL table is last touched is described in the article: When a MySQL table was last touched.
- More on the topic: Why is Virtualization for database systems dangerous? you will find here: Be cautious when using Virtualized System with your Database.
- And those who want to regularly defragment their Query Cache find a description in: Regularly flushing the MySQL Query Cache.
If you have missed our presentations HA Architectures with MySQL or HandlerSocket and similar Technologies - NoSQL for MySQL at the DOAG SIG's you can find the slides as PDF at Presentations.
German speaking MySQL User Group (DMySQLAG) foundedBeginning of June the German speaking MySQL User Group (DMySQLAG) was founded.
This association advocates for:
- the information of the use, the handling and the experience with MySQL and development in the MySQL Eco-System as well as systems which use MySQL.
- the exchange of experience between MySQL users about MySQL and other systems.
- the Advice and Cooperation with Oracle and vendors of other systems.
- the submission of suggestions of the members to Oracle and vendors of other systems.
The intention of the German speaking MySQL User Group is to be a platform for MySQL User from Germany, Austria and Switzerland. To get a high enough weight for Austria and Switzerland we hope for a high number of registrations of these two countries!
Member fee:
- Students: free
- Single-membership: EUR 100.-/a
- Companies up to 500 employees: EUR 200.-/a
- Companies above 500 employees: EUR 300.-/a
- In May 2011 MySQL has released version 5.5.13 and 5.5.14 and fixed many (about 50) bugs in InnoDB and Replication.
- Several new releases for MySQL Cluster 7.0, 7.1 and 7.2 are in the pipeline and will be possibly released in next few weeks.
- MariaDB 5.2.6 and 5.2.7 were released in May and June.
- Galera, a synchronous Multi-Master-Replication for MySQL advances with v0.8 in big steps to a stable release and seems to be production ready soon. It is worth to give this product a try!
If you want to stay tuned to our information, follow our Tweets on Twitter.
We would love to hear about your feedback.
Best Regards,
Your FromDual Team
FromDual Newsletter Sommer 2011
Liebe MySQL und MariaDB Nutzerinnen und Nutzer,
Mit diesem Newsletter erfahren Sie, was es diesen Sommer neues von FromDual zu berichten gibt.
You can read this Newsletter in Englisch as well or subscribe to our English version.
Themen- Basic- und Silber Support für MySQL und MariaDB
- FromDual Performance Monitor für MySQL mit mehr InnoDB Graphen
- Sommerferien ohne MySQL DBA?
- Anstehende Schulungen und Workshops
- Technische Informationen
- Deutschsprachige MySQL Anwender Gruppe gegründet
- Neuigkeiten zu MySQL
Ende letzten Jahres hat Oracle/MySQL die günstigen Basic- und Silber-Supportangebote aus ihrem Dienstleistungsangebot gestrichen. Die offizielle Begründung lautete: Geringe Nachfrage auf Kundenseite.
Zahlreiche MySQL Nutzer haben sich hierauf bei uns gemeldet und diese Dienstleistungen nachgefragt. Wir können Ihnen daher folgendes anbieten:
- Unseren Best Effort Support (BES) für EUR 990.-/Jahr als Alternative zu MySQL Basic und
- Unseren Business Hour Support (5 x 9, BHS) für EUR 1'990.-/Jahr als Alternative zu MySQL Silber.
Natürlich bieten wir Ihnen auch im high-end Bereich Support für MySQL und MariaDB an mit unserem All Day Long Support (ADLS, 7x16) und All around the Clock Support (7 x 24, AatCS).
Mehr Informationen finden Sie unter 7x24 Premium Support.
Bei Fragen zu unserem Support-Angebot stehen wir Ihnen gerne für ein Gespräch zur Verfügung. Bitte teilen Sie uns mit, wenn wir Sie kontaktieren sollen...
FromDual Performance Monitor für MySQL mit mehr InnoDB GraphenMitte Juni hat FromDual den neusten Release seines MySQL Performance Monitors freigegeben. Auf vielfachen Wunsch unserer Kunden haben wir die InnoDB Graphen stark ausgebaut und verbessert.
Einige Beispiel-Graphen finden Sie unter InnoDB Graphs for MySQL Performance Monitor.
Sommerferien ohne MySQL DBA?Sollte Ihr MySQL DBA in den wohlverdienten Sommer-Urlaub fahren wollen, müssen Sie ihm dies jetzt nicht mehr verbieten! Wir übernehmen seine Arbeiten während der Sommerferien für ihn...
Mehr Informationen über unsere Remote-DBA Dienstleistungen finden Sie auf unserer Website.
Anstehende Schulungen und Workshops- Am 20. und 21. August 2011 findet in St. Augustin die FrOSCon 6 / 2011 statt. Wir werden mit unserem Vortrag MySQL Performance Tuning (auf deutsch) vertreten sein. Wenn Sie wissen wollen, wie wir bei unseren Kunden Performance Tuning durchführen, kommen Sie uns doch besuchen!
- Vom 15. bis zum 17. August führen wir mit Citrus einen MySQL Developer Workshop für Fortgeschrittene in Helsinki durch. Der Workshop findet in englischer Sprache statt.
- An den /ch/open Workshop Tagen 2011 führen wir am Donnerstag 15. September den Workshop MySQL High-Availability mit einem aktiv/passiv Failover-Cluster durch. All jene, welche letztes Jahr im falschen Workshop waren, haben dieses Jahr die Gelegenheit, den richtigen Workshop zu besuchen...
- Am 24. und 25. Oktober findet im Linux-Hotel in Essen ein MySQL Cluster Kurs statt. Anmelden können Sie sich direkt beim Linux Hotel.
Die folgenden technischen Information, welche wir zum Thema MySQL erarbeitet haben, sind für Sie interessant:
- Ab und zu muss man BLOB's aus der MySQL Datenbank herausklauben. Ein wenig beachtetes MySQL Feature wird hier beschrieben.
- Wie Sie herausfinden können, wann eine MySQL Tabelle zuletzt angelangt wurde beschreiben wir im Artikel: When a MySQL table was last touched.
- Mehr zum Thema: Warum ist Virtualisierung für Datenbanksysteme gefährlich? finden Sie hier: Be cautious when using Virtualized System with your Database.
- Und wer seinen Query Cache regelmässig defragmentieren möchte findet dazu eine Anleitung in: Regularly flushing the MySQL Query Cache.
Wenn Sie unsere Vorträge zum Thema HA Architekturen mit MySQL oder HandlerSocket und ähnliche Technologien - NoSQL für MySQL an den DOAG SIG's verpasst hat, findet die Folien als PDF unter Präsentationen.
Deutschsprachige MySQL Anwender Gruppe gegründetAnfangs Juni wurde die Deutschsprachige MySQL Anwender Gruppe (DMySQLAG) gegründet.
Der Verein fördert:
- die Information über den Einsatz, den Umgang und die Erfahrung mit MySQL und Entwicklungen im MySQL Öko-System sowie Anwendungssysteme welche MySQL nutzen.
- den Erfahrungsaustausch zwischen den Benutzern über MySQL sowie anderer Systeme.
- die Beratung und Zusammenarbeit mit Oracle und Herstellern anderer Systeme.
- die Unterbreitung von Mitgliedervorschlägen an Oracle und Hersteller von anderen Systemen.
Die deutschsprachige MySQL Anwender Gruppe ist für MySQL Anwender aus Deutschland, Österreich und der Schweiz gedacht. Damit Österreich und Schweiz ein genügend grosses Gewicht erhalten sind insbesondere zahlreiche Anmeldungen aus diesen beiden Ländern erwünscht!
Die Mitgliederbeiträge betragen:
- Schüler und Studenten: frei
- Einzelmitglieder: EUR 100.-/a
- Firmen bis 500 Mitarbeiter: EUR 200.-/a
- Firmen über 500 Mitarbeiter: EUR 300.-/a
- MySQL hat im May 2011 die Releases 5.5.13 und 5.5.14 freigegeben und zahlreiche (ca. 50) Bugs in InnoDB und der Replikation gefixt.
- Diverses Neue Releases für MySQL Cluster 7.0, 7.1 und 7.2 stehen in der Pipeline und dürften in den nächsten Wochen freigegeben werden.
- MariaDB 5.2.6 und 5.2.7 wurden im Mai und Juni freigegeben.
- Galera, eine synchrone Multi-Master-Replikation für MySQL nähert sich mit v0.8 in grossen Schritten einem stabilen und für den kommerziellen Einsatz geeigneten Zustand. Es lohnt sich, dieses Produkt auszuprobieren!
Wenn Sie über unsere Informationen immer auf dem Laufenden gehalten werden wollen, folgen Sie am besten unseren Tweets auf Twitter.
Gerne nehmen wir auch Ihre Rückmeldungen entgegen.
Mit freundlichen Grüssen,
Ihr FromDual Team
MySQL Entwickler Workshop für Fortgeschrittene
Advanced MySQL Developer Workshop
Deutschsprachige MySQL Anwender Gruppe gegründet (DMySQLAG)
- die Information über den Einsatz, den Umgang und die Erfahrung mit MySQL und Entwicklungen im MySQL Eco-System sowie Anwendungssysteme welche MySQL nutzen.
- den Erfahrungsaustausch zwischen den Benutzern über MySQL sowie anderer Systeme.
- die Beratung und Zusammenarbeit mit Oracle und Herstellern anderer Systeme.
- die Unterbreitung von Mitgliedervorschlägen an Oracle und Hersteller von anderen Systemen.
- Schüler und Studenten: frei
- Einzelmitglieder: EUR 100.-/a
- Firmen bis 500 Mitarbeiter: EUR 200.-/a
- Firmen über 500 Mitarbeiter: EUR 300.-/a
Deutschsprachige MySQL Anwender Gruppe gegründet (DMySQLAG)
- die Information über den Einsatz, den Umgang und die Erfahrung mit MySQL und Entwicklungen im MySQL Eco-System sowie Anwendungssysteme welche MySQL nutzen.
- den Erfahrungsaustausch zwischen den Benutzern über MySQL sowie anderer Systeme.
- die Beratung und Zusammenarbeit mit Oracle und Herstellern anderer Systeme.
- die Unterbreitung von Mitgliedervorschlägen an Oracle und Hersteller von anderen Systemen.
- Schüler und Studenten: frei
- Einzelmitglieder: EUR 100.-/a
- Firmen bis 500 Mitarbeiter: EUR 200.-/a
- Firmen über 500 Mitarbeiter: EUR 300.-/a
Deutschsprachige MySQL Anwender Gruppe gegründet (DMySQLAG)
- die Information über den Einsatz, den Umgang und die Erfahrung mit MySQL und Entwicklungen im MySQL Eco-System sowie Anwendungssysteme welche MySQL nutzen.
- den Erfahrungsaustausch zwischen den Benutzern über MySQL sowie anderer Systeme.
- die Beratung und Zusammenarbeit mit Oracle und Herstellern anderer Systeme.
- die Unterbreitung von Mitgliedervorschlägen an Oracle und Hersteller von anderen Systemen.
- Schüler und Studenten: frei
- Einzelmitglieder: EUR 100.-/a
- Firmen bis 500 Mitarbeiter: EUR 200.-/a
- Firmen über 500 Mitarbeiter: EUR 300.-/a
BLOB's aus der MySQL Datenbank herausklauben
Ein Kunde, welcher mit digitalen Zertifikaten zu tun hat, hatte ein Problem mit einem solchen. Also mussten wir nachforschen, was das Problem war.
Weil das Zertifikat in binärer Form vorliegt, ist es in einem BLOB gespeichert und wir mussten es aus der Datenbank herausklauben um einige Tests damit durchzuführen.
Als erstes kam mir in den Sinn, das Zertifikat mit dem Befehl SELECT INTO OUTFILE zu erhalten. Aber das Verifizierungstool reklamierte und sagte uns, dass das Zertifikat ein falsches Format habe.
Zum Glück fand ich in der MySQL Dokumentation den folgenden Satz: If you use INTO DUMPFILE instead of INTO OUTFILE, MySQL writes only one row into the file, without any column or line termination and without performing any escape processing. This is useful if you want to store a BLOB value in a file.
Wir haben es ausprobiert mit:
mysql> SELECT certificate INTO DUMPFILE '/tmp/certificate.bin' FROM identity WHERE id = 42;und es hat perfekt funktioniert. Das Zertifikat-Verifizierungstool hatte nichts mehr zu meckern und wir konnten weiter nachforschen, warum das Zertifikat überhaupt ein Problem verursacht hat...
Mit diesem Befehl, welchen ich vorher noch nicht kannte, ist es sehr einfach ein einzelnes BLOB aus der Datenbank in eine Datei zu dumpen und dieses von dort aus weiter zu verarbeiten.
Zur Erinnerung: MySQL hat eine generelle Protokoll-Limitation für BLOB's von 1 Gbyte und die Grösse für max_allowed_packet muss entsprechend für den Client UND den Server angepasst werden wenn grosse BLOB's verwendet werden. Weitere Informationen über MySQL-Limitationen finden Sie hier.
Im weiteren muss der Typ des BLOB's entsprechend der erwarteten Grösse des BLOB's richtig gewählt werden. Siehe auch: Data Type Storage Requirements.
Literatur Taxonomy upgrade extras: mysqlblobdumpselectgermanBLOB's aus der MySQL Datenbank herausklauben
Ein Kunde, welcher mit digitalen Zertifikaten zu tun hat, hatte ein Problem mit einem solchen. Also mussten wir nachforschen, was das Problem war.
Weil das Zertifikat in binärer Form vorliegt, ist es in einem BLOB gespeichert und wir mussten es aus der Datenbank herausklauben um einige Tests damit durchzuführen.
Als erstes kam mir in den Sinn, das Zertifikat mit dem Befehl SELECT INTO OUTFILE zu erhalten. Aber das Verifizierungstool reklamierte und sagte uns, dass das Zertifikat ein falsches Format habe.
Zum Glück fand ich in der MySQL Dokumentation den folgenden Satz: If you use INTO DUMPFILE instead of INTO OUTFILE, MySQL writes only one row into the file, without any column or line termination and without performing any escape processing. This is useful if you want to store a BLOB value in a file.
Wir haben es ausprobiert mit:
mysql> SELECT certificate INTO DUMPFILE '/tmp/certificate.bin' FROM identity WHERE id = 42;und es hat perfekt funktioniert. Das Zertifikat-Verifizierungstool hatte nichts mehr zu meckern und wir konnten weiter nachforschen, warum das Zertifikat überhaupt ein Problem verursacht hat...
Mit diesem Befehl, welchen ich vorher noch nicht kannte, ist es sehr einfach ein einzelnes BLOB aus der Datenbank in eine Datei zu dumpen und dieses von dort aus weiter zu verarbeiten.
Zur Erinnerung: MySQL hat eine generelle Protokoll-Limitation für BLOB's von 1 Gbyte und die Grösse für max_allowed_packet muss entsprechend für den Client UND den Server angepasst werden wenn grosse BLOB's verwendet werden. Weitere Informationen über MySQL-Limitationen finden Sie hier.
Im weiteren muss der Typ des BLOB's entsprechend der erwarteten Grösse des BLOB's richtig gewählt werden. Siehe auch: Data Type Storage Requirements.
Literatur Taxonomy upgrade extras: mysqlblobdumpselectgermanBLOB's aus der MySQL Datenbank herausklauben
Ein Kunde, welcher mit digitalen Zertifikaten zu tun hat, hatte ein Problem mit einem solchen. Also mussten wir nachforschen, was das Problem war.
Weil das Zertifikat in binärer Form vorliegt, ist es in einem BLOB gespeichert und wir mussten es aus der Datenbank herausklauben um einige Tests damit durchzuführen.
Als erstes kam mir in den Sinn, das Zertifikat mit dem Befehl SELECT INTO OUTFILE zu erhalten. Aber das Verifizierungstool reklamierte und sagte uns, dass das Zertifikat ein falsches Format habe.
Zum Glück fand ich in der MySQL Dokumentation den folgenden Satz: If you use INTO DUMPFILE instead of INTO OUTFILE, MySQL writes only one row into the file, without any column or line termination and without performing any escape processing. This is useful if you want to store a BLOB value in a file.
Wir haben es ausprobiert mit:
mysql> SELECT certificate INTO DUMPFILE '/tmp/certificate.bin' FROM identity WHERE id = 42;und es hat perfekt funktioniert. Das Zertifikat-Verifizierungstool hatte nichts mehr zu meckern und wir konnten weiter nachforschen, warum das Zertifikat überhaupt ein Problem verursacht hat...
Mit diesem Befehl, welchen ich vorher noch nicht kannte, ist es sehr einfach ein einzelnes BLOB aus der Datenbank in eine Datei zu dumpen und dieses von dort aus weiter zu verarbeiten.
Zur Erinnerung: MySQL hat eine generelle Protokoll-Limitation für BLOB's von 1 Gbyte und die Grösse für max_allowed_packet muss entsprechend für den Client UND den Server angepasst werden wenn grosse BLOB's verwendet werden. Weitere Informationen über MySQL-Limitationen finden Sie hier.
Im weiteren muss der Typ des BLOB's entsprechend der erwarteten Grösse des BLOB's richtig gewählt werden. Siehe auch: Data Type Storage Requirements.
Literatur