<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MySQL Queries taggen on FromDual GmbH</title><link>https://www.fromdual.com/de/blog/mysql-queries-taggen/</link><description>Recent content in MySQL Queries taggen on FromDual GmbH</description><generator>Hugo</generator><language>de-CH</language><managingEditor>oli.sennhauser@fromdual.com (Oli Sennhauser)</managingEditor><webMaster>oli.sennhauser@fromdual.com (Oli Sennhauser)</webMaster><copyright>© FromDual GmbH</copyright><lastBuildDate>Sun, 22 Feb 2026 21:24:00 +0100</lastBuildDate><atom:link href="https://www.fromdual.com/de/blog/mysql-queries-taggen/index.xml" rel="self" type="application/rss+xml"/><item><title>Wie lädt man Daten am schnellsten in die Datenbank?</title><link>https://www.fromdual.com/de/blog/daten-schnell-in-die-datenbank-laden/</link><pubDate>Tue, 10 Feb 2026 22:48:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/daten-schnell-in-die-datenbank-laden/</guid><description>&lt;p&gt;Beim letzten Kunden hatten wir wirklich ein paar spannende Fragen zu lösen! Insbesondere auch, weil die Datenbank nicht ganz klein war.&lt;/p&gt;
&lt;p&gt;Hier kurz einige Eckdaten: CPU: 2 Sockel x 24 Kerne x 2 Threads = 96 vCores, 756 G RAM, 2 x 10 Tbyte PCIe SSD im RAID-10 und 7 Tbyte Daten, einige Tausend Mandanten, stark wachsend.&lt;/p&gt;
&lt;p&gt;Der aktuelle Durchsatz: 1 M &lt;code&gt;SELECT&lt;/code&gt;/min, 56 k &lt;code&gt;INSERT&lt;/code&gt;/min, 44 k &lt;code&gt;UPDATE&lt;/code&gt;/min , 7 k &lt;code&gt;DELETE&lt;/code&gt;/min gemittelt über 30 Tage. Tendenz stark steigend. Applikation und Queries nicht durchgängig optimiert. Datenbank Konfiguration: &amp;ldquo;state of the art&amp;rdquo; nicht mit Benchmarks verifiziert. CPU-Auslastung ca. 50% im Schnitt, in der Spitze mehr. I/O System hat noch Luft nach oben.&lt;/p&gt;
&lt;p&gt;Der Kunde sammelt Positions- und sonstige Gerätedaten ein und speichert diese in der Datenbank. Also ein klassisches IoT Problem (mit Zeitreihen, Index Clustered Table, etc.).&lt;/p&gt;
&lt;p&gt;Die Frage, die er gestellt hat, ist: Wie kriege ich am schnellsten Daten von einer Tabelle (pending data, eine Art Queue) in eine andere Tabelle (final data, pro Mandant) kopiert.&lt;/p&gt;
&lt;p&gt;Der Datenfluss sieht in etwa wie folgt aus:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;+------------+
| IoT Device |--+
+------------+ \
 \ +-----+
+------------+ \ | AS | +--------------+ Processing +------------+
| IoT Device |------+--&amp;gt;| |--&amp;gt;| Pending data |-------------&amp;gt;| Final data |
+------------+ / | 400 | +--------------+ of data +------------+
 / +-----+
+------------+ /
| IoT Device |--+
+------------+
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;3 verschiedene Varianten, die Daten zu kopieren, standen zur Auswahl.&lt;/p&gt;
&lt;h2 id="variante-1-insert-und-delete-einfachste-form"&gt;Variante 1: &lt;code&gt;INSERT&lt;/code&gt; und &lt;code&gt;DELETE&lt;/code&gt; (einfachste Form)&lt;/h2&gt;
&lt;p&gt;Die einfachste Variante ist simples &lt;code&gt;INSERT&lt;/code&gt; und &lt;code&gt;DELETE&lt;/code&gt;. Diese Variante ist insbesondere darum problematisch, weil MariaDB/MySQL und PostgreSQL per default &lt;code&gt;AUTOCOMMIT&lt;/code&gt; eingeschaltet haben (&lt;a href="https://dev.mysql.com/doc/refman/8.4/en/innodb-autocommit-commit-rollback.html" target="_blank"&gt;hier&lt;/a&gt;, &lt;a href="https://mariadb.com/docs/server/reference/sql-statements/transactions/start-transaction" target="_blank"&gt;hier&lt;/a&gt;, &lt;a href="https://www.postgresql.org/docs/current/ecpg-sql-set-autocommit.html" target="_blank"&gt;hier&lt;/a&gt; und &lt;a href="https://www.cybertec-postgresql.com/en/disabling-autocommit-in-postgresql-can-damage-your-health/" target="_blank"&gt;hier&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Damit man sich das ein bisschen besser vorstellen kann, hier etwas Pseudocode dazu:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;// 20k rows
for (i = 1; i &amp;lt;= 2000; i++) {

 SELECT * FROM pending LIMIT 10;
 foreach ( row ) {
 INSERT INTO final; …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>MariaDB hat das Konzept des dynamisch konfigurierbaren Buffer Pools kaputt gemacht!</title><link>https://www.fromdual.com/de/blog/mariadb-dynamisch-konfigurierbare-buffer-pool-kaputt/</link><pubDate>Sun, 08 Feb 2026 20:25:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadb-dynamisch-konfigurierbare-buffer-pool-kaputt/</guid><description>&lt;h2 id="problembeschreibung"&gt;Problembeschreibung&lt;/h2&gt;
&lt;p&gt;MySQL hat mit 5.7.5 im September 2014 den dynamisch konfigurierbaren InnoDB Buffer Pool eingeführt (&lt;a href="https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-5.html" target="_blank"&gt;hier&lt;/a&gt; und &lt;a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html#innodb-buffer-pool-online-resize" target="_blank"&gt;hier&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The innodb_buffer_pool_size configuration option can be set dynamically using a SET statement, allowing you to resize the buffer pool without restarting the server. For example:&lt;br&gt;&lt;br&gt;
mysql&amp;gt; SET GLOBAL innodb_buffer_pool_size=402653184;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MariaDB 10.2.2 hat dieses Feature im September 2016 übernommen (&lt;a href="https://mariadb.com/docs/release-notes/community-server/old-releases/10.2/10.2.2#notable-changes" target="_blank"&gt;Quelle&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;InnoDB was merged from MySQL-5.7.14 (XtraDB is disabled in MariaDB-10.2.2 pending a similar merge)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Das Problematische ist einerseits, dass dieses Feature jetzt nicht mehr funktioniert wie bis anhin und nicht mehr funktioniert wie erwartet. Anderseits haben sie das Verhalten im Frühling 2025 innerhalb einer Major Release Serie (LTS) geändert, was meiner Meinung nach ein absolutes no-go ist (&lt;a href="https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-buffer-pool#buffer-pool-changes" target="_blank"&gt;Quelle&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;From MariaDB 10.11.12 / 11.4.6 / 11.8.2, there are significant changes to the InnoDB buffer pool behavior.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Und zudem ist die Beschreibung dazu recht dürftig (&lt;a href="https://mariadb.com/docs/release-notes/community-server/10.11/10.11.12#innodb" target="_blank"&gt;Quelle&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;decreasing innodb_buffer_pool_size at runtime does not release memory (MDEV-32339)&lt;/li&gt;
&lt;li&gt;reorganise innodb buffer pool (and remove buffer pool chunks) (MDEV-29445)&lt;/li&gt;
&lt;li&gt;The Linux memory pressure interface, which could previously not be disabled and could cause performance anomalies, was rewritten and is disabled by default. (MDEV-34863)&lt;/li&gt;
&lt;li&gt;Server crashes when resizing default innodb buffer pool after setting innodb-buffer-pool-chunk-size to 1M (MDEV-34677)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Im entsprechende Worklog (&lt;a href="https://jira.mariadb.org/browse/MDEV-36197" target="_blank"&gt;MDEV-36197&lt;/a&gt;) beschreibt MarkoM zudem ein anderes Verhalten:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;innodb_buffer_pool_size_auto_max (my proposal for this task) would set the maximum for the automation (default: 0 to disable the logic).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;was meiner Meinung nach wesentlich sinnvoller gewesen wäre.&lt;/p&gt;
&lt;h2 id="wie-ging-es-früher"&gt;Wie ging es früher?&lt;/h2&gt;
&lt;p&gt;Wie ging es früher bei MariaDB und heute immer noch bei MySQL:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SQL&amp;gt; SHOW GLOBAL VARIABLES LIKE &amp;#39;innodb_buffer_pool%size&amp;#39;;
+-------------------------------+-----------+
| Variable_name | Value |
+-------------------------------+-----------+
| …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Wie viel Platz braucht NULL?</title><link>https://www.fromdual.com/de/blog/wie-viel-platz-braucht-null/</link><pubDate>Sun, 08 Feb 2026 10:36:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/wie-viel-platz-braucht-null/</guid><description>&lt;p&gt;Beim letzten Beratungseinsatz beim Kunden, kam dieser freudestrahlend auf mich zu mit der Bemerkung: Er habe meinen Rat befolgt und sämtiche Primary Key Spalten von &lt;code&gt;BIGINT&lt;/code&gt; (8 byte) auf &lt;code&gt;INT&lt;/code&gt; (4 byte) geändert und das habe viel gebracht! Seine MySQL 8.4er Datenbank sei jetzt um 750 Gbyte kleiner geworden (von 5.5 Tbyte). Schön!&lt;/p&gt;
&lt;p&gt;Und ja, ich weiss, dass wiederspricht den Empfehlungen einiger meiner PostgreSQL Kollegen (&lt;a href="https://www.crunchydata.com/blog/postgres-serials-should-be-bigint-and-how-to-migrate" target="_blank"&gt;hier&lt;/a&gt; und &lt;a href="https://www.cybertec-postgresql.com/en/uuid-serial-or-identity-columns-for-postgresql-auto-generated-primary-keys/#should-i-use-integerserial-or-bigintbigserial-for-my-auto-generated-primary-key" target="_blank"&gt;hier&lt;/a&gt;). In der MySQL-Welt wird eher auf solche Dinge Wert gelegt (&lt;a href="https://dev.mysql.com/doc/refman/8.4/en/data-size.html" target="_blank"&gt;Quelle&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Use the most efficient (smallest) data types possible. MySQL has many specialized types that save disk space and memory. For example, use the smaller integer types if possible to get smaller tables&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Zudem funktioniert InnoDB ein klein wening anders (Index Clusterd Table und Primary Key in allen Secondary Keys) als PostgreSQL (Heap Table, Indices mit Row Pointer (&lt;code&gt;ctid&lt;/code&gt;)).&lt;/p&gt;
&lt;p&gt;Aber das ist eigentlich nicht das Thema. Sofort im Anschluss kam er nämlich mit der Frage, ob das AusNULLen von Spalten vom Typ &lt;code&gt;DOUBLE&lt;/code&gt; (8 byte, in PostgreSQL-Sprech &lt;code&gt;DOUBLE PRECISION&lt;/code&gt;) auch Platzeinsparungen brächte oder ob er die Spalten lieber gleich droppen solle. Meine erste reflexartige Antwort bei &lt;code&gt;DOUBLE&lt;/code&gt; war: &lt;code&gt;NULL&lt;/code&gt; bringt was, gefolgt von &lt;code&gt;OPTIMIZE TABLE&lt;/code&gt; (in PostgreSQL-Sprech &lt;code&gt;VACUUM FULL&lt;/code&gt;). Der zweite Gedanke war aber, &lt;code&gt;DOUBLE&lt;/code&gt; ist ein Datentyp fixer länger, gilt das mit &lt;code&gt;NULL&lt;/code&gt; da auch oder nur bei Datentypen mit variabler Länge? Vorsicht ist die Mutter der Porzelankiste! Liebe zuerst mal das Manual konsultieren&amp;hellip;&lt;/p&gt;
&lt;p&gt;Und dort steht (&lt;a href="https://dev.mysql.com/doc/refman/8.4/en/data-size.html" target="_blank"&gt;Quelle&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Declare columns to be NOT NULL if possible. It makes SQL operations faster, by enabling better use of indexes and eliminating overhead for testing whether each value is NULL. You also save some storage space, one bit per column. If you really need NULL values in your tables, use them. Just avoid the default setting that allows NULL values in every column.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;und (&lt;a href="https://dev.mysql.com/doc/refman/8.4/en/innodb-row-format.html" target="_blank"&gt;Quelle&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The variable-length part of the record header contains a bit vector for indicating NULL columns. &amp;hellip; Columns that are NULL do not occupy space …&lt;/p&gt;&lt;/blockquote&gt;</description></item><item><title>Jemand löscht meine Shared Memory Segmente!</title><link>https://www.fromdual.com/de/blog/geloeschte-postgresql-shared-memory-segmente/</link><pubDate>Sat, 07 Feb 2026 19:58:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/geloeschte-postgresql-shared-memory-segmente/</guid><description>&lt;p&gt;Wenn wir mit PostgreSQL unter unserem &lt;a href="https://www.fromdual.com/myenv/"&gt;myEnv&lt;/a&gt; arbeiten, kriegen wir regelmässig Shared Memory Segment Fehler. Beispiel:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;psql: error: connection to server on socket &amp;#34;/tmp/.s.PGSQL.5433&amp;#34; failed:
FATAL: could not open shared memory segment &amp;#34;/PostgreSQL.4220847662&amp;#34;:
No such file or directory
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;oder wir sehen ähnliche Meldungen im PostgreSQL Error Log:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ERROR: could not open shared memory segment &amp;#34;/PostgreSQL.4220847662&amp;#34;:
No such file or directory
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Weil ich ein MariaDB/MySQL Admin bin, kenne ich mich nicht so gut mit Shared Memory Problemen aus (MariaDB/MySQL arbeitet nicht mit Shared Memory). Zum Glück hat uns eine Suche im Internet auf eine Fährte geführt (&lt;a href="https://www.postgresql.org/message-id/56A52018.1030001%40gmx.net" target="_blank" title="Re: systemd deletes shared memory segment in /dev/shm/Postgresql.NNNNNN"&gt;Quelle&lt;/a&gt;). Dort wird vermerkt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The documentation of systemd states that this only happens for
non-system users. Can you check whether your &amp;ldquo;postgres&amp;rdquo; user (or
whatever you are using) is a system user?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="linux-system-user"&gt;Linux System User&lt;/h2&gt;
&lt;p&gt;Zuerst musste ich mal herausfinden was ein System User unter Linux überhaupt ist. Eine Antwort habe ich hier gefunden: &lt;a href="https://unix.stackexchange.com/questions/80277/whats-the-difference-between-a-normal-user-and-a-system-user" target="_blank"&gt;What&amp;rsquo;s the difference between a normal user and a system user?&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;That is not a technical difference but an organizational decision. E.g. it makes sense to show normal users in a login dialog (so that you can click them instead of having to type the user name) but it wouldn&amp;rsquo;t to show system accounts (the UIDs under which daemons and other automatic processes run) there.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Der LSB Standard meint dazu: &lt;a href="https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/uidrange.html" target="_blank"&gt;User ID Ranges&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The system User IDs from 0 to 99 should be statically allocated by the system, and shall not be created by applications.&lt;br&gt;
The system User IDs from 100 to 499 should be reserved for dynamic allocation by system administrators and post install scripts using useradd.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Auf meinem Ubuntu System sieht das wie folgt aus:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ grep SYS_ /etc/login.defs
#SYS_UID_MIN 100
#SYS_UID_MAX 999
#SYS_GID_MIN 100
#SYS_GID_MAX 999
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Für den PostgreSQL User würde das ja auch stimmen:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ id postgres
uid=130(postgres) gid=142(postgres) …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>CSV Dateien in die Datenbank laden</title><link>https://www.fromdual.com/de/blog/csv-dateien-in-die-datenbank-laden/</link><pubDate>Fri, 06 Feb 2026 17:12:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/csv-dateien-in-die-datenbank-laden/</guid><description>&lt;p&gt;Kürzlich wollte ich für eine persönliche kleine Spielerei die Wohnorte der Vereinsmitlieder meines Vereins auf einer Karte darstellen (&lt;a href="https://www.shinguz.ch/computer/gis/igoc-mitglieder/" target="_blank"&gt;IGOC Mitglieder&lt;/a&gt;). Die Adressen der Vereinsmitglieder waren mir bekannt. Nicht aber die Koordinaten der Wohnorte.&lt;/p&gt;
&lt;p&gt;Also machte ich mich auf die Suche nach den Koordinaten und wurde beim Bundesamt für Landestopografie (&lt;a href="https://www.swisstopo.admin.ch/de" target="_blank"&gt;swisstopo&lt;/a&gt;) fündig.&lt;/p&gt;
&lt;p&gt;Die Daten werden dort als CSV Datei zur Verfügung gestellt. Details hier: &lt;a href="https://www.shinguz.ch/computer/gis/schweizer-ortschafts-koordinaten/" target="_blank"&gt;Schweizer Ortschafts-Koordinaten&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Wie lädt man jetzt diese Daten in eine Datenbank?&lt;/p&gt;
&lt;h2 id="laden-der-daten-mit-mariadbmysql"&gt;Laden der Daten mit MariaDB/MySQL&lt;/h2&gt;
&lt;p&gt;MariaDB und MySQL haben dafür den Befehl &lt;code&gt;LOAD DATA INFILE&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SQL&amp;gt; DROP TABLE IF EXISTS wgs84;

SQL&amp;gt; -- SET GLOBAL local_infile = ON; -- Only needed with MySQL

SQL&amp;gt; CREATE TABLE wgs84 (
 ortschaftsname VARCHAR(32)
, plz4 SMALLINT
, zusatzziffer SMALLINT
, zip_id SMALLINT UNSIGNED
, gemeindename VARCHAR(32)
, bfs_nr SMALLINT
, kantonskuerzel CHAR(2)
, adressenanteil varchar(8)
, e DOUBLE
, n DOUBLE
, sprache VARCHAR(8)
, validity VARCHAR(12)
);

SQL&amp;gt; -- TRUNCATE TABLE wgs84;

SQL&amp;gt; LOAD DATA LOCAL INFILE &amp;#39;/tmp/AMTOVZ_CSV_WGS84/AMTOVZ_CSV_WGS84.csv&amp;#39;
INTO TABLE wgs84
FIELDS TERMINATED BY &amp;#39;;&amp;#39;
LINES TERMINATED BY &amp;#39;\r\n&amp;#39;
IGNORE 1 LINES
;
Query OK, 5713 rows affected
Records: 5713 Deleted: 0 Skipped: 0 Warnings: 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Anschliessend kann man die Daten in der Datenbank abfragen:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SQL&amp;gt; SELECT * FROM wgs84 ORDER BY ortschaftsname LIMIT 5;
+----------------+------+--------------+--------+--------------+--------+----------------+----------------+-------------------+--------------------+---------+------------+
| ortschaftsname | plz4 | zusatzziffer | zip_id | gemeindename | bfs_nr | kantonskuerzel | adressenanteil | e | n | sprache | validity |
+----------------+------+--------------+--------+--------------+--------+----------------+----------------+-------------------+--------------------+---------+------------+
| Aadorf | 8355 | 0 | 4672 | Aadorf | 4551 | TG | …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Attribute Promotion und Demotion im MariaDB Galera Cluster</title><link>https://www.fromdual.com/de/blog/attribute-promotion-und-demotion-im-mariadb-galera-cluster/</link><pubDate>Fri, 28 Nov 2025 15:32:49 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/attribute-promotion-und-demotion-im-mariadb-galera-cluster/</guid><description>&lt;p&gt;In der MariaDB Master/Slave Replikation gibt es ein Feature welches sich &lt;a href="https://mariadb.com/docs/server/ha-and-performance/standard-replication/replication-when-the-primary-and-replica-have-different-table-definitions" target="_blank"&gt;Attribute Promotion/Demotion&lt;/a&gt; nennt.&lt;/p&gt;
&lt;p&gt;Das kann man in etwa übersetzten mit Spalten Erweiterung/Einschränkung.&lt;/p&gt;
&lt;p&gt;Einfach gesagt geht es darum, wie sich der Slave verhält oder verhalten soll, wenn Master und Slave unterschiedliche Spalten-Definitionen oder gar eine unterschiedliche Anzahl von Spalten oder eine Unterschiedliche Reihenfolge der Spalten aufweisen.&lt;/p&gt;
&lt;h2 id="use-case-des-kunden"&gt;Use case des Kunden&lt;/h2&gt;
&lt;p&gt;Diese Woche haben wir mit einem Kunden den Fall diskutiert, wie er ein Rolling-Schema-Upgrade (RSU) in einem Galera Cluster ausführen könnte.&lt;/p&gt;
&lt;p&gt;Bei früheren Schema-Änderungen hat er immer Probleme gekriegt was bis zum Totalausfall des Clusters für mehrere Stunden geführt hat.&lt;/p&gt;
&lt;p&gt;Der Kunde meint, dass niemals Spalten gelöscht und neue Spalten immer nur am Ende einer Tabelle hinzugefügt werden.&lt;/p&gt;
&lt;p&gt;Und das NICHT sichergestellt werden kann, dass wärend des Rolling-Schema-Upgrades keine schreibenden Verbindungen mehr existieren.&lt;/p&gt;
&lt;p&gt;Verwendet wird das PHP ORM-Framework &lt;a href="https://www.doctrine-project.org/" target="_blank"&gt;Doctrine&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="was-sagt-die-mariadb-dokumentation-dazu"&gt;Was sagt die MariaDB Dokumentation dazu?&lt;/h2&gt;
&lt;p&gt;Das Studium der MariaDB Dokumentation führte zu keinem schlüssigen Resultat ob ein Rolling-Schema-Upgrade im laufenden Galera Cluster Betrieb MIT Änderungen (DML Statements) auf dem zu ändernden Schema (UND den zu ändernden Tabellen) unterstützt wird oder nicht und somit funktionieren sollte oder nicht.&lt;/p&gt;
&lt;p&gt;Quelle: &lt;a href="https://mariadb.com/docs/galera-cluster/galera-management/general-operations/performing-schema-upgrades-in-galera-cluster#rolling-schema-upgrade-rsu" target="_blank"&gt;Rolling Schema Upgrade (RSU)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Beim Replizieren mit unterschiedlichen Tabellenstrukturen steht dazu nur Allgemeines zur Replikation aber nichts Spezifisches zu Galera (ob es geht oder nicht):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Tables on the replica and the primary do not need to have the same definition in order for replication to take place. There can be differing numbers of columns, or differing data definitions and, in certain cases, replication can still proceed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Quelle: &lt;a href="https://mariadb.com/docs/server/ha-and-performance/standard-replication/replication-when-the-primary-and-replica-have-different-table-definitions" target="_blank"&gt;Replication When the Primary and Replica Have Different Table Definitions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Für das Attribute Promotion/Demotion Feature gibt es einen speziellen MariaDB Server Konfigurationsparameter der das verhalten steuert: …&lt;/p&gt;</description></item><item><title>MariaDB Honeypot</title><link>https://www.fromdual.com/de/blog/mariadb-honeypot/</link><pubDate>Tue, 04 Mar 2025 16:27:44 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadb-honeypot/</guid><description>&lt;p&gt;Bei unseren &lt;a href="https://www.fromdual.com/de/mysql-mariadb-fuer-fortgeschrittene-schulung"&gt;MariaDB für Fortgeschrittene Schulungen&lt;/a&gt;, welche wir in etwa alle zwei Monate halten, verwenden wir Maschinen, welche mit einer öffentlichen IP-Adresse direkt dem Internet ausgesetzt sind.
&lt;strong&gt;Achtung&lt;/strong&gt;: Man sollte NIE eine Datenbank ungeschützt direkt dem Internet aussetzen!
Typischerweise dauert es keine 72 Stunden (3 Tage) bis wir ersten Zugriffsversuchen von aussen ausgesetzt sind.&lt;/p&gt;
&lt;p&gt;Dies sieht dann im MariaDB Error Log in etwa wie folgt aus:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Warning] Aborted connection 22939 to db: 'unconnected' user: 'unauthenticated' host: '118.193.58.125' (This connection closed normally without authentication)
[Warning] Aborted connection 22940 to db: 'unconnected' user: 'unauthenticated' host: '118.193.58.125' (This connection closed normally without authentication)
[Warning] Access denied for user ''@'118.193.58.125' (using password: NO)
[Warning] Access denied for user 'root'@'118.193.58.125' (using password: YES)
[Warning] Access denied for user 'root'@'118.193.58.125' (using password: YES)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zuerst wird einmal probiert, ob da eine Datenbank lauscht und wie diese antwortet. Anschliessend wird auf verschiedene Arten versucht in die Datenbank einzudringen. So wie es aussieht, gibt es verschiedene Beprobungs- und Angriffsmuster. Der Anonymous User (&lt;code&gt;''@'%'&lt;/code&gt;) und &lt;code&gt;'root'@'%'&lt;/code&gt; werden mit und ohne Passwort geprüft.
Ob noch weitere User probiert werden, muss sich noch über einen längeren Beobachtungszeitraum zeigen.&lt;/p&gt;
&lt;p&gt;Und so sieht das aus Sicht des MariaDB General Query Logs aus:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;287793 Connect root@196.251.91.77 on using TCP/IP
287793 Connect Access denied for user 'root'@'196.251.91.77' (using password: NO)
287794 Connect root@196.251.91.77 on using TCP/IP
287794 Connect Access denied for user 'root'@'196.251.91.77' (using password: YES)
287796 Connect root@196.251.91.77 on using TCP/IP
287796 Connect Access denied for user 'root'@'196.251.91.77' (using password: YES)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="vorbereiten-des-honeypots"&gt;Vorbereiten des Honeypots&lt;/h2&gt;
&lt;p&gt;Nach Beendigung der Schulung brauchen wir die Maschinen nicht mehr, sie werden abgebaut. Daher hat es mich zum Schluss gereizt, …&lt;/p&gt;</description></item><item><title>Wie verhält sich Galera Cluster mit vielen Knoten?</title><link>https://www.fromdual.com/de/blog/wie-verhaelt-sich-galera-cluster-mit-vielen-knoten/</link><pubDate>Fri, 24 Jan 2025 17:29:33 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/wie-verhaelt-sich-galera-cluster-mit-vielen-knoten/</guid><description>&lt;p&gt;Kürzlich hatte ich die Gelegenheit ganz viele Linux Systeme (VMs mit Rocky Linux 9) aus einer unserer regelmässig stattfindenden &lt;a href="https://www.fromdual.com/de/galera-cluster-fuer-mysql-mariadb-schulung" title="Übersicht über die FromDual Galera Cluster Schulung"&gt;Galera Cluster Schulungen&lt;/a&gt; eine Woche lang ganz für mich alleine zur freien Verfügung zu haben. Und auf den Maschinen war auch schon ein MariaDB 11.4.4 mit Galera Cluster installiert.&lt;/p&gt;
&lt;p&gt;Da ich schon lange mal ausprobieren wollte, wie sich ein Galera Cluster mit zunehmender Anzahl Knoten verhält, war jetzt die Gelegenheit dies mal auszuprobieren.&lt;/p&gt;
&lt;p&gt;Die folgenden Fragestellung sollten beantwortet werden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wie verhält sich der Durchsatz eines Galera Clusters in Abhängigkeit der Anzahl Galera-Knoten?&lt;/li&gt;
&lt;li&gt;Mit welcher Konfiguration erhalten wir den grössten Durchsatz?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Insgesamt wurde mit 5 verschiedenen Versuchs-Parameter experimentiert:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anzahl Galera Knoten.&lt;/li&gt;
&lt;li&gt;Anzahl Client Maschinen (= Instanzen).&lt;/li&gt;
&lt;li&gt;Anzahl Threads pro Client (&lt;code&gt;--threads=&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Anzahl Galera Threads (&lt;code&gt;wsrep_slave_threads&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Laufzeit der Tests. Dieser Parameter wurde variiert weil einige Tests während des Laufs abgebrochen sind. Möglicherweise kann mit einer kleineren Rate (&lt;code&gt;--rate&lt;/code&gt;) im Lasttest dieser Parameter eliminiert werden. Wie sich zeigte, hatte er sehr wohl einen Einfluss auf das Resultat bzw. den gemessenen Durchsatz (z.B. Test 4b und 5 bzw. 18 und 19).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Insgesamt wurde 35 verschiedene Tests gefahren. Siehe &lt;a href="https://www.fromdual.com/de/blog/wie-verhaelt-sich-galera-cluster-mit-vielen-knoten/#rohdaten"&gt;Rohdaten&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="durchsatz-in-abhängigkeit-der-anzahl-galera-knoten"&gt;Durchsatz in Abhängigkeit der Anzahl Galera Knoten&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://www.fromdual.com/sites/default/files/galera_node_scaling_graph1.png" alt="graph"&gt;&lt;/p&gt;
&lt;table&gt;
&lt;caption&gt;Throughput related to # nodes&lt;/caption&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Test&lt;/th&gt;
&lt;th&gt;# gal nodes&lt;/th&gt;
&lt;th&gt;# threads/client&lt;/th&gt;
&lt;th&gt;runtime [s]&lt;/th&gt;
&lt;th&gt;tps&lt;/th&gt;
&lt;th&gt;runtime [s]&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;596.3&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;567.8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;531.9&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;495.2&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;492.2&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;502.9&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;459.5&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;458.6&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;429.2&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Throughput related to &lt;br&gt;# nodes&lt;/p&gt;
&lt;p&gt;Der Durchsatz im Galera Cluster nahm leicht von 600 tps auf 430 tps ab (28%) wenn die Anzahl Knoten von 1 auf 9 erhöht wurde.&lt;/p&gt;
&lt;h2 id="durchsatz-in-abhängigkeit-der-anzahl-verbindungen"&gt;Durchsatz in Abhängigkeit der Anzahl Verbindungen&lt;/h2&gt;
&lt;p&gt;Hier wurde vor allem mit der Anzahl der Clients und der Threads pro Client variiert. Bei 30 - 40 Connections scheint in diesem Setup das Optimum zu liegen. Das variieren …&lt;/p&gt;</description></item><item><title>Spielen mit MariaDB Vector für erste KI-Tests</title><link>https://www.fromdual.com/de/blog/spielen-mit-mariadb-vector-fuer-erste-ki-tests/</link><pubDate>Tue, 27 Aug 2024 21:50:13 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/spielen-mit-mariadb-vector-fuer-erste-ki-tests/</guid><description>&lt;p&gt;Künstliche Intelligenz (KI) und Vektor-Datenbanken sind heute in aller Munde. Da MariaDB demnächst auch mit Vektor-Datenbank-Funktionalität auf den Markt kommt, habe ich es als Datenbank-Berater für an der Zeit befunden mich etwas mit dem Thema zu beschäftigen, damit ich wenigstens einen Hauch Ahnung davon habe um was es geht&amp;hellip;&lt;/p&gt;
&lt;p&gt;Da ich nicht so der Theoretiker bin sondern eher gerne etwas praktisches mache, habe ich einen kleinen &amp;ldquo;KI&amp;rdquo; Prototypen gebaut, den jeder auf seinem Laptop (ohne GPU) sehr schnell und einfach nachbauen kann&amp;hellip;&lt;/p&gt;
&lt;p&gt;Ich habe mir auch erlaubt die Graphen aus dem Vortrag der MariaDB Foundation zu klauen (siehe Quellen am Ende).&lt;/p&gt;
&lt;h2 id="herunterladen-der-mariadb-datenbank-mit-vektor-funktionalität"&gt;Herunterladen der MariaDB Datenbank mit Vektor Funktionalität&lt;/h2&gt;
&lt;p&gt;Noch gib es keine MariaDB Pakete mit Vektor-Funktionalität, aber der &lt;a href="https://mariadb.org/download/?t=mariadb&amp;amp;p=mariadb&amp;amp;r=11.6.0+Vector&amp;amp;os=source" target="_blank" title="MariaDB Vector Quellcode"&gt;Quellcode&lt;/a&gt; ist bereits verfügbar. Also baut man sich die Binaries halt schnell selber. Dies hat auf meiner alten Kiste eine knappe Stunde gedauert. Wenn die Binaries gebaut sind, kann man sich einen Tarball draus machen:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# tar xf mariadb-11.6.0_vector.tar.gz
# cd mariadb-11.6.0_vector/
# cmake .
# make
# make package
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Anschliessend muss die MariaDB Datenbank nur noch gestartet werden.&lt;/p&gt;
&lt;h2 id="das-modell"&gt;Das Modell&lt;/h2&gt;
&lt;p&gt;Um das Konzept des Tokenisierens zu zeigen habe ich mir vorgenommen ein KI für URLs zu bauen und um das Konzept der verschiedenen Modelle und deren Verbesserungspotenzial zu zeigen habe ich eine ganz dummes Modell in PHP gebaut, welches ganz einfach und simple eine URL zerlegt.&lt;/p&gt;
&lt;p&gt;Die Frage, die mit diesem Modell beantwortet werden können sollte lautet: &amp;ldquo;Gib mir ähnliche URLs zur folgenden URL.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Die dazu gehörende Tabelle sieht wie folgt aus:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DROP TABLE IF EXISTS `urls`;
-- TRUNCATE TABLE is NOT sufficient!!!
CREATE TABLE `urls` (
 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
, `url` varchar(1024) DEFAULT NULL
, `title` varchar(2000) DEFAULT NULL
, `embedding` blob NOT NULL
, VECTOR KEY `embedding` (`embedding`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Das Modell &lt;code&gt;fromdual_llm_v1&lt;/code&gt; kann man &lt;a href="https://www.fromdual.com/sites/default/files/fromdual_llm_v1.phpx"&gt;hier&lt;/a&gt; herunter laden.&lt;/p&gt;
&lt;p&gt;Wie …&lt;/p&gt;</description></item><item><title>Partieller physischer Datenbank-Restore für MariaDB und MySQL</title><link>https://www.fromdual.com/de/blog/partieller-physischer-datenbank-restore-fuer-mariadb-und-mysql/</link><pubDate>Mon, 01 Jul 2024 16:52:00 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/partieller-physischer-datenbank-restore-fuer-mariadb-und-mysql/</guid><description>&lt;h2 id="um-was-geht-es"&gt;Um was geht es?&lt;/h2&gt;
&lt;p&gt;Bei der Beschreibung von Backup- und /Restore-Szenarien wird in der Regel immer von einem vollständigen Backup (full backup) und einem vollständigen Restore (full restore) der Datenbankinstanz (&lt;code&gt;mariadbd&lt;/code&gt;/&lt;code&gt;mysqld&lt;/code&gt;) ausgegangen. Das bedeutet, dass die gesamte Datenbankinstanz inklusive aller Datenbanken (Schemata) gesichert und wiederhergestellt wird.&lt;/p&gt;
&lt;p&gt;In der Praxis sieht die Situation jedoch oft anders aus: Es soll nicht eine ganze Datenbankinstanz wiederhergestellt werden, sondern nur einzelne Datenbanken oder gar einzelne Tabellen, weil nur diese kaputt gegangen sind.&lt;/p&gt;
&lt;p&gt;Dies kann in vielen Fällen recht einfach mit den Tools &lt;code&gt;mariadb-dump&lt;/code&gt;/&lt;code&gt;mariadb&lt;/code&gt; oder &lt;code&gt;mysqldump&lt;/code&gt;/&lt;code&gt;mysql&lt;/code&gt; (logisches Backup) bewerkstelligt werden. Wenn die Datenbank oder die Tabelle jedoch sehr gross ist, wird die Wiederherstellung nicht in angemessener Zeit (einige Minuten bis wenige Stunden) abgeschlossen sein.&lt;/p&gt;
&lt;p&gt;Genau in diesem Fall kommt der sogenannte partielle physische Restore ins Spiel. Partiell steht für eine oder mehrere Tabellen (oder eine ganze Datenbank), physisch für: Es werden nicht einzelne SQL-Anweisungen ausgeführt, sondern die Datenfiles werden physisch zurückgespielt. In diesem Szenario können, eine entsprechende Infrastruktur vorausgesetzt, sehr schnell sehr grosse Datenbestände zurückgespielt werden. Faustregel: Auf fetter Hardware: 1 Tbyte pro Stunde. Auf diese Weise können Datenbank-Restores sehr schnell durchgeführt werden.&lt;/p&gt;
&lt;p&gt;MariaDB und MySQL bieten diese Funktionalität bereits von Haus aus an. Für einzelne Tabellen ist der Mechanismus einigermassen praktikabel (siehe &lt;a href="https://www.fromdual.com/xtrabackup_in_a_nutshell#pb_restore"&gt;Restore partial Backup&lt;/a&gt;). Für ganze Datenbanken mit möglicherweise Dutzenden oder Hunderten von Tabellen ist der Bord-Mechanismus jedoch sehr umständlich und fehleranfällig.&lt;/p&gt;
&lt;h2 id="anwendungsfall"&gt;Anwendungsfall&lt;/h2&gt;
&lt;p&gt;Genau hier kommt die neue Funktionalität des &lt;a href="https://www.fromdual.com/fromdual-backup-manager-2.3.0-has-been-released"&gt;FromDual Backup and Recovery Managers (&lt;code&gt;brman&lt;/code&gt;) v2.3.0&lt;/a&gt; ins Spiel: Er vereinfacht den partiellen physischen Datenbank-Restore erheblich.&lt;/p&gt;
&lt;p&gt;Ein zweites Szenario, in welchem diese neue Funktionalität ebenfalls genutzt werden kann, ist …&lt;/p&gt;</description></item><item><title>Verkleinern des InnoDB-System-Tablespaces</title><link>https://www.fromdual.com/de/blog/verkleinern-des-innodb-system-tablespaces/</link><pubDate>Wed, 12 Jun 2024 15:27:10 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/verkleinern-des-innodb-system-tablespaces/</guid><description>&lt;p&gt;Ein Feature, das mich im neuen MariaDB 11.4 LTS Release wirklich begeistert hat, ist das Verkleinern bzw. Schrumpfen des System-Tablespaces (&lt;code&gt;ibdata1&lt;/code&gt;). Auf dieses Feature habe ich seit ca. 2006 sehnsüchtig gewartet und nun ist es mit MariaDB 11.4 endlich gekommen.
Eigentlich gibt es dieses Feature schon seit dem &lt;a href="https://www.fromdual.com/enterprise-support-for-mariadb-and-mysql#mariadb-eol"&gt;MariaDB 11.2 IR&lt;/a&gt; (Juni 2023).&lt;/p&gt;
&lt;p&gt;Leider ist die Ankündigung dieses Features etwas zu kurz gekommen. In den MariaDB Release Notes heisst es lapidar:&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote&gt;
&lt;p&gt;The InnoDB system tablespace is now shrunk by reclaiming unused space at startup (&lt;a href="https://jira.mariadb.org/browse/MDEV-14795" target="_blank"&gt;MDEV-14795&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Aus den &lt;a href="https://mariadb.com/kb/en/mariadb-11-2-0-release-notes/"&gt;MariaDB 11.2.0 Release Notes&lt;/a&gt;.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Die Gründe, warum dieses Datei ins Unermessliche wachsen kann, sind eigentlich schon lange bekannt und die Massnahmen dagegen sind auch klar (siehe &lt;a href="https://www.fromdual.com/de/blog/verkleinern-des-innodb-system-tablespaces/#literature"&gt;Literatur&lt;/a&gt;). Nur sehen wir immer wieder MariaDB-Anwender draussen im Feld, die das Problem nicht oder zu spät auf dem Schirm hatten und nun mit einer viel zu grossen &lt;code&gt;ibdata1&lt;/code&gt;-Datei da stehen&amp;hellip;&lt;/p&gt;
&lt;h2 id="wie-kann-das-problem-provoziert-werden"&gt;Wie kann das Problem provoziert werden?&lt;/h2&gt;
&lt;p&gt;Das Problem kann provoziert werden, indem man eine Tabelle im System-Tablespace anlegt:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; SET global innodb_file_per_table = off;

SQL&amp;gt; CREATE TABLE `test` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `data` varchar(128) DEFAULT NULL,
 `ts` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
 PRIMARY KEY (`id`)
) ENGINE=InnoDB;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;und diese dann mit Daten befüllt:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; INSERT INTO test
SELECT NULL, 'Some data to provoke huge data growth in system tablespace', NOW()
;

SQL&amp;gt; INSERT INTO test
SELECT NULL, 'Some data to provoke huge data growth in system tablespace', NOW()
 FROM test LIMIT 1000000
;

...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Während die Tabelle gefüllt wird, kann man auf dem Dateisystem beobachten, wie die Datei &lt;code&gt;ibdata1&lt;/code&gt; anschwillt:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ while [ 1 ] ; do ll -h ibdata1 ; sleep 5 ; done
-rw-rw---- 1 mysql mysql 12M Jun 2 13:57 ibdata1
-rw-rw---- 1 mysql mysql 76M Jun 12 13:57 ibdata1
-rw-rw---- 1 mysql mysql 76M Jun 12 13:57 ibdata1
-rw-rw---- 1 mysql mysql 140M Jun 12 13:58 ibdata1
-rw-rw---- 1 mysql mysql 204M Jun 12 13:58 ibdata1 …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>dbstat für MariaDB nach einem Monat produktiver Nutzung</title><link>https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/</link><pubDate>Thu, 25 Apr 2024 12:39:58 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/</guid><description>&lt;h2 id="inhaltsverzeichnis"&gt;Inhaltsverzeichnis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/#retrospect"&gt;Rückblick&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/#one-month-later"&gt;Einen Monat später&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/#table-size"&gt;Grösse der Tabellen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/#processlist"&gt;Prozessliste&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/#global-variables"&gt;Globale Variablen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/#locking"&gt;Metadata Lock und InnoDB Transaction Lock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-nach-einem-monat-produktiver-nutzung/#global-status"&gt;Globaler Status&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="rückblick"&gt;Rückblick&lt;/h2&gt;
&lt;p&gt;Nachdem wir vor gut 5 Wochen &lt;a href="https://www.fromdual.com/dbstat-fuer-mariadb-und-mysql"&gt;&lt;code&gt;dbstat&lt;/code&gt; für MariaDB (und MySQL)&lt;/a&gt; vorgestellt haben, haben wir es natürlich auch auf unseren Systemen ausgerollt um das Verhalten im täglichen Einsatz zu testen (&lt;a href="https://en.wikipedia.org/wiki/Eating_your_own_dog_food" target="_blank" title="Eating your own dog food auf Wikipedia"&gt;eat your own dog food&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Das ging soweit ganz gut, bis wir auf unserem MariaDB aktiv/passiv Master/Master Replikationscluster auf die Idee kamen, &lt;code&gt;dbstat&lt;/code&gt; auch auf dem passiven &lt;code&gt;dbstat&lt;/code&gt; Node zu aktivieren (eine ähnliche Situation hätte man auch bei einem Galera Cluster). Dabei stellten wir fest, dass das Design von &lt;code&gt;dbstat&lt;/code&gt; noch Potential hatte. Nachdem dieses Problem behoben war (v0.0.2 und v0.0.3) und auch das Problem gelöst war, wie man Events auf Master UND Slave aktivieren kann (&lt;a href="https://jira.mariadb.org/browse/MDEV-33782" target="_blank"&gt;MDEV-33782: Event is always disabled on slave&lt;/a&gt;), schien auf den ersten Blick alles in Ordnung. Leider haben wir bei der Korrektur nicht bedacht, dass auch die Daten hätten angepasst werden müssen. Dies hatte zur Folge, dass unsere Replikation über die Osterfeiertage zum Stillstand kam, was dann beim Aufholen zu einem weiteren Problem führte (&lt;a href="https://jira.mariadb.org/browse/MDEV-33923" target="_blank"&gt;MDEV-33923: MariaDB parallel replication causes Foreign Key errors&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Nachdem auch dieser kleine Zwischenfall behoben war lief &lt;code&gt;dbstat&lt;/code&gt; auf unserem Master/Master Replikationscluster seitdem einwandfrei&amp;hellip; Das Produkt &lt;code&gt;dbstat&lt;/code&gt; ist Open Source (GPLv2) und kann von &lt;a href="https://github.com/FromDual/dbstat" target="_blank" title="dbstat auf GitHub"&gt;GitHub heruntergeladen&lt;/a&gt; werden.&lt;/p&gt;
&lt;h2 id="einen-monat-später"&gt;Einen Monat später&lt;/h2&gt;
&lt;p&gt;Datenbanken sollten NICHT mit der Zeit wachsen sondern nur mit der Anzahl {Kunden, Produkte, etc.}, sobald das gewünschte Gleichgewicht (&lt;a href="https://www.merriam-webster.com/dictionary/steady state" target="_blank"&gt;steady state&lt;/a&gt;) erreicht ist. In unserer &lt;code&gt;dbstat&lt;/code&gt;-Installation haben wir diesen Wert auf 30 Tage gesetzt. Es wird also langsam an der Zeit, dass sich die Grösse von &lt;code&gt;dbstat&lt;/code&gt; stabilisiert und nicht weiter wächst&amp;hellip;&lt;/p&gt;
&lt;p&gt;Ausserdem wäre es spannend zu verstehen, welchen praktischen Nutzen &lt;code&gt;dbstat&lt;/code&gt; hat. Deshalb haben wir uns jetzt an die Arbeit gemacht und versuchen, die Ergebnisse von &lt;code&gt;dbstat&lt;/code&gt; auszuwerten.&lt;/p&gt;
&lt;p&gt;Hier zunächst noch …&lt;/p&gt;</description></item><item><title>MariaDBs parallele Replikation zum Aufholen</title><link>https://www.fromdual.com/de/blog/mariadbs-parallele-replikation-zum-aufholen/</link><pubDate>Mon, 08 Apr 2024 11:01:45 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadbs-parallele-replikation-zum-aufholen/</guid><description>&lt;p&gt;Aufgrund eines applikatorischen Fehlers ist unsere Replikation während 5 Tagen stehen geblieben (über Ostern). Nachdem das Problem gelöst war, sollte die Replikation aufholen, was sich als sehr zäh herausstellte. All die üblichen Tricks (&lt;code&gt;innodb_flush_log_at_trx_commit&lt;/code&gt;, &lt;code&gt;sync_binlog&lt;/code&gt;, etc.) wurden bereits ausgereizt. Also haben wir uns an der parallelen Replikation des MariaDB Servers versucht.&lt;/p&gt;
&lt;p&gt;Per default ist die parallel Replikation deaktiviert:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; SHOW GLOBAL VARIABLES LIKE '%parallel%';
+-------------------------------+------------+
| Variable_name | Value |
+-------------------------------+------------+
| slave_domain_parallel_threads | 0 |
| slave_parallel_max_queued | 131072 |
| slave_parallel_mode | optimistic |
| slave_parallel_threads | 0 |
| slave_parallel_workers | 0 |
+-------------------------------+------------+
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Durch setzen der Server Variablen &lt;code&gt;slave_parallel_threads&lt;/code&gt; wird die parallele Replikation aktiviert:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; SET GLOBAL slave_parallel_threads = 8;
ERROR 1198 (HY000): This operation cannot be performed as you have a running slave ''; run STOP SLAVE '' first
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dies muss aber bei gestoppter Replikation erfolgen:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; STOP SLAVE;
SQL&amp;gt; SET GLOBAL slave_parallel_threads = 8;
SQL&amp;gt; START SLAVE;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Anschliessend hat die Replikation etwas schneller aufgeholt. Da wir aber ungeduldig waren, haben wir versucht, das ganze noch schneller hin zu kriegen. Mit dem Befehl:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; SHOW SLAVE STATUS&amp;lt;br&amp;gt;G
...
Slave_SQL_Running_State: Waiting for room in worker thread event queue
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;haben wir die folgende Meldung gefunden. Man würde sie auch über den Befehl &lt;code&gt;SHOW PROCESSLIST&lt;/code&gt; sehen:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; SHOW PROCESSLIST;
+--------+-------------+- ... -+-----------+------+-----------------------------------------------+- ... -+
| Id | User | ... | Command | Time | State | ... |
+--------+-------------+- ... -+-----------+------+-----------------------------------------------+- …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>MariaDB Server aus den Quellen bauen</title><link>https://www.fromdual.com/de/blog/mariadb-server-aus-den-quellen-bauen/</link><pubDate>Thu, 04 Apr 2024 14:53:18 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadb-server-aus-den-quellen-bauen/</guid><description>&lt;p&gt;Kürzlich musste ich ein neues MariaDB Feature testen, welches auf unseren Wunsch entwickelt wurde (&lt;a href="https://jira.mariadb.org/browse/MDEV-33782" target="_blank"&gt;MDEV-33782&lt;/a&gt;). Um dieses Feature zu testen musste ich aber den MariaDB Server selber aus den Quellen bauen, was ich schon seit längerem nicht mehr gemacht habe. Also eine neue Herausforderung, insbesondere mit &lt;code&gt;CMake&lt;/code&gt;&amp;hellip;&lt;/p&gt;
&lt;p&gt;I habe hierzu die MariaDB Dokumentation &lt;a href="https://mariadb.com/kb/en/get-build-and-test-latest-mariadb-the-lazy-way/" target="_blank"&gt;Get, Build and Test Latest MariaDB the Lazy Way&lt;/a&gt; befolgt um den Server zu bauen.&lt;/p&gt;
&lt;p&gt;Auf Ubuntu 22.04 hat es bei mir, aus mir nicht bekannten Gründen, nicht funktioniert. Also habe ich mir einen Ubuntu 23.04 (Lunar Lobster) LXC Container geclont und darin den MariaDB Server gebaut.&lt;/p&gt;
&lt;p&gt;Damit das ganze funktioniert musste aber vorher noch im Container &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; durch die Paketquellen ergänzt werden:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;deb-src http://de.archive.ubuntu.com/ubuntu lunar main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu lunar-updates main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu lunar-security main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu lunar-backports main restricted universe multiverse
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dann wurde nach Vorgabe weiter verfahren:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;shell&amp;gt; apt install build-essential bison
shell&amp;gt; apt build-dep mariadb-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Der Entsprechende Branch wurde geclont:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;shell&amp;gt; # git clone https://github.com/andremralves/server.git mariadb-MDEV-33782
shell&amp;gt; # git branch --all
shell&amp;gt; git clone --branch MDEV-33782 --single-branch https://github.com/andremralves/server.git mariadb-MDEV-33782
shell&amp;gt; cd mariadb-MDEV-33782
shell&amp;gt; # git checkout 11.5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;und dann der Server gebaut. Dies hat auf meiner alten Maschine etwa 20 Minuten gedauert. &lt;code&gt;CMake&lt;/code&gt; ist noch auf einen Fehler gelaufen, welcher mit dem Nachinstallieren des entsprechenden Pakets gelöst wurde (&lt;a href="https://jira.mariadb.org/browse/MDEV-33815" target="_blank"&gt;MDEV-33815&lt;/a&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;shell&amp;gt; apt install libgnutls28-dev
shell&amp;gt; cmake . -DBUILD_CONFIG=mysql_release &amp;amp;&amp;amp; make -j8
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Die Tests wurden ausgeführt:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;shell&amp;gt; cd mysql-test
shell&amp;gt; ./mtr rpl.rpl_create_drop_event
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Und dann ein &lt;a href="https://mariadb.com/kb/en/creating-the-mariadb-binary-tarball/" target="_blank"&gt;Binary-Tarball …&lt;/a&gt;&lt;/p&gt;</description></item><item><title>MaxScale Konfigurations-Synchronisation</title><link>https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/</link><pubDate>Tue, 02 Apr 2024 17:43:29 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/</guid><description>&lt;h2 id="inhaltsverzeichnis"&gt;Inhaltsverzeichnis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#overview"&gt;Übersicht&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#preparations"&gt;Vorbereitungen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#activate-configuration-synchronization"&gt;MaxScale Konfigurations-Synchronisation aktivieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#change-parameter"&gt;MaxScale Parameter ändern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#add-new-slave"&gt;Neuer Slave hinzufügen und MaxScale bekannt machen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#remove-old-slave"&gt;Alter Slave entfernen und MaxScale bekannt machen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#how-is-configuration-synchronized"&gt;Wie wird die Konfiguration synchronisiert?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#what-happens-on-conflict"&gt;Was passiert im Konfliktfall?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#tests"&gt;Tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#deactivate-configuration-synchronization"&gt;MaxScale Konfigurations-Synchronisation wieder deaktivieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/maxscale-konfigurations-synchronisation/#literature"&gt;Literatur/Quellen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="übersicht"&gt;Übersicht&lt;/h2&gt;
&lt;p&gt;Ein Feature, welches ich beim Stöbern kürzlich entdecke habe, ist die MaxScale Konfigurations-Synchronisation Funktionalität.&lt;/p&gt;
&lt;p&gt;Es geht hier nicht primär um einen MariaDB Replikations-Cluster oder einen MariaDB Galera Cluster sondern um einen Cluster bestehend aus zwei oder mehreren MaxScale Knoten. Bzw. etwas genauer gesagt, den Austausch der Konfiguration unter diesen MaxScale Knoten.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.fromdual.com/sites/default/files/maxscale_config_sync.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Pon Suresh Pandian hat bereits 2022 einen &lt;a href="https://mariadb.com/resources/blog/mariadb-maxscale-6-0-native-clustering/" target="_blank"&gt;Blog-Artikel&lt;/a&gt; über dieses Feature geschrieben, der noch etwas ausführlicher ist, als dieser Beitrag hier.&lt;/p&gt;
&lt;h2 id="vorbereitungen"&gt;Vorbereitungen&lt;/h2&gt;
&lt;p&gt;Es wurde eine &lt;a href="https://linuxcontainers.org/incus/" target="_blank"&gt;Incus Container&lt;/a&gt;-Umgebung vorbereitet, bestehend aus 3 Datenbank-Containern (deb12-n1 (10.139.158.33), deb12-n2 (10.139.158.178), deb12-n3(10.139.158.39)) und 2 MaxScale Containern (deb12-mxs1 (10.139.158.66), deb12-mxs2(10.139.158.174)). Die Datenbankversion ist eine MariaDB 10.11.6 aus dem Debian-Repository und MaxScale wurde in der Version 22.08.5 von der MariaDB plc Website &lt;a href="https://mariadb.com/downloads/community/maxscale/" target="_blank"&gt;heruntergeladen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Die Datenbank-Konfiguration sieht für alle 3 Knoten analog aus:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#
# /etc/mysql/mariadb.conf.d/99-fromdual.cnf
#

[server]

server_id = 1
log_bin = deb12-n1-binlog
binlog_format = row
bind_address = *
proxy_protocol_networks = ::1, 10.139.158.0/24, localhost
gtid_strict_mode = on
log_slave_updates = on
skip_name_resolve = on
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Die MaxScale Knoten wurden wie im Artikel &lt;a href="https://www.fromdual.com/sharding-mit-mariadb-maxscale"&gt;Sharding mit MariaDB MaxScale&lt;/a&gt; beschrieben gebaut.&lt;/p&gt;
&lt;p&gt;Der &lt;code&gt;maxscale_admin&lt;/code&gt; User hat genau die selben Rechte wie dort beschrieben, der &lt;code&gt;maxscale_monitor&lt;/code&gt; User hat folgende Rechte erhalten:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RELOAD, SUPER, REPLICATION SLAVE, READ_ONLY ADMIN
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Siehe auch hier: &lt;a href="https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#required-grants" target="_blank"&gt;Required …&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Sharding mit MariaDB MaxScale</title><link>https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/</link><pubDate>Mon, 18 Mar 2024 16:08:04 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/</guid><description>&lt;h2 id="inhaltsverzeichnis"&gt;Inhaltsverzeichnis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#overview"&gt;Übersicht&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#preparation"&gt;Vorbereitung der Shards (MariaDB Datenbank Instanzen)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#creating-test-data"&gt;Testdaten erstellen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#creating-roles-and-users"&gt;Rollen und User erstellen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#maxscale-monitor-user"&gt;MaxScale Monitor User&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#mascale-admin-user"&gt;MaxScale Admin User&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#create-application-role-and-accounts"&gt;Applikationsrolle und Accounts erstellen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#proxy-protocol"&gt;Proxy Protokoll&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#maxscale-schema-router-configuration"&gt;MaxScale SchemaRouter Konfiguration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#starting-and-stopping-maxscale"&gt;Starten und Stoppen des MaxScale Load Balancers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#application-tests"&gt;Applikations-Tests&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#simple-applicationt-test"&gt;Einfache Applikations-Tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#new-command-show-shards"&gt;Neuer Befehl &lt;code&gt;show shards&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#general-tests"&gt;Allgemeinere Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#less-simple-tests"&gt;Weniger einfache Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#more-complex-appliation-tests"&gt;Komplexere Applikations-Tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#cross-shard-tests"&gt;Cross-Shard-Tests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#operation-of-a-sharding-system"&gt;Betrieb eines MaxScale Sharding-Systems&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#do-on-all-shards"&gt;Do-on-all-shards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#invalidate-database-map-cache"&gt;Invalidieren des Database Map Caches&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#changing-schema-router-variables-dynamically"&gt;Wie ändert man SchemaRouter Variablen dynamisch?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#adding-and-removing-a-tenant"&gt;Hinzufügen und Entfernen eines Mandanten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#moving-a-tenant"&gt;Umziehen eines Mandanten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#adding-or-removing-a-shard"&gt;Hinzufügen oder entfernen eines Shards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#adapting-configuration-files"&gt;Anpassen der Konfigurationsdateien&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#maintenance-work-on-a-shard"&gt;Wartungsarbeiten am Shard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#observation-of-a-sharding-system"&gt;Beobachtung / Observierung eines MariaDB MaxScale Sharding-Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/sharding-mit-mariadb-maxscale/#literature"&gt;Literatur / Quellen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="übersicht"&gt;Übersicht&lt;/h2&gt;
&lt;p&gt;Dieses Feature sollte mehr oder weniger mit MariaDB MaxScale 6.x.y, 22.08.x, 23.02.x, 23.08.x und 24.02.x funktionieren. Wir haben es mit der neusten MaxScale Version 23.08.05 getestet, da wir mit einer älteren Version auf Problem gestossen sind (&lt;a href="https://jira.mariadb.org/browse/MXS-5026" target="_blank"&gt;MXS-5026&lt;/a&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;shell&amp;gt; maxscale --version
MaxScale 23.08.5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als Datenbank Backend (Shards) haben wir MariaDB 10.11 verwendet.&lt;/p&gt;
&lt;p&gt;Weniger als ca 2% aller uns bekannten MariaDB Installationen sind das, was wir technische unter Multi-Mandanten-Systeme (multi-tenant systems) verstehen (jeder Mandant (Kunde) in einer eigenen Datenbank (auch Schema genannt)).&lt;/p&gt;
&lt;p&gt;Daher wird dieses MariaDB MaxScale Feature relativ selten genutzt und es besteht die erhöhte Gefahr auf Bugs zu stossen, auf welche vorher noch niemand gestossen ist!&lt;/p&gt;
&lt;p&gt;Dieses Feature wird bei MariadDB MaxScale: &lt;a href="https://mariadb.com/kb/en/mariadb-maxscale-2308-schemarouter/" target="_blank"&gt;SchemaRouter&lt;/a&gt; genannt und wird immer noch als Beta-Qualität deklariert (&lt;a href="https://jira.mariadb.org/browse/MXS-5025" target="_blank"&gt;MXS-5025&lt;/a&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;maxctrl&amp;gt; show module schemarouter
┌─────────────┬────────────────────────────────────────────────┐
│ Module │ schemarouter │
├─────────────┼────────────────────────────────────────────────┤
│ Type │ Router …&lt;/code&gt;&lt;/pre&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>dbstat für MariaDB (und MySQL)</title><link>https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/</link><pubDate>Thu, 14 Mar 2024 11:33:42 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/</guid><description>&lt;h2 id="inhaltsverzeichnis"&gt;Inhaltsverzeichnis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#features"&gt;Funktionalität&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#how-does-dbstat-work"&gt;Wie funktioniert &lt;code&gt;dbstat&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#installation"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#queries"&gt;Abfrage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#table_size"&gt;&lt;code&gt;table_size&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#processlist"&gt;&lt;code&gt;processlist&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#trx_and_lck"&gt;&lt;code&gt;trx_and_lck&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#metadata_lock"&gt;&lt;code&gt;metadata_lock&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#global_variables"&gt;&lt;code&gt;global_variables&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#global_status"&gt;&lt;code&gt;global_status&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#testing"&gt;Testen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/blog/dbstat-fuer-mariadb-und-mysql/#sources"&gt;Quellen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eine Idee, die ich schon lange ins Auge gefasst und jetzt endlich, dank eines Kunden, in Angriff genommen habe, ist &lt;code&gt;dbstat&lt;/code&gt; für MariaDB/MySQL. Die Idee ist angelehnt an &lt;code&gt;sar/sysstat&lt;/code&gt; von Sebastien Godard:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sar - Collect, report, or save system activity information.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;und Oracle Statspack:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Statspack is a performance tuning tool &amp;hellip; to quickly gather detailed analysis of the performance of that database instance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="funktionalität"&gt;Funktionalität&lt;/h2&gt;
&lt;p&gt;Zwar haben wir seit längerem das Performance Schema, aber dieses deckt einige Punkte nicht ab, die wir in der Praxis als Problem sehen und von Kunden gewünscht werden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Das Modul &lt;code&gt;table_size&lt;/code&gt; sammelt Daten über das Wachstum von Tabellen. Somit können Aussagen über das Wachstum einzelner Tabellen, Datenbanken, die zukünftigen &lt;a href="https://mariadb.com/kb/en/catalogs/" data-targe="_blank"&gt;MariaDB Kataloge&lt;/a&gt; oder die ganze Instanz gemacht werden. Dies ist interessant für Nutzer welche Multi-Mandanten-Systeme (multi-tenant) im Einsatz oder sonst wie mit unkontrolliertem Wachstum zu kämpfen haben.&lt;/li&gt;
&lt;li&gt;Das Modul &lt;code&gt;processlist&lt;/code&gt; macht in regelmässigen Abständen einen Snapshot der Prozessliste und speichert diese ab. Diese Informationen sind nützlich bei post-mortem Analysen wenn der Nutzer zu langsam war, seine Prozessliste wegzuspeichern oder um zu verstehen, wie sich ein Problem aufgebaut hat.&lt;/li&gt;
&lt;li&gt;Oft baut sich das Problem durch langlaufende Transaktion, Row Locks oder Metadata Locks auf. Diese werden durch die Module &lt;code&gt;trx_and_lck&lt;/code&gt; sowie &lt;code&gt;metadata_lock&lt;/code&gt; festgehalten und abgespeichert. Somit können wir Probleme sehen, die wir vorher gar nicht gespürt haben oder wird sehen nach dem Unglück, was zum Problem geführt hat (analog zu einem Fahrtenschreiber im Fahrzeug).&lt;/li&gt;
&lt;li&gt;Eine weitere Fragestellung, die wir in der Praxis manchmal antreffen, ist: Wann wurde welche Datenbankvariable geändert und wie sah sie vorher aus. Dies wird durch das Modul &lt;code&gt;global_variables&lt;/code&gt; abgedeckt. Wer oder warum die Variable geändert …&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Wir bauen uns ein Data Warehouse aus dem General Query Log</title><link>https://www.fromdual.com/de/blog/wir-bauen-uns-ein-data-warehouse-aus-dem-general-query-log/</link><pubDate>Tue, 30 Jan 2024 16:17:31 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/wir-bauen-uns-ein-data-warehouse-aus-dem-general-query-log/</guid><description>&lt;p&gt;Das Design eines Data Warehouses unterscheidet sich vom relationalen Design. Data Warehouses designt man oft nach dem Konzept des &lt;a href="https://de.wikipedia.org/wiki/Sternschema" target="_blank" title="Star Schema"&gt;Star Schemas&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Üblicherweise zäumt man beim Bau eines Data Warehouses das Pferd von hinten auf:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Welche Fragen soll mein Data Warehouse beantworten können?&lt;/li&gt;
&lt;li&gt;Wie muss ich mein Modell designen damit sich meine Fragen einfach beantworten lassen?&lt;/li&gt;
&lt;li&gt;Woher kriege ich die Daten um das Modell zu befüllen?&lt;/li&gt;
&lt;li&gt;Wie befülle ich mein Model mit den Daten?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zu Übungszwecken sind wir hier einer Fragestellung nachgegangen, welche ab und zu bei unserem Support auftaucht: Das System fängt plötzlich und unerwartet an sich ungewöhnlich zu verhalten, niemand hat was gemacht und niemand weiss warum. Beispiel bei einem Kunden letzte Woche: Um 15 Uhr fängt das System an instabil zu werden, wird anschliessend hart neu gestartet und stabilisiert sich dann ab 16 Uhr wieder&amp;hellip;&lt;/p&gt;
&lt;img src="https://www.fromdual.com/sites/default/files/gql_sudden_stop.png"&gt;
&lt;p&gt;Das einfachste wäre es, in einem solchen Fall, schnell mit dem Befehl &lt;code&gt;SHOW PROCESSLIST&lt;/code&gt; auf die Datenbank zu schauen und dann wird oft sofort klar, wo das Problem liegt. Aber oft vergessen das die Kunden oder sie sind nicht schnell genug. Bei diesem Kunden war das General Query Log bereits eingeschaltet, das wäre also ein prima Fall für unser General Query Log Data Warehouse!&lt;/p&gt;
&lt;h2 id="welche-fragen-soll-mein-data-warehouse-beantworten-können"&gt;Welche Fragen soll mein Data Warehouse beantworten können?&lt;/h2&gt;
&lt;p&gt;Die generische Fragestellung für dieses Problem müsste in etwa lauten: &amp;ldquo;Wer oder was hat mein System dazu veranlasst, sich ungewöhnlich zu verhalten.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Technisch ausgedrückt würde die Frage in etwa lauten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wer: Welcher User oder Account war zur fraglichen Zeit mit wie vielen Connections auf der Datenbank drauf? Was war daran ungewöhnlich?&lt;/li&gt;
&lt;li&gt;Was: Welche Abfragen liefen zur fraglichen Zeit in welchem Schema auf dem System? Welche dieser Abfragen waren ungewöhnlich?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wie-soll-mein-modell-aussehen"&gt;Wie soll mein Modell aussehen?&lt;/h2&gt;
&lt;p&gt;Aus der Fragestellung können wir bereits einige Fakten und Dimensionen ableiten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User oder Account (User + Host)&lt;/li&gt;
&lt;li&gt;Zeit&lt;/li&gt;
&lt;li&gt;Connections&lt;/li&gt;
&lt;li&gt;Schema&lt;/li&gt;
&lt;li&gt;Abfragen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Und daraus ergeben sich auch bereit 4 Dimensionen und die …&lt;/p&gt;</description></item><item><title>InnoDB Deadlock bei SELECT? Nicht möglich! Oder doch?</title><link>https://www.fromdual.com/de/blog/innodb-deadlock-bei-select-nicht-moeglich-oder-doch/</link><pubDate>Sun, 19 Nov 2023 16:18:11 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/innodb-deadlock-bei-select-nicht-moeglich-oder-doch/</guid><description>&lt;h2 id="einleitung"&gt;Einleitung&lt;/h2&gt;
&lt;p&gt;Kurz vorab zwei Punkte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Ein Deadlock ist eine Zustand, in welchem 2 unterschiedliche Transaktionen nicht mehr in der Lage sind weiter zu arbeiten, weil jede Transaktion jeweils einen Lock hält, welche die andere Transaktion gerade bräuchte. Weil jetzt beide Transaktionen jeweils darauf warten, bis die andere Transaktion ihren Lock wieder frei gibt, wird keine von beiden Transaktionen ihre jeweiligen Locks wieder frei geben. Und das würde bis zum Sankt-Nimmerleins-Tag andauern. Um das zu vermeiden schreitet die MariaDB Instanz ein und killt kurzerhand diejenige Transaktion, die weniger Arbeit geleistet hat. Die Applikation kriegt darauf hin eine Deadlock Fehlermeldung vom Typ:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Im MariaDB Ökosystem gilt allgemein das Mantra, dass ein &lt;code&gt;SELECT&lt;/code&gt; keine Locks verursacht (Ausnahme: &lt;code&gt;FOR UPDATE&lt;/code&gt; oder &lt;code&gt;LOCK IN SHARE MODE&lt;/code&gt;) und somit auch nicht Teil eines Deadlocks sein kann.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="das-problem"&gt;Das Problem&lt;/h2&gt;
&lt;p&gt;Ein langjähriger Kunde kommt zum FromDual remote-DBA Team mit der Bitte, eine Deadlock-Situation zu erklären:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hallo FromDual Team,
ich brauche mal wieder euer Fachwissen zum Thema Deadlocks.
Wann würde es Euch passen?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Die Situation ist folgende: Transaktion 1 besteht aus einem simplen &lt;code&gt;INSERT&lt;/code&gt;. Transaktion 2 besteht aus einem &lt;code&gt;SELECT&lt;/code&gt;. Das dürfte eigentlich KEINEN Deadlock verursachen!&lt;/p&gt;
&lt;p&gt;Zuerst prüfen wir folgende Punkte ab:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sind alle Tabellen, die durch diese Abfragen betroffen sind, sauber indexiert? Jawohl sind sie. Die Queries laufen alle perfekt!&lt;/li&gt;
&lt;li&gt;Ist die &lt;code&gt;SELECT&lt;/code&gt; Abfragen eventuell Teil einer grösseren Transaktion (NICHT Auto-Commit Transaktion) und daher nicht die eigentlich Ursache für den Deadlock? Nein, ist sie nicht. Es handelt sich um Auto-Commit Transaktionen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Was nun? Was man zur Erläuterung noch sagen muss: Das &lt;code&gt;SELECT&lt;/code&gt; wird mit einer sehr hohen Kadenz, also so ca. alle 5 ms abgesetzt!&lt;/p&gt;
&lt;p&gt;Dass der &lt;code&gt;INSERT&lt;/code&gt; Locks erzeugt ist klar. Wird ja auch angezeigt. Aber warum erzeugt der &lt;code&gt;SELECT&lt;/code&gt; Befehl Locks? Diese werden ebenfalls angezeigt!&lt;/p&gt;
&lt;p&gt;Also …&lt;/p&gt;</description></item><item><title>Webinar: Upgrade Ihres MySQL 5.7 Galera Clusters auf MySQL 8.0 ohne Ausfallzeiten</title><link>https://www.fromdual.com/de/blog/webinar-galera-upgrade-57-auf-80/</link><pubDate>Thu, 16 Nov 2023 11:34:22 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/webinar-galera-upgrade-57-auf-80/</guid><description>&lt;p&gt;Sie haben sicher schon davon gehört, dass MySQL 5.7 im Oktober 2023 das End of Life (EOL) erreicht hat. In diesem Webinar zeigen wir Ihnen, dass die Migration von MySQL 5.7 Galera Cluster nicht schwierig ist. MySQL 8.0 ist seit 5 Jahren allgemein verfügbar, und das Galera Cluster für MySQL 8.0 hat sich seit über 3 Jahren im Markt bewährt. Es ist also wirklich an der Zeit, sich auf die Migration vorzubereiten.&lt;/p&gt;
&lt;p&gt;Im ersten Webinar dieser Reihe werden wir uns mit den neuen Funktionen von Galera Cluster mit MySQL 8 befassen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Die neuen Funktionen von Galera Cluster für MySQL 8, von denen Sie profitieren können, einschliesslich der in der Galera Cluster Enterprise Edition (EE) verfügbaren Funktionen&lt;/li&gt;
&lt;li&gt;Wie man eine Migration von MySQL 5.7 auf MySQL 8.0 plant&lt;/li&gt;
&lt;li&gt;Dinge, die vor der Migration getestet werden sollten&lt;/li&gt;
&lt;li&gt;Häufige Fallstricke bei einer solchen Migration&lt;/li&gt;
&lt;li&gt;Wie Sie sicherstellen, dass Ihr Galera Cluster während der Migration ohne Ausfallzeiten weiterläuft&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das Webinar findet am Freitag, 17. November 2023, 9:00 - 10:00 MEZ statt.&lt;/p&gt;
&lt;p&gt;Für das Webinar können Sie sich &lt;a href="https://www2.galeracluster.com/l/38852/2023-11-01/9ssk5y" target="_blank" title="Für Webinar registrieren"&gt;hier registrieren&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Präsentatoren:&lt;/strong&gt;&lt;br&gt;
Oli Sennhauser, Fromdual&lt;br&gt;
Sakari Keskitalo, Codership, the developers of Galera Cluster&lt;/p&gt;
&lt;p&gt;Über Galera Cluster Support Subskriptionen und Migrations-Support informieren wir sie gerne persönlich. Bitte wenden Sie sich an uns, wir helfen Ihnen gerne weiter.&lt;/p&gt;
&lt;p&gt;Bitte senden Sie Ihre Fragen, Anmerkungen und Ihr Feedback an: &lt;a href="mailto:contact@fromdual.com"&gt;contact@fromdual.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mit freundlichen Grüssen,&lt;br&gt;
Ihr FromDual Team&lt;/p&gt;</description></item><item><title>MariaDB und MySQL Schulungsprogramm 2023</title><link>https://www.fromdual.com/de/blog/mariadb-und-mysql-schulungsprogramm-2023/</link><pubDate>Tue, 17 Jan 2023 16:24:10 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadb-und-mysql-schulungsprogramm-2023/</guid><description>&lt;img src="https://www.fromdual.com/sites/default/files/seminar-g8bc40a1dd_1920.jpg" width="640" /&gt;
&lt;p&gt;Auch im Jahr 2023 haben Sie wieder die Möglichkeit, sich bei unseren 3 Schulungspartnern in Essen, Köln und Berlin MariaDB und MySQL seitig fit zu machen.&lt;/p&gt;
&lt;p&gt;Folgende Termine können wir Ihnen für das Jahr 2023 schon jetzt anbieten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;30&lt;br&gt;. Januar bis 3. Februar 2023: MariaDB/MySQL für Fortgeschrittene, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;li&gt;27&lt;br&gt;. Februar bis 3. März 2023: MariaDB/MySQL für Fortgeschrittene, Heinlein Akademie, Berlin&lt;/li&gt;
&lt;li&gt;20&lt;br&gt;. bis 24. März 2023: MariaDB/MySQL für Fortgeschrittene, Linuxhotel, Essen&lt;/li&gt;
&lt;li&gt;27&lt;br&gt;. bis 29. März 2023: Galera Cluster für MariaDB/MySQL, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;li&gt;24&lt;br&gt;. bis 28. April 2023: MariaDB/MySQL für Fortgeschrittene, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;li&gt;3&lt;br&gt;. bis 5. Mai 2023: Galera Cluster für MariaDB/MySQL, Linuxhotel, Essen&lt;/li&gt;
&lt;li&gt;15&lt;br&gt;. bis 17. Mai 2023: Galera Cluster für MariaDB/MySQL, Heinlein Akademie, Berlin&lt;/li&gt;
&lt;li&gt;5&lt;br&gt;. bis 7. Juni 2023: Galera Cluster für MariaDB/MySQL, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;li&gt;24&lt;br&gt;. bis 28. Juli 2023: MariaDB/MySQL für Fortgeschrittene, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;li&gt;11&lt;br&gt;. bis 15. September 2023: MariaDB/MySQL für Fortgeschrittene, Heinlein Akademie, Berlin&lt;/li&gt;
&lt;li&gt;25&lt;br&gt;. bis 27. September 2023: Galera Cluster für MariaDB/MySQL, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;li&gt;23&lt;br&gt;. bis 27. Oktober 2023: MariaDB/MySQL für Fortgeschrittene, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;li&gt;6&lt;br&gt;. bis 8. November 2023: Galera Cluster für MariaDB/MySQL, Linuxhotel, Essen&lt;/li&gt;
&lt;li&gt;13&lt;br&gt;. bis 15. November 2023: Galera Cluster für MariaDB/MySQL, Heinlein Akademie, Berlin&lt;/li&gt;
&lt;li&gt;27&lt;br&gt;. November bis 1. Dezember 2023: MariaDB/MySQL für Fortgeschrittene, Linuxhotel, Essen&lt;/li&gt;
&lt;li&gt;4&lt;br&gt;. bis 6. Dezember 2023: Galera Cluster für MariaDB/MySQL, GFU Schulungszentrum, Köln&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Diese Schulungen können &lt;a href="https://www.fromdual.com/de/mysql-mariadb-schulungstermine"&gt;online gebucht&lt;/a&gt; werden.&lt;/p&gt;
&lt;p&gt;Weitere Termine können während des Jahres noch hinzukommen.&lt;/p&gt;
&lt;p&gt;Bei Fragen, oder wenn Sie Spezialwünsche haben, stehen wir Ihnen gerne mit Rat und Tat zur Seite! Zögern Sie nicht, uns zu kontaktieren, wir helfen Ihnen gerne per &lt;a href="mailto:contact@fromdual.com"&gt;eMail&lt;/a&gt; weiter.&lt;/p&gt;
&lt;p&gt;Bei allen weiteren Galera, MariaDB und MySQL Problemen oder Fragen unterstützen wir Sie natürlich ebenfalls gerne!&lt;/p&gt;
&lt;p&gt;Mit freundlichen Grüssen,&lt;br&gt;
Ihr FromDual Team&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quellen&lt;/strong&gt;: …&lt;/p&gt;</description></item><item><title>Linux Container, Incus Spickliste</title><link>https://www.fromdual.com/de/blog/linux-container-lxd-spickliste/</link><pubDate>Mon, 17 Oct 2022 10:10:49 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/linux-container-lxd-spickliste/</guid><description>&lt;h2 id="seitenübersicht"&gt;Seitenübersicht&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#container-kopieren"&gt;Container kopieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#container-clonen"&gt;Container clonen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#container-als-tarball-exportieren-und-importieren"&gt;Container als tarball exportieren und importieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#autostart-eines-containers-deaktivieren"&gt;Autostart eines Containers deaktivieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#neuen-container-von-image-server-ziehen-und-starten"&gt;Launch new Container from Image server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#container-umbenennen"&gt;Container umbenennen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#file-von-host-in-container-kopierenpushen"&gt;File von Host in Container kopieren/pushen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wo-liegen-die-container-rum"&gt;Wo liegen die Container rum?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#quellen"&gt;Quellen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="container-kopieren"&gt;Container kopieren&lt;/h2&gt;
&lt;p&gt;Noch zu testen:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ incus remote add
$ incus copy CONTAINER_NAME/SNAPSHOT_NAME target:CONTAINER_NAME&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="container-clonen"&gt;Container clonen&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;$ incus copy ubuntu-container qa-mariadb118-r
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="container-als-tarball-exportieren-und-importieren"&gt;Container als tarball exportieren und importieren&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;$ incus stop qa-glb
$ incus publish qa-glb --alias my-export
Container published with fingerprint: 9f8410af601eb238224919943d146bc1bcd86429c2dcd5332b7d1bcf271d598d
$ incus image export my-export .
Image exported successfully!
$ incus start qa-glb
$ ls -ltr *.tar.gz
-rw-rw-r-- 1 oli oli 193735169 Oct 17 09:54 9f8410af601eb238224919943d146bc1bcd86429c2dcd5332b7d1bcf271d598d.tar.gz
$ scp 9f8410af601eb238224919943d146bc1bcd86429c2dcd5332b7d1bcf271d598d.tar.gz root@othermachine:

$ incus image import 9f8410af601eb238224919943d146bc1bcd86429c2dcd5332b7d1bcf271d598d.tar.gz --alias my-export
Image imported with fingerprint: 9f8410af601eb238224919943d146bc1bcd86429c2dcd5332b7d1bcf271d598d
$ incus init my-export qa-glb
Creating qa-glb
$ incus start qa-glb
$ incus list
+----------------+---------+----------------------+-----------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+----------------+---------+----------------------+-----------------------------------------------+-----------+-----------+
| qa-glb | RUNNING | 10.153.125.95 (eth0) | | CONTAINER | 0 |
+----------------+---------+----------------------+-----------------------------------------------+-----------+-----------+
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="autostart-eines-containers-deaktivieren"&gt;Autostart eines Containers deaktivieren&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Wichtig:&lt;/strong&gt; Wenn nichts gesetzt ist, bleibt die Ausgabe leer!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CONTAINER_NAME=&amp;quot;qa-glb&amp;quot; …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Zusätzliche Galera Cluster Schulung im Dezember 2022</title><link>https://www.fromdual.com/de/blog/zusaetzliche-galera-cluster-schulung-im-dezember-2022/</link><pubDate>Mon, 10 Oct 2022 16:40:32 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/zusaetzliche-galera-cluster-schulung-im-dezember-2022/</guid><description>&lt;p&gt;Aufgrund der grossen Nachfrage bieten wir vom 19. bis 22. Dezember 2022 ein zusätzliches Galera Cluster Seminar an. Dies in Zusammenarbeit mit unserem Schulungspartner, der &lt;a href="https://www.gfu.net/" target="_blank" title="GfU Cyrus AG"&gt;GfU Cyrus AG&lt;/a&gt; in Köln.&lt;/p&gt;
&lt;p&gt;Dieses Seminar wird remote durchgeführt. Sie können an diesem Seminar also bequem von zuhause aus teilnehmen&amp;hellip;&lt;/p&gt;
&lt;p&gt;Eine Seminarübersicht finden Sie &lt;a href="https://www.fromdual.com/de/galera-cluster-fuer-mysql-mariadb-schulung" title="Galera Cluster für MariaDB und MySQL Schulung"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sie können das Seminar einfach online &lt;a href="https://www.gfu.net/seminare-schulungen-kurse/datenbanken__db-sprachen__design_sk81/galera-cluster-fuer-mariadb-und-mysql_s2307.html" target="_blank" title="Schulung Galera Cluster für MySQL/MariaDB
"&gt;buchen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Falls Sie an diesen Terminen verhindert sind, haben wir bereits einige &lt;a href="https://www.fromdual.com/de/mysql-mariadb-schulungstermine" title="MariaDB und MySQL Schulungstermine"&gt;Termine für das Jahr 2023&lt;/a&gt; für Sie in Planung.&lt;/p&gt;
&lt;p&gt;Ihr FromDual Schulungsteam&lt;/p&gt;</description></item><item><title>FromDual Seminarprogramm 2022 für MariaDB und MySQL ist online</title><link>https://www.fromdual.com/de/blog/fromdual-seminarprogramm-2022-mariadb-mysql/</link><pubDate>Fri, 15 Oct 2021 10:27:48 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/fromdual-seminarprogramm-2022-mariadb-mysql/</guid><description>&lt;p&gt;Das FromDual &lt;a href="https://www.fromdual.com/mysql-mariadb-training-class-schedule"&gt;Seminarprogramm für 2022&lt;/a&gt; steht. Mit unseren Schulungspartnern Linuxhotel in Essen, GfU Cyrus in Köln sowie der Heinlein Akademie in Berlin bieten wir auch 2022 wieder zahlreiche MariaDB und MySQL Schulungen an:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/advanced-mysql-mariadb-training"&gt;MariaDB und MySQL für Fortgeschrittene&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/galera-cluster-for-mysql-mariadb-training"&gt;Galera Cluster für MariaDB und MySQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Im Seminar für Fortgeschrittene nehmen wir uns Themen wie Backup/Restore, Master/Slave Replikation, Galera Cluster sowie Datenbank-Konfigurations-Tuning und SQL Query Tuning vor und üben die einzelnen Punkte praktisch.&lt;/p&gt;
&lt;p&gt;Im Galera Cluster Seminar nehmen wir alle Aspekte des Aufbaus und des Betriebs eines Galera Clusters durch und praktizieren das Ganz anschliessend ausführlich.&lt;/p&gt;
&lt;p&gt;Den Umständen entsprechend werden die Seminare entweder vor Ort, remote oder hybrid durchgeführt.&lt;/p&gt;
&lt;p&gt;Bei allfälligen Fragen bitten wir Sie, mit uns oder unseren Schulungspartnern Kontakt aufzunehmen und diese zu klären.&lt;/p&gt;</description></item><item><title>MariaDB und MySQL Schulungsprogramm 2021</title><link>https://www.fromdual.com/de/blog/mariadb-und-mysql-schulungsprogramm-2021/</link><pubDate>Wed, 03 Feb 2021 09:40:24 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadb-und-mysql-schulungsprogramm-2021/</guid><description>&lt;p&gt;Das FromDual MariaDB und MySQL Schulungsprogramm 2021 steht jetzt zur Verfügung.&lt;/p&gt;
&lt;p&gt;Die Schulungen werden remote oder auch vor Ort bei unseren drei Schulungspartnern in Essen, Köln und Berlin angeboten. Oder ein Seminar, ganz persönlich, remote oder vor Ort, bei Ihnen in der Firma.&lt;/p&gt;
&lt;p&gt;Wer neu in der Thematik MariaDB oder MySQL ist, für den ist das Seminar &lt;strong&gt;MariaDB/MySQL für Einsteiger&lt;/strong&gt; vorgesehen. Falls Sie sich mit MariaDB oder MySQL schon auskennen empfehlen wir Ihnen das Seminar &lt;strong&gt;MariaDB/MySQL für Fortgeschrittene&lt;/strong&gt;. Wenn Sie Entwickler und nicht Administrator sind, dann ist das Seminar &lt;strong&gt;MariaDB/MySQL für Entwickler&lt;/strong&gt; genau das richtige für Sie. Und sollten Sie mit dem Gedanken spielen, sich einen Galera Cluster anzulachen, dann zeigen wir Ihnen im Seminar &lt;strong&gt;Galera Cluster für MariaDB/MySQL&lt;/strong&gt; wie man das richtig macht und wo Sie dabei aufpassen sollten.&lt;/p&gt;
&lt;p&gt;Die geplanten Schulungstermine für das Jahr 2021 finden Sie, immer auf dem neusten Stand, auf unserer Website: &lt;a href="https://www.fromdual.com/de/mysql-mariadb-schulungstermine" title="MariaDB und MySQL Schulungstermine"&gt;MariaDB und MySQL Schulungstermine&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>MariaDB/MySQL Datenbank-Administrator/in gesucht</title><link>https://www.fromdual.com/de/blog/mariadb-mysql-datenbank-administrator-in-gesucht/</link><pubDate>Thu, 19 Nov 2020 15:48:16 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadb-mysql-datenbank-administrator-in-gesucht/</guid><description>&lt;p&gt;Ausschreibungszeitraum: Q4 2020 bis Q2 2021. Später bitte nicht mehr melden.&lt;/p&gt;
&lt;p&gt;Einer unserer Kunden sucht eine/n erfahrene/n MariaDB/MySQL Datenbank-Administrator/in. Arbeitspensum: 80 bis 100% in Festanstellung. Arbeitsort: Hauptstadt Bern (Schweiz).
Erfahrung im Betrieb von MariaDB/MySQL Datenbanken im Enterprise-Umfeld sind erforderlich sowie gute MariaDB/MySQL sowie Galera Cluster Kenntnisse notwendig. Einsatzfeld hochkritische, produktive MariaDB Galera Cluster.&lt;/p&gt;
&lt;p&gt;Auszug aus der Original-Stellenausschreibung:&lt;/p&gt;
&lt;h2 id="aufgaben"&gt;Aufgaben:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Aufsetzen, Testen, Betreiben, Warten und Dokumentieren von Datenbanken und Datenbankservern im Entwicklungs-, Abnahme- und Produktivumfeld inkl. Log und Backup&lt;/li&gt;
&lt;li&gt;Überwachen und Optimieren der Datenbanken und Datenbankservern hinsichtlich Sicherheit und Performance&lt;/li&gt;
&lt;li&gt;Unterhalten der Dokumentationen im DB-Umfeld&lt;/li&gt;
&lt;li&gt;Unterstützung des 3rd-Level-Supports für die von uns betriebenen Webanwendungen, Services und Datenbanken&lt;/li&gt;
&lt;li&gt;Unterstützen der Softwareentwicklerinnen/ Softwareentwickler bei datenbankbezogenen Fragen und Problemen&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="kompetenzen"&gt;Kompetenzen:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Hochschulausbildung im Bereich IT oder grosse Praxiserfahrung in der Datenbankadministration&lt;/li&gt;
&lt;li&gt;Fundierte Erfahrungen im Konzipieren, Optimieren, Administrieren und Betreiben (überwachen, absichern, testen) von SQL und NoSQL-Datenbanken und Datenbankclustern im Webumfeld&lt;/li&gt;
&lt;li&gt;Freude an neuen Technologien und Bereitschaft, sich in neue Themen einzuarbeiten und nach agilen Vorgehensweisen zu arbeiten&lt;/li&gt;
&lt;li&gt;Sehr gute Ausdrucksfähigkeit in Wort und Schrift sowie gute Englischkenntnisse&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wer Interesse hat, soll sich bei mir (Oli Sennhauser) melden, damit ich ihn/sie mit unserem Kunden kurzschliessen kann. FromDual hat kein direktes finanzielles Interesse an dieser Stellenausschreibung!&lt;/p&gt;</description></item><item><title>Programm des Vorarlberger LinuxDay 2020 wurde veröffentlicht</title><link>https://www.fromdual.com/de/blog/programm-des-vorarlberger-linuxday-2020-wurde-veroeffentlicht/</link><pubDate>Fri, 18 Sep 2020 10:00:27 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/programm-des-vorarlberger-linuxday-2020-wurde-veroeffentlicht/</guid><description>&lt;p&gt;Das diesjährige Programm des &lt;a href="https://www.linuxday.at/" target="_blank" title="GNU/LinuxDay in Vorarlberg - am 10. Okt. 2020"&gt;Vorarlberger LinuxDay 2020&lt;/a&gt; wurde veröffentlicht!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.linuxday.at/" target="_blank" title="LinuxDay 2020"&gt;&lt;img src="https://www.fromdual.com/sites/default/files/linuxday-2020-virtuell-k.png" width="625" height="403" alt="LinuxDay 2020 am 10. Oktober" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Die &lt;a href="https://www.linuxday.at/vortraege/2020" target="_blank" title="LinuxDay Vorträge 2020"&gt;Vorträge&lt;/a&gt; decken Themen querbeet aus dem Opensource Umfeld ab: Linux Mint, Smart Home, Bootloader, Regolith Linux, LibreOffice, MariaDB/MySQL, Forensik, PostgreSQL, Patch-Management, Softwareverteilung, Backup und Videokonferenzdienste.&lt;/p&gt;
&lt;p&gt;Im Unterschied zu anderen Jahren findet dieses Jahr die Konferenz am 10. Oktober 2020 rein virtuell statt. Die Teilnahme lohnt sich!&lt;/p&gt;
&lt;p&gt;Für MariaDB/MySQL Enthusiasten können wir den Vortrag &lt;a href="https://www.linuxday.at/mariadbmysql-stolperfallen-und-wie-komme-ich-da-wieder-raus" target="_blank" title="MariaDB/MySQL Stolperfallen und wie komme ich da wieder raus"&gt;MariaDB/MySQL Stolperfallen und wie komme ich da wieder raus&lt;/a&gt; empfehlen.&lt;/p&gt;</description></item><item><title>Programm der DOAG 2020 Konferenz veröffentlicht</title><link>https://www.fromdual.com/de/blog/programm-der-doag-2020-konferenz-veroeffentlicht/</link><pubDate>Fri, 11 Sep 2020 10:56:19 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/programm-der-doag-2020-konferenz-veroeffentlicht/</guid><description>&lt;p&gt;Das diesjährige &lt;a href="https://programm.doag.org/doag/2020/#/schedule/2020-11-18" target="_blank"&gt;Programm der DOAG 2020 Konferenz + Ausstellung&lt;/a&gt; ist veröffentlicht!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://2020.doag.org/de/home/" target="_blank"&gt;&lt;img src="https://www.fromdual.com/sites/default/files/doag-2020-konferenz-ausstellung-banner-600x100.jpg" title="DOAG 2020 Konferenz + Ausstellung" alt="doag2020" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das Programm ist abwechslungsreich und interessant, wenn auch etwas kleiner als andere Jahre. Die Teilnahme lohnt sich!&lt;/p&gt;
&lt;p&gt;Aus MariaDB/MySQL Sicht ist vor allem der Mittwoch, im Raum Kiew (55 Plätze), mit den üblichen Verdächtigen, interessant:&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;09:00 - 09:45&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Sessionkeynote: &lt;a href="https://programm.doag.org/doag/2020/#/scheduledEvent/604531" target="_blank"&gt;The new MySQL Database and MySQL Analytics Service - Extreme Performance, Cloud Scale, Significant Cost Savings&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nipun Agarwal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10:00 - 10:45&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://programm.doag.org/doag/2020/#/scheduledEvent/603455" target="_blank"&gt;MariaDB/MySQL Stolperfallen und wie komme ich da wieder raus&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Oliver Sennhauser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11:00 - 11:45&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://programm.doag.org/doag/2020/#/scheduledEvent/603469" target="_blank"&gt;Wie ein Ei dem anderen... MySQL ReplicaSets&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Matthias Jung&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12:00 - 12:45&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://programm.doag.org/doag/2020/#/scheduledEvent/603481" target="_blank"&gt;MySQL 8: Ein Statusbericht 3 Jahre nach dem ersten Release&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Carsten Thalheimer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Die Konferenz findet dieses Jahr von Dienstag, dem 17. November 2020 bis Donnerstag, dem 19. November 2020 in Nürnberg und in Teilen auch als online Veranstaltung statt. Mehr dazu auf der &lt;a href="https://2020.doag.org/de/home/" target="_blank" title="DOAG 2020 KONFERENZ + AUSSTELLUNG"&gt;Website der Konferenz&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>FromDual Schulungen trotz Corona - einfach online und remote</title><link>https://www.fromdual.com/de/blog/fromdual-schulungen-trotz-corona-einfach-online-und-remote/</link><pubDate>Mon, 23 Mar 2020 15:43:41 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/fromdual-schulungen-trotz-corona-einfach-online-und-remote/</guid><description>&lt;p&gt;Aufgrund der aktuellen Corona-Pandemie sind sämtliche FromDual vor Ort Schulungen, Schulungen bei unseren Schulungspartnern sowie FromDual Beratungseinsätze bis auf weiteres sistiert.&lt;/p&gt;
&lt;p&gt;Damit Sie diesen Frühling aber nicht ganz ohne Weiterbildung auskommen müssen, sind wir bereits seit letzter Woche daran, alternative Möglichkeiten mittels online Schulungen zu testen. Erste Testschulungen wurden bereits Ende letzter Woche und anfangs dieser Woche durchgeführt.&lt;/p&gt;
&lt;p&gt;Möglicherweise bietet sich Ihnen in den nächsten Wochen die Möglichkeit, aus dem Homeoffice die eine oder andere unserer online-Schulungen zu besuchen. Voraussichtlich betroffen sind die &lt;a href="https://www.fromdual.com/de/mysql-mariadb-schulungstermine" title="MariaDB und MySQL Schulungstermine"&gt;folgenden Schulungstermine&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2&lt;br&gt;. bis 4. April: Galera Cluster für MariaDB/MySQL im Linuxhotel in Essen&lt;/li&gt;
&lt;li&gt;23&lt;br&gt;. bis 24. April: Galera Cluster für MariaDB/MySQL in der Heinlein Academy in Berlin&lt;/li&gt;
&lt;li&gt;4&lt;br&gt;. bis 8. Mai: MariaDB/MySQL für Fortgeschrittene bei der GfU Cyrus in Köln&lt;/li&gt;
&lt;li&gt;11&lt;br&gt;. bis 15. Mai: MariaDB/MySQL für Fortgeschrittene in der Heinlein Academy in Berlin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ob es auch noch spätere Schulungstermine betrifft werden wir sehen&amp;hellip;&lt;/p&gt;
&lt;h2 id="remote-geht-es-besser---fromdual-remote-dba-dienstleistungen"&gt;Remote geht es besser - FromDual remote-DBA Dienstleistungen&lt;/h2&gt;
&lt;p&gt;Die Corona-Pandemie verursacht möglicherweise auch ein anderes oder neues Lastmuster auf Ihrer Datenbank.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buchungen werden storniert (Reiseportale),&lt;/li&gt;
&lt;li&gt;Rabatt-Aktionen gestartet (Outdoor-Aktivitäten),&lt;/li&gt;
&lt;li&gt;es wird vermehrt online eingekauft (Webshops),&lt;/li&gt;
&lt;li&gt;es wird vermehrt kommuniziert (VoIP, Video-Conferencing, Screen Sharing) oder auch&lt;/li&gt;
&lt;li&gt;die Plattformen des Gesundheitswesen werden heftiger als sonst in Anspruch genommen.&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Falls diese Situation bei Ihnen zu betrieblichen Problemen oder Performance-Engpässen führt, helfen wir Ihnen auch gerne mit einem &lt;a href="https://www.fromdual.com/de/mysql-remote-dba" title="FromDual Remote-DBA Dienstleistungen für MariaDB und MySQL"&gt;remote-DBA Einsatz&lt;/a&gt; anstelle eines vor Ort Beratungseinsatzes weiter. Wir haben diese Technologien bereits seit Jahren im Einsatz und zeigen Ihnen auch gerne remote, wie Sie Ihre Probleme in den Griff kriegen.&lt;/p&gt;</description></item><item><title>Eher Finger weg: innodb_deadlock_detect</title><link>https://www.fromdual.com/de/blog/eher-finger-weg-innodb-deadlock-detect/</link><pubDate>Fri, 06 Mar 2020 15:27:58 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/eher-finger-weg-innodb-deadlock-detect/</guid><description>&lt;p&gt;Kürzlich haben wir bei einem unserer Kunden, der gelegentlich massive Datenbankprobleme hat, bei der Durchsicht der MySQL Konfigurationsdatei (&lt;code&gt;my.cnf&lt;/code&gt;) festgestellt, dass er die InnoDB Deadlock-Erkennung (&lt;code&gt;innodb_deadlock_detect&lt;/code&gt;) deaktiviert hatte.&lt;/p&gt;
&lt;p&gt;Da wir davon bisher immer abgeraten haben, ich aber noch nie konkret über dieses Problem gestolpert bin, bin ich der Sache noch etwas nachgegangen und habe zur Variable &lt;code&gt;innodb_deadlock_detect&lt;/code&gt; recherchiert.&lt;/p&gt;
&lt;p&gt;Die MySQL Dokumentation sagt dazu folgendes &lt;br&gt;[&lt;a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlock-detection.html" target="_blank"&gt;1&lt;/a&gt;&lt;br&gt;]:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disabling Deadlock Detection&lt;/strong&gt;
On high concurrency systems, deadlock detection can cause a slowdown when numerous threads wait for the same lock. At times, it may be more efficient to disable deadlock detection and rely on the &lt;code&gt;innodb_lock_wait_timeout&lt;/code&gt; setting for transaction rollback when a deadlock occurs. Deadlock detection can be disabled using the &lt;code&gt;innodb_deadlock_detect&lt;/code&gt; configuration option.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Und zum Parameter &lt;code&gt;innodb_deadlock_detect&lt;/code&gt; selbst &lt;br&gt;[&lt;a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_deadlock_detect" target="_blank"&gt;2&lt;/a&gt;&lt;br&gt;]:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This option is used to disable deadlock detection. On high concurrency systems, deadlock detection can cause a slowdown when numerous threads wait for the same lock. At times, it may be more efficient to disable deadlock detection and rely on the &lt;code&gt;innodb_lock_wait_timeout&lt;/code&gt; setting for transaction rollback when a deadlock occurs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Das Problem ist, dass jedes mal, wenn MySQL einen (Row) Lock oder Table Lock macht, überprüft wird, ob dieser Lock einen Deadlock verursacht. Was entsprechend teuer ist. Diese Feature wurde übrigens von Facebook entwickelt &lt;br&gt;[&lt;a href="https://github.com/facebookarchive/webscalesql-5.6/commit/d9e347dc3db6acb247517896128fec664ab19202" target="_blank"&gt;3&lt;/a&gt;&lt;br&gt;].&lt;/p&gt;
&lt;p&gt;Die entsprechenden Funktionen sind in &lt;br&gt;[4&lt;br&gt;] zu finden:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class DeadlockChecker, method check_and_resolve (DeadlockChecker::check_and_resolve)

Every InnoDB (row) Lock (for mode LOCK_S or LOCK_X) and type ORed with LOCK_GAP or
LOCK_REC_NOT_GAP, ORed with LOCK_INSERT_INTENTION

Enqueue a waiting request for a lock which cannot be granted immediately.

lock_rec_enqueue_waiting()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;und&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Every (InnoDB) Table Lock

Enqueues a waiting request for a table lock which cannot be granted immediately. Checks for deadlocks. …&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>FromDual ist 10 Jahre alt</title><link>https://www.fromdual.com/de/blog/fromdual-ist-10-jahre-alt/</link><pubDate>Mon, 02 Mar 2020 10:01:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/fromdual-ist-10-jahre-alt/</guid><description>&lt;p&gt;Am 1. März 2020 wurde die FromDual GmbH 10 Jahre alt! Wir möchten allen Kunden, Partnern und Interessenten herzlich für die Unterstützung und gute Zusammenarbeit in den vergangenen 10 Jahren danken. Es würde uns freuen, Euch auch in den kommenden 10 Jahren kompetent beraten und betreuen zu dürfen.&lt;/p&gt;
&lt;p&gt;Euer FromDual Team&lt;/p&gt;
&lt;img src="https://www.fromdual.com/sites/default/files/anniversary-2673504_1280.jpg" width="640" alt="anniversary" /&gt;
&lt;p&gt;Bild von &lt;a href="https://pixabay.com/de/users/kalhh-86169/?utm_source=link-attribution&amp;amp;utm_medium=referral&amp;amp;utm_campaign=image&amp;amp;utm_content=2673504" target="_blank"&gt;kalhh&lt;/a&gt; auf &lt;a href="https://pixabay.com/de/?utm_source=link-attribution&amp;amp;utm_medium=referral&amp;amp;utm_campaign=image&amp;amp;utm_content=2673504" target="_blank"&gt;Pixabay&lt;/a&gt;&lt;/p&gt;</description></item><item><title>FromDual mit Galera Cluster und SQL Query Tuning an den Chemnitzer Linux-Tagen 2020</title><link>https://www.fromdual.com/de/blog/fromdual-mit-galera-cluster-und-sql-query-tuning-an-den-chemnitzer-linux-tagen-2020/</link><pubDate>Tue, 11 Feb 2020 09:55:49 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/fromdual-mit-galera-cluster-und-sql-query-tuning-an-den-chemnitzer-linux-tagen-2020/</guid><description>&lt;p&gt;Zum 22. mal finden am 14. und 15. März 2020 die &lt;a href="https://chemnitzer.linux-tage.de/2020/de/" target="_blank" title="Chemnitzer Linux-Tage"&gt;Chemnitzer Linux-Tage&lt;/a&gt; an der Technische Universität Chemnitz statt.&lt;/p&gt;
&lt;p&gt;FromDual ist am Samstag, 14. März das erste mal mit einem Workshop &amp;ldquo;MariaDB Galera Cluster ganz einfach&amp;rdquo; und am Sonntag, 15. März wieder einmal mit einem Vortrag, diesmal zum Thema MariaDB Performance Tuning: &amp;ldquo;MariaDB SQL Query Tuning für Applikations-Entwickler&amp;rdquo;, präsent.&lt;/p&gt;
&lt;p&gt;Falls Sie also einmal unter Anleitung einen MariaDB Galera Cluster aufsetzen oder sich mit SQL Query Tuning unter MariaDB vertraut machen wollen, besuchen Sie doch einfach die Chemnitzer Linux-Tage 2020 und sitzen Sie in unseren Vortrag rein oder melden Sie sich für unseren Workshop an.&lt;/p&gt;
&lt;img src="https://www.fromdual.com/sites/default/files/hacker-1569744_1280.jpg" width="640" alt="CLT 2020" /&gt;
&lt;p&gt;Bild von Génesis Gabriella auf Pixabay&lt;/p&gt;</description></item><item><title>FromDual wird offizieller MariaDB Partner</title><link>https://www.fromdual.com/de/blog/fromdual-wird-offizieller-mariadb-partner/</link><pubDate>Tue, 11 Feb 2020 08:51:05 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/fromdual-wird-offizieller-mariadb-partner/</guid><description>&lt;p&gt;Nach Jahren der losen Zusammenarbeit wird FromDual jetzt, im Frühjahr 2020, &lt;a href="https://mariadb.com/about-us/partners/fromdual-gmbh/" target="_blank" title="FromDual: MariaDB partners"&gt;offizieller MariaDB Partner&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Schon seit Beginn der MariaDB Erfolgsgeschichte befasst sich FromDual mit der Open Source Datenbank MariaDB und hat ihre Kunden mit Rat und Tat beim Betrieb der Datenbank unterstützt.&lt;/p&gt;
&lt;p&gt;Da die Nachfrage nach MariaDB in den letzten Jahren laufend zu nahm, bietet FromDual schon seit längerem Schulungen, vor Ort Beratungen (Consulting), und remote-DBA Dienstleistungen für die MariaDB Datenbank an.&lt;/p&gt;
&lt;p&gt;Der nächste Schritt, die offizielle Zusammenarbeit, ist somit schon längst fällig: Daher ist FromDual nun offizieller MariaDB Partner geworden.&lt;/p&gt;
&lt;p&gt;Dieser Schritt ermöglicht es FromDual ihren Kunden auch beim Erwerb, der Nutzung und der Implementierung der MariaDB Enterprise Edition Subskription tatkräftig zu unterstützen um den grössten Nutzen aus dieser Datenbank zu ziehen.&lt;/p&gt;
&lt;p&gt;Zudem wurden sämtliche FromDual Tools und die Monitoring-as-a-Service Dienstleistung für die MariaDB Datenbank funktionsfähig gemacht und werden schon seit einiger Zeit vollständig unterstützt.&lt;/p&gt;</description></item><item><title>FromDual Performance Monitor 1.1.0 für MariaDB und MySQL freigegeben</title><link>https://www.fromdual.com/de/blog/fromdual-performance-monitor-1.1.0-fuer-mariadb-und-mysql-freigegeben/</link><pubDate>Thu, 06 Feb 2020 14:19:01 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/fromdual-performance-monitor-1.1.0-fuer-mariadb-und-mysql-freigegeben/</guid><description>&lt;p&gt;FromDual hat die Version 1.1.0 des Performance Monitors für MariaDB, MySQL und Galera Cluster (fpmmm) freigegeben.&lt;/p&gt;
&lt;p&gt;Dieser Performance Monitor ermöglicht es DBAs und Systemadministratoren einen tiefen Einblick in das Innenleben der Datenbank und des Servers, auf dem sich die Datenbank befindet, zu erhalten.&lt;/p&gt;
&lt;p&gt;Die neue Version steht hier zum &lt;a href="https://support.fromdual.com/admin/public/download.php" target="_blank" title="FromDual Software Download"&gt;Download&lt;/a&gt; bereit.&lt;/p&gt;
&lt;p&gt;Falls Sie sich die Mühe sparen wollen, eine eigene Monitoring-Infrastruktur aufzubauen, nutzen Sie doch einfach unsere &lt;a href="https://www.fromdual.com/monitoring-as-a-service-maas-for-mysql" title="Monitoring-as-a-Service"&gt;kostengünstige Monitoring-as-a-Service Lösung&lt;/a&gt;. Gerne schicken wir Ihnen ein Angebot.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wichtige Neuerungen&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fpmmm steht jetzt paketiert für CentOS mit RPM und Ubuntu mit DEB Paketen zur Verfügung.&lt;/li&gt;
&lt;li&gt;MariaDB 10.4 wird ab sofort offiziell durch fpmmm unterstützt.&lt;/li&gt;
&lt;li&gt;fpmmm unterstützt ab sofort ausschliesslich PHP Version 7+.&lt;/li&gt;
&lt;li&gt;Sämtliche Zabbix Templates wurden auf die Version 4.0 upgegraded.&lt;/li&gt;
&lt;li&gt;Ein Backup-Hook wurde eingeführt. Sie können somit Ihr eigenes Backup-System oder den FromDual Backup Manager in fpmmm einbinden.&lt;/li&gt;
&lt;li&gt;Graphen für InnoDB Buffer Pool flushing und InnoDB Files wurden hinzugefügt.&lt;/li&gt;
&lt;li&gt;MariaDB Thread Pool Monitoring, für Anwendungen welche extrem viele Verbindungen zu Datenbank aufbauen, wurde hinzugefügt.&lt;/li&gt;
&lt;li&gt;Die Graphen für den Aria Pagecache wurde verbessert.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eine vollständige Liste der Verbesserungen finden Sie &lt;a href="https://www.fromdual.com/fromdual-performance-monitor-for-mariadb-and-mysql-1.1.0-has-been-released" title="fpmmm v1.1.0 Release Notes"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Eine detaillierte Anleitung zum fpmmm finden Sie im &lt;a href="https://www.fromdual.com/fpmmm-installation-guide" title="fpmmm Installation Guide"&gt;fpmmm Installation Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Viel Spass beim Überwachen Ihrer MariaDB/MySQL Datenbank,&lt;br&gt;
Ihr FromDual Team&lt;/p&gt;</description></item><item><title>MariaDB und MySQL Schulungsprogramm 2020</title><link>https://www.fromdual.com/de/blog/mariadb-und-mysql-schulungsprogramm-2020/</link><pubDate>Fri, 13 Dec 2019 16:02:24 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mariadb-und-mysql-schulungsprogramm-2020/</guid><description>&lt;p&gt;Hiermit präsentieren wir Ihnen das FromDual Schulungsprogramm 2020 für MariaDB und MySQL. Auch nächstes Jahr führen wir wieder zahlreiche MariaDB und MySQL Schulungen für Anfänger und Fortgeschrittene bei unseren 3 Partnern in Essen, Köln und Berlin durch.&lt;/p&gt;
&lt;p&gt;Die Liste mit Schulungsterminen 2020 finden Sie &lt;a href="https://www.fromdual.com/de/mysql-mariadb-schulungstermine" title="MariaDB und MySQL Schulungstermine 2020"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Welches für Sie das richtige Schulungsmodul ist, erläutern wir unter der Seite &lt;a href="https://www.fromdual.com/de/mysql-mariadb-schulungsmodule" title="MariaDB und MySQL Schulungsmodule"&gt;Schulungsmodule&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Gleich richtig los geht es anfangs Januar mit MariaDB und MySQL für Einsteiger. Dieser Kurs ist schon fast ausgebucht und findet daher sicher statt. Sichern Sie sich also noch die letzten Plätze!&lt;/p&gt;
&lt;h2 id="fromdual-technik-blog"&gt;FromDual Technik-Blog&lt;/h2&gt;
&lt;p&gt;Im FromDual Blog berichten wir regelmässig darüber, mit welchen Themen wir unser Wissen erweitert haben. Diese Artikel sind frei verfügbar und somit auch Ihnen zugänglich:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mit MySQL 8.0 wird utf8mb4 das neue Default Character Set. Was Sie hierzu beachten sollten, haben wir im Artikel: &lt;a href="https://www.fromdual.com/mariadb-and-mysql-character-set-conversion" title="MariaDB and MySQL Character Set Conversion"&gt;MariaDB and MySQL Character Set Conversion&lt;/a&gt; beschrieben.&lt;/li&gt;
&lt;li&gt;Wie Sie den Progress Indicator des Backup und Recovery Managers nutzen, finden Sie im Artikel: &lt;a href="https://www.fromdual.com/fromdual-recovery-manager-rman-with-progress-indicator" target="FromDual Recovery Manager (rman) with progress indicator"&gt;FromDual Recovery Manager (rman) with progress indicator&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Falls Sie sich entscheiden sollten, die Seite zu wechseln, gibt es im Artikel &lt;a href="https://www.fromdual.com/migration-from-mysql-5-7-to-mariadb-10-4" title="Migration from MySQL 5.7 to MariaDB 10.4"&gt;Migration from MySQL 5.7 to MariaDB 10.4&lt;/a&gt; einige nützliche Tipps hierzu.&lt;/li&gt;
&lt;li&gt;Wenn Sie genauer wissen wollen, wo Ihr RAM geblieben ist gibt Ihnen der Artikel: &lt;a href="https://www.fromdual.com/who-else-is-using-my-memory-file-system-cache-analysis" title="Who else is using my memory - File System Cache analysis"&gt;Who else is using my memory - File System Cache analysis&lt;/a&gt; möglicherweise neue Denkanstösse.&lt;/li&gt;
&lt;li&gt;Bei der Untersuchung von Problemen nutzen wir immer wieder das General Query Log. Wie man es aber nur für eine bestimmte Verbindung aktiviert, finden Sie hier beschrieben: &lt;a href="https://www.fromdual.com/enable-gerneral-quey-log-per-connection-in-mariadb" title="Enable General Query Log per Connection in MariaDB"&gt;Enable General Query Log per Connection in MariaDB&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Auch wir sind (leider) nicht ganz fehlerfrei. Wie wir unser CRM kaputt und anschliessend wieder heile gemacht haben beschreiben wir in: &lt;a href="https://www.fromdual.com/oops-that-sql-query-was-not-intended-flashback"&gt;Oops! - That SQL Query was not intended&amp;hellip; Flashback&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Falls Sie sich das Swappen auf Ihrem System nicht erklären können, empfehlen wir Ihnen folgenden Artikel: &lt;a href="https://www.fromdual.com/do-not-underestimate-performance-impacts-of-swapping-on-numa-database-systems"&gt;Do not underestimate performance impacts of swapping on NUMA database systems&lt;/a&gt;. …&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Datenschutzerklärung der FromDual GmbH</title><link>https://www.fromdual.com/de/datenschutz/</link><pubDate>Wed, 30 May 2018 16:55:56 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/datenschutz/</guid><description>&lt;p&gt;Version vom 2019-07-29, basierend auf &lt;a href="http://dsat.ch" target="_blank"&gt;DSAT.ch&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In dieser Datenschutzerklärung erläutern wir, die FromDual GmbH (nachfolgend &lt;strong&gt;FromDual&lt;/strong&gt;, &lt;strong&gt;wir&lt;/strong&gt; oder &lt;strong&gt;uns&lt;/strong&gt;), wie wir Personendaten erheben und sonst bearbeiten. Das ist keine abschliessende Beschreibung; allenfalls regeln andere Datenschutzerklärungen spezifische Sachverhalte. Unter Personendaten werden alle Angaben verstanden, die sich auf eine bestimmte oder bestimmbare Person beziehen.&lt;/p&gt;
&lt;p&gt;Wenn Sie uns Personendaten anderer Personen (z.B. Familienmitglieder, Daten von Arbeitskollegen) zur Verfügung stellen, stellen Sie bitte sicher, dass diese Personen die vorliegende Datenschutzerklärung kennen und teilen Sie uns deren Personendaten nur mit, wenn Sie dies dürfen und wenn diese Personendaten korrekt sind.&lt;/p&gt;
&lt;p&gt;Diese Datenschutzerklärung ist auf die EU Datenschutz-Grundverordnung (&lt;strong&gt;DSGVO&lt;/strong&gt;) ausgerichtet. Obwohl die DSGVO eine Regulierung der Europäischen Union ist, ist sie für uns von Bedeutung. Das schweizerische Datenschutzgesetz (&lt;strong&gt;DSG&lt;/strong&gt;) ist vom EU-Recht stark beeinflusst, und Unternehmen ausserhalb der Europäischen Union bzw. des EWR haben die DSGVO unter bestimmten Umständen einzuhalten.&lt;/p&gt;
&lt;h2 id="inhaltsverzeichnis"&gt;Inhaltsverzeichnis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_1"&gt;1. Verantwortlicher / Datenschutzbeauftrager / Vertreter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_2"&gt;2. Erhebung und Bearbeitung von Personendaten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_3"&gt;3. Zwecke der Datenbearbeitung und Rechtsgrundlagen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_4"&gt;4. Cookies / Tracking und andere Technologien im Zusammenhang mit der Nutzung unserer Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_5"&gt;5. Datenweitergabe und Datenübermittlung ins Ausland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_6"&gt;6. Dauer der Aufbewahrung von Personendaten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_7"&gt;7. Datensicherheit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_8"&gt;8. Pflicht zur Bereitstellung von Personendaten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_9"&gt;9.Profiling&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_10"&gt;10. Rechte der betroffenen Person&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/datenschutz/#ziffer_11"&gt;11. Änderungen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="1-verantwortlicher--datenschutzbeauftrager--vertreter"&gt;1. Verantwortlicher / Datenschutzbeauftrager / Vertreter&lt;/h2&gt;
&lt;p&gt;Verantwortlich für die Datenbearbeitungen, die wir hier betreiben, ist FromDual GmbH, Rebenweg 6, CH - 8610 Uster. Wenn Sie datenschutzrechtliche Anliegen haben, können Sie uns diese an folgende Kontaktadresse mitteilen: FromDual GmbH, Datenschutz, Rebenweg 6, CH - 8610 Uster, &lt;a href="mailto:datenschutz@fromdual.com?Subject=Datenschutz"&gt;datenschutz@fromdual.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unseren Datenschutzbeauftragten gemäss Art. 37 DSGVO …&lt;/p&gt;</description></item><item><title>MySQL Enterprise Schulung für Fortgeschrittene von FromDual</title><link>https://www.fromdual.com/de/blog/mysql-enterprise-schulung-fuer-fortgeschrittene-von-fromdual/</link><pubDate>Tue, 06 Feb 2018 15:33:51 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/mysql-enterprise-schulung-fuer-fortgeschrittene-von-fromdual/</guid><description>&lt;p&gt;Aufgrund der gestiegen Nachfrage hat FromDual eine &lt;a href="https://www.fromdual.com/de/mysql-enterprise-fuer-fortgeschrittene-schulung" title="MySQL Enterprise Schulung für Fortgeschrittene"&gt;MySQL Enterprise Schulung für Fortgeschrittene&lt;/a&gt; MySQL DBAs und DevOps entwickelt. Nachdem wir diese Schulung im letzten Jahr zusammen mit ausgewählten Kunden ausführlich getestet haben bieten wir sie 2018 für eine breite Kundschaft an.&lt;/p&gt;
&lt;p&gt;Die MySQL Enterprise Schulung richtet sich an MySQL DBA&amp;rsquo;s und DevOps, welche bereits mit MySQL vertraut sind und nun vor der Herausforderung stehen, eine ernsthafte MySQL Enterprise Infrastruktur zu betreiben.&lt;/p&gt;
&lt;p&gt;Die Liste der Themen, welche während der dreitägigen Schulung behandelt werden finden sie &lt;a href="https://www.fromdual.com/de/mysql-enterprise-fuer-fortgeschrittene-schulung" title="MySQL Enterprise Schulung Inhalt"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Es bietet sich zudem die Möglichkeit, 2 Tage MySQL Performance Tuning aus der &lt;a href="https://www.fromdual.com/de/mysql-mariadb-fuer-fortgeschrittene-schulung" title="MySQL für Fortgeschrittene Schulung"&gt;MySQL für Fortgeschrittene Schulung&lt;/a&gt; anzuhängen.&lt;/p&gt;
&lt;p&gt;Gerne führen wir diese Schulung bei ihnen vor Ort oder bei einem unserer Schulungspartner in Essen, Berlin oder Köln durch.&lt;/p&gt;
&lt;p&gt;Bei Fragen stehen wir Ihnen auch gerne per &lt;a href="mailto:contact@fromdual.com"&gt;eMail&lt;/a&gt; zur Verfügung.&lt;/p&gt;</description></item><item><title>Schulung MySQL und MariaDB für Fortgeschrittene in Köln 2018</title><link>https://www.fromdual.com/de/blog/schulung-mysql-und-mariadb-fuer-fortgeschrittene-in-koeln-2018/</link><pubDate>Wed, 17 Jan 2018 16:02:56 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/schulung-mysql-und-mariadb-fuer-fortgeschrittene-in-koeln-2018/</guid><description>&lt;p&gt;Ende Februar, genauer vom 26. Februar bis 2. März (5 Tage), bietet FromDual eine weitere Schulung für DBAs und DevOps an, unsere häufigst besuchte Schulung: &lt;strong&gt;MySQL und MariaDB für Fortgeschrittene&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Diese MySQL/MariaDB Schulung findet in den Räumlichkeiten des FromDual Schulungspartners der &lt;a href="https://www.gfu.net/" target="_blank" title="GFU Cyrus GmbH"&gt;GFU Cyrus GmbH&lt;/a&gt; in Köln-Deutz statt.&lt;/p&gt;
&lt;p&gt;Es haben sich bereits genügend Teilnehmer angemeldet, sodass diese Schulung sicher statt findet. Es hat aber noch Platz für mindestens 3 weitere Teilnehmer.&lt;/p&gt;
&lt;p&gt;Die Schulung findet in deutscher Sprache statt.&lt;/p&gt;
&lt;p&gt;Den Inhalt dieser fünftägigen MySQL/MariaDB Schulung finden Sie &lt;a href="https://fromdual.com/de/mysql-mariadb-fuer-fortgeschrittene-schulung" title="MySQL und MariaDB fortgeschrittene Schulung"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bei weiteren Fragen nehmen Sie bitte mit uns &amp;lt;span &amp;ldquo;mailto:contact@fromdual.com&amp;rdquo;=&amp;quot;&amp;quot;&amp;gt;Kontakt&lt;/span&gt; auf.&lt;/p&gt;</description></item><item><title>MySQL Enterprise Schulung für Fortgeschrittene</title><link>https://www.fromdual.com/de/dienstleistungen/schulungen/mysql-enterprise-fuer-fortgeschrittene-schulung/</link><pubDate>Thu, 04 Jan 2018 12:27:03 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/dienstleistungen/schulungen/mysql-enterprise-fuer-fortgeschrittene-schulung/</guid><description>&lt;p&gt;Wenn Sie bereits mit MySQL vertraut sind und nun vor der Herausforderung stehen, eine ernsthafte MySQL Enterprise Infrastruktur zu betreiben, ist diese Schulung die richtige für Sie.&lt;/p&gt;
&lt;h2 id="voraussetzungen"&gt;Voraussetzungen&lt;/h2&gt;
&lt;p&gt;Sie kennen die &lt;a href="https://www.fromdual.com/de/mysql-mariadb-einsteiger-schulung" title="MySQL Einsteiger Schulung"&gt;MySQL Grundlagen&lt;/a&gt; und haben bereits erste Erfahrungen mit MySQL gesammelt. &lt;a href="https://www.fromdual.com/de/sql-einsteiger-schulung" title="SQL Einsteiger Schulung"&gt;SQL&lt;/a&gt; ist für Sie kein Fremdwort mehr. Zudem sind Sie vertraut mit der Linux Konsole und beherrschen die wichtigsten UNIX-Kommandos.&lt;/p&gt;
&lt;h2 id="zielgruppe"&gt;Zielgruppe&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;MySQL Enterprise Anwendungsentwickler und DevOps&lt;/li&gt;
&lt;li&gt;MySQL Enterprise Datenbankadministratoren und DevOps&lt;/li&gt;
&lt;li&gt;Systemadministratoren mit Datenbankverantwortung&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="inhalt"&gt;Inhalt&lt;/h2&gt;
&lt;h3 id="mysql-enterprise-betrieb-1-tag"&gt;MySQL Enterprise Betrieb (1 Tag)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installation und Konfiguration von MySQL Enterprise&lt;/li&gt;
&lt;li&gt;Backup und Restore mittels &lt;code&gt;mysqldump&lt;/code&gt; und &lt;code&gt;mysqlbackup&lt;/code&gt; (MySQL Enterprise Backup (MEB))&lt;/li&gt;
&lt;li&gt;Point-in-Time-Recovery (PiTR)&lt;/li&gt;
&lt;li&gt;Sicherheit&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mysql-enterprise-hochverfügbarkeit-15-tage"&gt;MySQL Enterprise Hochverfügbarkeit (1.5 Tage)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;MySQL Enterprise Architekturen&lt;/li&gt;
&lt;li&gt;Master/Slave Replikation&lt;/li&gt;
&lt;li&gt;Master/Master Replikation&lt;/li&gt;
&lt;li&gt;Weiterführende MySQL Replikationsthemen&lt;/li&gt;
&lt;li&gt;GTID basierte MySQL Replikation&lt;/li&gt;
&lt;li&gt;MySQL Group Replikation (GR)&lt;/li&gt;
&lt;li&gt;InnoDB Cluster (Group Replication, MySQL Router, MySQL Shell)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mysql-enterprise-edition-05-tage"&gt;MySQL Enterprise Edition (0.5 Tage)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;MySQL Cloud Services&lt;/li&gt;
&lt;li&gt;MySQL Enterprise Transparent Data Encryption (TDE)&lt;/li&gt;
&lt;li&gt;MySQL Enterprise Scalability (MySQL thread pool)&lt;/li&gt;
&lt;li&gt;MySQL Enterprise Authentication (PAM, Windows, Active Directory)&lt;/li&gt;
&lt;li&gt;MySQL Enterprise Firewall&lt;/li&gt;
&lt;li&gt;MySQL Enterprise Audit&lt;/li&gt;
&lt;li&gt;MySQL Enterprise Monitor&lt;/li&gt;
&lt;li&gt;OEM für MySQL&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dauer"&gt;Dauer&lt;/h2&gt;
&lt;p&gt;3 Tage (1 + 1.5 + 0.5) mit der Möglichkeit 2 Tage MySQL Performance Tuning aus der &lt;a href="https://www.fromdual.com/de/mysql-mariadb-fuer-fortgeschrittene-schulung" title="MySQL für Fortgeschrittene"&gt;MySQL für Fortgeschrittene&lt;/a&gt; Schulung anzuhängen.&lt;/p&gt;
&lt;h2 id="schulung-buchen"&gt;Schulung buchen&lt;/h2&gt;
&lt;p&gt;Schulungen für Deutschland können sie &lt;a href="https://www.fromdual.com/de/mysql-mariadb-schulungstermine" title="Schulungen in Deutschland"&gt;online buchen&lt;/a&gt;. Gerne führen wir diese Schulung auch bei ihnen inhaus durch. Mindestteilnehmerzahl ist 4 Personen oder finanzielles Äquivalent.&lt;/p&gt;
&lt;h2 id="weiterführende-schulungen"&gt;Weiterführende Schulungen&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/galera-cluster-fuer-mysql-mariadb-schulung" title="Galera Cluster für MySQL Schulung"&gt;Galera Cluster für MySQL Schulung&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/de/mysql-mariadb-entwickler-schulung" title="MySQL für Entwickler Schulung"&gt;MySQL für Entwickler Schulung&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Abbrechende MariaDB/MySQL Verbindungen</title><link>https://www.fromdual.com/de/blog/abbrechende-mariadb-mysql-verbindungen/</link><pubDate>Sun, 23 Apr 2017 14:48:32 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/abbrechende-mariadb-mysql-verbindungen/</guid><description>&lt;p&gt;Translate to your preferred language:&lt;/p&gt;
&lt;div id="google_translate_element"&gt;
&lt;/div&gt;
&lt;p&gt;Wer sich etwas vertieft mit den MariaDB Status Zählern (&lt;code&gt;SHOW GLOBAL STATUS;&lt;/code&gt;) auseinander setzt, wird früher oder später auf den Zähler &lt;code&gt;Aborted_clients&lt;/code&gt; stossen:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mariadb&amp;gt; SHOW GLOBAL STATUS LIKE 'aborted_clients';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| Aborted_clients | 5392 |
+-----------------+-------+
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wenn man sich dann die &lt;a href="https://mariadb.com/kb/en/mariadb/server-status-variables/#aborted_clients" target="_blank" title="Aborted_clients"&gt;MariaDB Dokumentation&lt;/a&gt; anschaut, steht da folgendes:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Number of aborted client connections. This can be due to the client not calling mysql_close() before exiting, the client sleeping without issuing a request to the server for more seconds than specified by wait_timeout or interactive_timeout, or by the client program ending in the midst of transferring data.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vergessener Aufruf von &lt;code&gt;mysql_close()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Inaktive Verbindung (&lt;code&gt;Sleep&lt;/code&gt;) für mehr als &lt;code&gt;wait_timeout&lt;/code&gt; oder &lt;code&gt;interactive_timeout&lt;/code&gt; Sekunden.&lt;/li&gt;
&lt;li&gt;Unerwartete Beendigung der Applikation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Der erste Punkt geht unter die Kategorie: Unsauber programmiert und somit ein Fehler in der Anwendung.&lt;/p&gt;
&lt;p&gt;Der zweite Punkt ist eher ein Konfigurationsproblem sei es auf Datenbankseite oder auf Applikationsseite.&lt;/p&gt;
&lt;p&gt;Hier stellt sich die Frage: Warum sind die Timeouts so eingestellt, wenn die Timeouts kurz sind? Default für beide Timeouts ist 28800 Sekunden, also 8 Stunden.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mariadb&amp;gt; SHOW GLOBAL VARIABLES LIKE '%timeout';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+---------------------------+-------+
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Oder aber: Warum schickt die Anwendung so lange keine Daten über eine geöffnete Verbindung (hat die Anwendung die Verbindung verloren)?&lt;/p&gt;
&lt;p&gt;Der zweite Fall trifft üblicherweise dann ein, wenn persistente Verbindungen verwendet werden (&lt;a href="https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/#using-external-pool" target="_blank" title="Using external pool"&gt;Java Connection Pool&lt;/a&gt;, &lt;a href="http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ConnectionPool.html" target="_blank" title="ActiveRecord::ConnectionAdapters::ConnectionPool"&gt;Ruby on Rails&lt;/a&gt;, &lt;a href="http://php.net/manual/en/features.persistent-connections.php" target="_blank" title="PHP Persistent Database Connections"&gt;PHP Persistent Database Connections&lt;/a&gt;, etc.). Dann sollten die Entwickler den Connector so konfigurieren, dass er alle paar Sekunden einen &lt;a href="https://mariadb.com/kb/en/mariadb/mysql_ping/" target="_blank" title="mysql_ping"&gt;Ping&lt;/a&gt; über die Verbindung schickt.&lt;/p&gt;
&lt;p&gt;Der …&lt;/p&gt;</description></item><item><title>Oli's Spickliste / Cheat sheet</title><link>https://www.fromdual.com/de/blog/olis-cheat-sheet/</link><pubDate>Fri, 10 Feb 2017 18:37:34 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/olis-cheat-sheet/</guid><description>&lt;p&gt;My brain is getting old and mushy, so I am starting to write stuff down&amp;hellip;&lt;/p&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#file-limit-für-mysql-hoch-setzen"&gt;File Limit für MySQL hoch setzen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#entropie-auf-virtuellen-maschinen-vm-guests"&gt;Entropie auf virtuellen Maschinen (VM guests)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#unleserliche-firefox-tooltips-unter-kdekubuntu"&gt;Unleserliche Firefox Tooltips unter KDE/Kubuntu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#apache-mod_rewrite-beispiele"&gt;Apache &lt;code&gt;mod_rewrite&lt;/code&gt; Beispiele&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sar-history"&gt;Historische Performance-Daten mittels &lt;code&gt;sar&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#debian-packages-with-dependency"&gt;Debian Pakete mit Abhängigkeiten installieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#linux-filesystem-cache-flush"&gt;Linux Filesystem Cache flushen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mysql-mini-benchmark-in-microsekunden"&gt;MySQL/MariaDB CLI mini-Benchmark mit Microsekunden Präzision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#scale-pictures"&gt;Bilder auf 1200x900 skalieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#star-office"&gt;StarOffice Dokumente nach LibreOffice ODF konvertieren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#printer"&gt;HPLIP Farbdruckproblem-Workaround&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#iso-image"&gt;ISO Image aus CD/DVD bauen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#pile-of-poo-emoji"&gt;Pile of Poo Emoji&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#echo-before-cat"&gt;&lt;code&gt;echo&lt;/code&gt; before &lt;code&gt;cat&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#xiaomi-download"&gt;File download from Xiaomi Mi Mix 2 on Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#pretty-print"&gt;Pretty Print MariaDB output&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#list-listeners-with-lsof"&gt;List Listeners with &lt;code&gt;lsof&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/systemd-related-stuff-for-mariadb-and-mysql#systemd"&gt;SystemD Notizen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#pdf-manipulation"&gt;Cutting and manipulating PDF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#baloo"&gt;Stopping Baloo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#php-config"&gt;Distribution independent PHP configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#reboot"&gt;Check if a Linux reboot is required&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#vim-cheat-sheet"&gt;Vim Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#swap"&gt;Create Swap File and set Swappiness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#teamviewer"&gt;Teamviewer hacks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ifconfig"&gt;Ersatz für &lt;code&gt;ifconfig&lt;/code&gt; Statistiken&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#xtrabackup"&gt;&lt;code&gt;xtrabackup&lt;/code&gt; 2.4 - wichtigste Befehle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#boot-device-full"&gt;CentOS boot device full&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#convert-libreoffice-to-csv"&gt;Convert LibreOffice Spreadsheet to CSV file format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#compare-libreoffice-presenations"&gt;Compare LibreOffice Presentations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dhcp-client"&gt;DHCP client handling&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#excise-baloo"&gt;Excise Baloo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cat-stdin-to-file"&gt;Cat from STDIN to file for fpmmm test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#remote-syslog-server"&gt;Remote Syslog Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#show-passwords-hidden-with-mysql-config-editor"&gt;Show passwords hidden with &lt;code&gt;mysql_config_editor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#most-recent-installed-packages"&gt;List of most recent installed packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#upgrade-only-specific-packages"&gt;Upgrade only specific packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#glibc-version"&gt;GLIBC version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/systemd-related-stuff-for-mariadb-and-mysql#innodb-numa-interleave-with-mariadb"&gt;InnoDB NUMA interleave with MariaDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#extracting-and-inspecting-packages"&gt;Extracting and inspecting packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#taking-a-node-out-of-galera-cluster"&gt;Taking a node out of Galera Cluster&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#make-linux-fast-again"&gt;Make Linux fast again&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/systemd-related-stuff-for-mariadb-and-mysql#checking-galera-cluster-sst-timeout-with-systemd"&gt;Checking Galera Cluster SST timeout with Systemd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mariadb-persistent-statistics"&gt;MariaDB persistent statistics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#find-recently-modified-files"&gt;Find recently modified files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#change-timestamps-of-files"&gt;Change timestamps of files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#simulate-linux-server-with-less-ram"&gt;Trick to Simulate a Linux Server with less RAM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mysql-repository-key-expired"&gt;MySQL Repository Key expired&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lengths-of-lines"&gt;Lengths of lines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#debian-11-vim-copy-paste"&gt;Debian 11 vim Copy/Paste broken&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/systemd-related-stuff-for-mariadb-and-mysql#kill-mariadb-galera-node-under-systemd"&gt;Kill MariaDB Galera node under SystemD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#audio-ist-kaputt"&gt;Audio is broken&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#powershell-cheat-sheet"&gt;Powershell cheat sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ssh-tunnel-for-port-forwarding"&gt;ssh tunnel for port forwarding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cutting-lines-out-of-a-huge-file"&gt;Cutting lines out of a huge file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#colorize-tag-tail"&gt;Colorize a tag with tail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#which-glibc-version-is-required"&gt;Which GLIBC version is required?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#backtrace-when-mariadb-hangs"&gt;Backtrace when MariaDB hangs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tar-with-pigz"&gt;tar with pigz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#apparmor"&gt;AppArmor on Ubuntu 24.04 and MySQL 8.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#not-latin1-characters"&gt;Find columns with non-central-european-characters …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>DOAG Datenbank Konferenz 2016</title><link>https://www.fromdual.com/de/blog/doag-datenbank-konferenz-2016/</link><pubDate>Tue, 10 May 2016 19:43:09 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/de/blog/doag-datenbank-konferenz-2016/</guid><description>&lt;p&gt;Heute war ich auf der &lt;a href="http://www.doag.org/home.html" target="_blank" title="DOAG"&gt;DOAG&lt;/a&gt; &lt;a href="https://datenbank.doag.org/de/home/" target="_blank" title="Datenbank 2016 Konferenz"&gt;Datenbank 2016 Konferenz&lt;/a&gt; in Düsseldorf. Der einzige Vortrag zum Thema MySQL war mein eigener: &lt;a href="https://www.fromdual.com/presentations" title="MySQL für Oracle DBAs"&gt;MySQL für Oracle DBAs&lt;/a&gt;. Daher hatte ich die Möglichkeit wieder mal etwas über den Zaun zu linsen. Hier meine Notizen:&lt;/p&gt;
&lt;h2 id="oracle-database-in-memory---whats-new-and-whats-comming"&gt;Oracle Database in-Memory - What&amp;rsquo;s new and what&amp;rsquo;s comming&lt;/h2&gt;
&lt;p&gt;Von Andy Rivenes, Senior Principal Product Manager, Oracle Corporation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ist NICHT eine &lt;em&gt;one size fits all&lt;/em&gt; Lösung.&lt;/li&gt;
&lt;li&gt;Für Analytics-Abfragen (Data Warehouse (DWH), Datamart, BI).&lt;/li&gt;
&lt;li&gt;Beschleunigt OLTP Workload NICHT.&lt;/li&gt;
&lt;li&gt;Ist ein Column-Store.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;In-Memory&lt;/em&gt; heisst: weiteren Cache (RAM). Mehr Speicher (RAM) hinzufügen. Column-Store Size. Daten werden partiell doppelt vorgehalten.&lt;/li&gt;
&lt;li&gt;Beide Formate Row und Column sind vorhanden.&lt;/li&gt;
&lt;li&gt;Optimizer entscheidet ob Row-Store oder Column-Store verwendet wird.&lt;/li&gt;
&lt;li&gt;Wird vom DBA pro Tabelle, Partition, Subpartition oder Materialized View festgelegt. 2 - 20 x Kompression.&lt;/li&gt;
&lt;li&gt;Column-Store wird &lt;em&gt;on demand&lt;/em&gt; aufgebaut. Wenn nicht verfügbar, fallback auf Row-Store.&lt;/li&gt;
&lt;li&gt;Column-Store Advisor.&lt;/li&gt;
&lt;li&gt;Jeder Core scannt eine Spalte aus dem Column-Store.&lt;/li&gt;
&lt;li&gt;Geschwindigkeit: Mia rows/s. Wenn man bedenkt, dass ein Core nur ca. 3 Mia CPU Zyklen pro Sekunde hat, frage ich mich, wie das gerechnet wird&amp;hellip;&lt;/li&gt;
&lt;li&gt;Eliminiere Indices und nutze Column-Store für grosse OLAP Tabellen.&lt;/li&gt;
&lt;li&gt;Schreiben ist langsam. Wie kriegt man denn die Daten schnell in die DB bei grossen Datenmengen?&lt;/li&gt;
&lt;li&gt;Scale-out und Scale-Up: Parallelisieren über mehrere Server hinweg.&lt;/li&gt;
&lt;li&gt;Spiegeln von Duplikaten über Server hinweg. Somit können Joins &lt;em&gt;lokal&lt;/em&gt; gemacht werden.&lt;/li&gt;
&lt;li&gt;In-Memory Workload on (Oracle) Chips möglich: DAX, Database Accelleration Engine.&lt;/li&gt;
&lt;li&gt;JSON BLOB.&lt;/li&gt;
&lt;li&gt;Heatmap: Schlaue Guestimates (in der Zukunft).&lt;/li&gt;
&lt;li&gt;&lt;em&gt;When not to use Oracle in-Memory Database&lt;/em&gt;: Siehe Slides.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Folien muss ich mir noch organisieren. Klingt total cool. Ich frage mich nur, wie gross/breit ist dieser Anwendungsfall? Ich werde mich wohl bald mal mit dem &lt;a href="https://mariadb.com/products/mariadb-columnstore" target="_blank" title="MariaDB Column Store"&gt;MariaDB Column Store&lt;/a&gt; befassen müssen/wollen.&lt;/p&gt;
&lt;h2 id="oracle-acfs--cloudfs-zuverlässig-nutzbar"&gt;Oracle ACFS / CloudFS zuverlässig nutzbar?&lt;/h2&gt;
&lt;p&gt;Ralf Appelbaum und Claudia Gabriel, TEAM GmbH&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CFS im ASM&lt;/li&gt;
&lt;li&gt;ACFS = ASM CFS&lt;/li&gt;
&lt;li&gt;für RAC …&lt;/li&gt;&lt;/ul&gt;</description></item></channel></rss>