<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Replication on FromDual GmbH</title><link>https://www.fromdual.com/tags/replication/</link><description>Recent content in Replication on FromDual GmbH</description><generator>Hugo</generator><language>en-GB</language><managingEditor>oli.sennhauser@fromdual.com (Oli Sennhauser)</managingEditor><webMaster>oli.sennhauser@fromdual.com (Oli Sennhauser)</webMaster><copyright>© FromDual GmbH</copyright><lastBuildDate>Mon, 09 Feb 2026 12:10:00 +0100</lastBuildDate><atom:link href="https://www.fromdual.com/tags/replication/index.xml" rel="self" type="application/rss+xml"/><item><title>Attribute promotion and demotion in the MariaDB Galera Cluster</title><link>https://www.fromdual.com/blog/attribute-promotion-and-demotion-in-the-mariadb-galera-cluster/</link><pubDate>Fri, 28 Nov 2025 16:26:48 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/attribute-promotion-and-demotion-in-the-mariadb-galera-cluster/</guid><description>&lt;p&gt;In MariaDB master/slave replication there is a feature called &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;.&lt;/p&gt;</description></item><item><title>MariaDB's parallel replication to catch up</title><link>https://www.fromdual.com/blog/mariadbs-parallel-replication-to-catch-up/</link><pubDate>Tue, 09 Apr 2024 10:53:32 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mariadbs-parallel-replication-to-catch-up/</guid><description>&lt;p&gt;Due to an application error, our replication stopped for 5 days (over Easter). After the problem was solved, the replication was supposed to catch up, which turned out to be very slow. All the usual tricks (&lt;code&gt;innodb_flush_log_at_trx_commit&lt;/code&gt;, &lt;code&gt;sync_binlog&lt;/code&gt;, etc.) had already been exhausted. So we tried our hand at parallel replication of the MariaDB server.&lt;/p&gt;</description></item><item><title>MariaDB MaxScale Load Balancer with Master/Master Replication</title><link>https://www.fromdual.com/blog/mariadb-maxscale-load-balancer-with-master-master-replication/</link><pubDate>Fri, 13 May 2022 16:39:27 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mariadb-maxscale-load-balancer-with-master-master-replication/</guid><description>&lt;p&gt;For this how-to we were working with a MariaDB 10.6.5 database server and the newest MariaDB MaxScale 6.3.0 (aka 2.6) load balancer/proxy.&lt;/p&gt;</description></item><item><title>Learning from the Bugs Database</title><link>https://www.fromdual.com/blog/learning-from-the-bugs-database/</link><pubDate>Thu, 20 Jan 2022 15:05:52 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/learning-from-the-bugs-database/</guid><description>&lt;p&gt;This week I came across an old known issue reported in May 2010: Master/Slave Replication with &lt;code&gt;binlog_format = ROW&lt;/code&gt; and tables without a Primary Key is a bad idea! Especially if these tables are huge.&lt;/p&gt;</description></item><item><title>MariaDB Push Replication</title><link>https://www.fromdual.com/blog/mariadb-push-replication/</link><pubDate>Mon, 11 Jan 2021 17:29:50 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mariadb-push-replication/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-push-replication/#mariadb-pull-replication"&gt;How to make MariaDB Pull Replication as secure as possible&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-push-replication/#mariadb-push-replication"&gt;MariaDB Push Replication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-push-replication/#pushing-data-with-federatedx"&gt;Pushing data with the FederatedX Storage Engine and Triggers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-push-replication/#traffic-mirroring-with-mariadb-maxscale"&gt;Traffic mirroring with MariaDB MaxScale or ProxySQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-make-mariadb-pull-replication-as-secure-as-possible"&gt;How to make MariaDB Pull Replication as secure as possible&lt;/h2&gt;
&lt;p&gt;A normal MariaDB Replication is a Pull Replication. This means that a Slave connects to its Master and gathers or better requests Binary Log information from the Master and applies them in a streaming way.&lt;/p&gt;</description></item><item><title>MariaDB and MySQL Character Set Conversion</title><link>https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/</link><pubDate>Sat, 17 Aug 2019 21:50:15 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#character-sets"&gt;Character Sets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#steps-to-convert-to-utf8mb4"&gt;Steps to convert Character Set to utf8mb4&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#analyzing-the-server"&gt;Analyzing the Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#analyzing-the-application"&gt;Analyzing the Application and the Clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#preparation"&gt;Preparation of the Server Settings and the Application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#convert-to-utfmb4"&gt;Convert Tables to utf8mb4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#testing"&gt;Testing of new Character Set&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#mysqlpump"&gt;MySQL Pump&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#replication-for-character-set-conversion"&gt;MySQL Master/Slave Replication for Character Set conversion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/mariadb-and-mysql-character-set-conversion/#upgrade-checker-utility"&gt;MySQL Shell, &lt;code&gt;mysqlsh&lt;/code&gt; Upgrade Checker Utility&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Recently we had a consulting engagement where we had to help the customer to migrate from latin1 Character Set to utf8mb4 Character Set. In the same MySQL consulting engagement we considered to upgrade from MySQL 5.6 to MySQL 5.7 as well &lt;br&gt;[ &lt;a href="https://www.fromdual.com/mariadb-and-mysql-upgrade-problems#mysql_56_to_57"&gt;Lit.&lt;/a&gt; &lt;br&gt;]. We decided to split the change in 2 parts: Upgrading to 5.7 in the first step and converting to uft8mb4 in the second step. There were various reasons for this decision:&lt;/p&gt;</description></item><item><title>MariaDB Master/Master GTID based Replication with keepalived VIP</title><link>https://www.fromdual.com/blog/mariadb-master-master-gtid-based-replication-with-keepalived-vip/</link><pubDate>Sat, 11 Nov 2017 11:29:29 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mariadb-master-master-gtid-based-replication-with-keepalived-vip/</guid><description>&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: FromDual does NOT recommend to use an automated VIP failover technology as described below for a MariaDB/MySQL Master/Master Replication. In such a topology we recommend a manual VIP failover with prepared scripts!&lt;/p&gt;</description></item><item><title>How the Lack of a Primary Key May Effectively Stop the Slave</title><link>https://www.fromdual.com/blog/how-the-lack-of-a-primary-key-may-effectively-stop-the-slave/</link><pubDate>Tue, 02 May 2017 09:50:52 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/how-the-lack-of-a-primary-key-may-effectively-stop-the-slave/</guid><description>&lt;p&gt;Most (relational) DBAs and DB application developers know the concept of a primary key (&amp;ldquo;PK&amp;rdquo;) and what it is good for. However, much too often one still encounters table definitions without a PK. True, the relational theory based on sets does not need a PK, and all operations (insert, select, update, delete) can also be done on tables for which no PK was defined. If performance doesn&amp;rsquo;t matter (or the data volume is small, a typical situation in tests), the lack of a PK does not immediately cause negative consequences.&lt;/p&gt;</description></item><item><title>MySQL replication with filtering is dangerous</title><link>https://www.fromdual.com/blog/mysql-replication-with-filtering-is-dangerous/</link><pubDate>Thu, 12 Jan 2017 16:47:53 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-replication-with-filtering-is-dangerous/</guid><description>&lt;p&gt;From time to time we see in customer engagements that MySQL Master/Slave replication is set-up doing schema or table level replication filtering. This can be done either on Master or on Slave. If filtering is done on the Master (by the &lt;code&gt;binlog_{do|ignore}_db&lt;/code&gt; settings), the binary log becomes incomplete and cannot be used for a proper Point-in-Time-Recovery. Therefore FromDual recommends AGAINST this approach.&lt;/p&gt;</description></item><item><title>Why is varchar(255) not varchar(255)?</title><link>https://www.fromdual.com/blog/why-is-varchar255-not-varchar255/</link><pubDate>Fri, 24 Jun 2016 16:18:43 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/why-is-varchar255-not-varchar255/</guid><description>&lt;p&gt;Recently I was working on a clients question and stumbled over an issue with replication and mixed character sets. The client asked, wether it is possible to replicate data to a table on a MySQL slave, where one column had a different character set, than the column in the same table on the master.&lt;/p&gt;</description></item><item><title>Replication in a star</title><link>https://www.fromdual.com/blog/replication-in-a-star/</link><pubDate>Thu, 21 Jan 2016 21:24:28 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/replication-in-a-star/</guid><description>&lt;p&gt;Most of you know, that it is possible to synchronize MySQL and MariaDB servers using replication. But with the latest releases, it is also possible to use more than just two servers as a multi-master setup.&lt;/p&gt;</description></item><item><title>Binlog format MIXED with filtering</title><link>https://www.fromdual.com/blog/binlog-format-mixed-with-filtering/</link><pubDate>Wed, 15 Jul 2015 06:11:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/binlog-format-mixed-with-filtering/</guid><description>&lt;p&gt;Binlog format &lt;code&gt;MIXED&lt;/code&gt; changes the binary log format (&lt;code&gt;ROW&lt;/code&gt; or &lt;code&gt;STATEMENT&lt;/code&gt;) depending on the queries (deterministic or not). This makes it impossible to define 100% correctly working binary log filter rules.&lt;/p&gt;</description></item><item><title>Controlling worldwide manufacturing plants with MySQL</title><link>https://www.fromdual.com/blog/controlling-worldwide-manufacturing-plants-with-mysql/</link><pubDate>Thu, 14 May 2015 21:43:03 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/controlling-worldwide-manufacturing-plants-with-mysql/</guid><description>&lt;p&gt;A MySQL customer of FromDual has different manufacturing plants spread across the globe. They are operated by local companies. FromDuals customer wants to maintain the manufacturing receipts centralized in a MySQL database in the Head Quarter in Europe. Each manufacturing plant should only see their specific data.&lt;/p&gt;</description></item><item><title>failed MySQL DDL commands and Galera replication</title><link>https://www.fromdual.com/blog/failed-mysql-ddl-commands-and-galera-replication/</link><pubDate>Tue, 09 Dec 2014 15:45:23 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/failed-mysql-ddl-commands-and-galera-replication/</guid><description>&lt;p&gt;We have recently seen a case where the following command was executed on a Galera Cluster node:&lt;/p&gt;</description></item><item><title>Things you should consider before using GTID</title><link>https://www.fromdual.com/blog/things-you-should-consider-before-using-gtid/</link><pubDate>Fri, 14 Nov 2014 16:50:19 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/things-you-should-consider-before-using-gtid/</guid><description>&lt;p&gt;Global Transaction ID (&lt;a href="http://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html" target="_blank" title="GTID"&gt;GTID&lt;/a&gt;) is one of the major features that were introduced in MySQL 5.6 which provides a lot of benefits.
I have talked about the GTID concept, implementation and possible troubleshooting at &lt;a href="https://www.percona.com/live/london-2014/program" target="_blank" title="Percona Live London 201"&gt;Percona Live London 2014&lt;/a&gt;, you can download the slides from &lt;a href="http://fromdual.com/presentations" target="_blank" title="presentations"&gt;our presentations repository&lt;/a&gt; or from &lt;a href="https://www.percona.com/live/london-2014/sessions/gtid-replication-implementation-and-troubleshooting" target="_blank" title="my session at Percona Live"&gt;my session at Percona Live&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Replication Troubleshooting - Classic VS GTID</title><link>https://www.fromdual.com/blog/replication-troubleshooting-classic-vs-gtid/</link><pubDate>Fri, 04 Jul 2014 15:05:58 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/replication-troubleshooting-classic-vs-gtid/</guid><description>&lt;p&gt;In previous posts, I was talking about how to set up MySQL replication, &lt;a href="http://fromdual.com/how_to_setup_mysql_master-slave_replication" target="_blank" title="How to Setup MySQL Replication"&gt;Classic Replication&lt;/a&gt; (based on binary logs information) and &lt;a href="http://fromdual.com/gtid_in_action" target="_blank" title="GTID In Action"&gt;Transaction-based Replication&lt;/a&gt; (based on GTID). In this article I&amp;rsquo;ll summarize how to troubleshoot MySQL replication for the most common issues we might face with a simple comparison how can we get them solved in the different replication methods (Classic VS GTID).&lt;/p&gt;</description></item><item><title>Replication channel failover with Galera Cluster for MySQL</title><link>https://www.fromdual.com/blog/replication-channel-fail-over-with-galera-cluster-for-mysql/</link><pubDate>Thu, 19 Jun 2014 07:05:38 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/replication-channel-fail-over-with-galera-cluster-for-mysql/</guid><description>&lt;p&gt;Sometimes it could be desirable to replicate from a Galera Cluster to a single MySQL slave or to an other Galera Cluster. Reasons for this measure could be:&lt;/p&gt;</description></item><item><title>GTID In Action</title><link>https://www.fromdual.com/blog/gtid_in_action/</link><pubDate>Thu, 12 Jun 2014 14:09:05 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/gtid_in_action/</guid><description>&lt;p&gt;In a previous post I was talking about &lt;a href="http://fromdual.com/how_to_setup_mysql_master-slave_replication" target="_blank" title="How to Setup MySQL Replication"&gt;How to Setup MySQL Replication&lt;/a&gt; using the classic method (based on binary logs information). In this article I&amp;rsquo;ll go through the transaction-based replication implementation using &lt;a href="http://dev.mysql.com/doc/refman/5.6/en/replication-gtids.html" target="_blank" title="GTID Replication"&gt;GTID&lt;/a&gt; in different scenarios.&lt;/p&gt;</description></item><item><title>How to Setup MySQL Master/Slave Replication ?</title><link>https://www.fromdual.com/blog/how_to_setup_mysql_master-slave_replication/</link><pubDate>Thu, 24 Apr 2014 15:53:07 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/how_to_setup_mysql_master-slave_replication/</guid><description>&lt;p&gt;It&amp;rsquo;s not usual to find an easy source on how to setup MySQL replication, I thought it might be useful at least for the beginners to write a direct and simple howto blog on setting up Master/Slave replication in MySQL using the classic method (binary log information). Check out my post &lt;a href="http://fromdual.com/gtid_in_action" target="_blank" title="GTID In Action"&gt;GTID In Action&lt;/a&gt; for information about transaction-based replication using GTID.&lt;/p&gt;</description></item><item><title>Galera Cluster for MySQL</title><link>https://www.fromdual.com/blog/galera-cluster-for-mysql/</link><pubDate>Wed, 11 Dec 2013 12:08:32 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/galera-cluster-for-mysql/</guid><description>&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;p&gt;Galera is a synchronous multi-master replication Cluster for MySQL/InnoDB databases, having features like:&lt;/p&gt;</description></item><item><title>Check and fix MySQL Replication inconsistencies</title><link>https://www.fromdual.com/blog/check-and-fix-mysql-replication-inconsistencies/</link><pubDate>Thu, 05 Dec 2013 11:56:08 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/check-and-fix-mysql-replication-inconsistencies/</guid><description>&lt;p&gt;There are many different possibilities how you can achieve inconsistencies between Master and Slave in a MySQL replication, intentional and non-intentional ones. How to achieve them is not the topic of this article.&lt;/p&gt;</description></item><item><title>Galera Cluster discussions at FrOSCon 2012</title><link>https://www.fromdual.com/blog/galera-cluster-discussion-at-froscon-2012/</link><pubDate>Mon, 27 Aug 2012 17:18:40 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/galera-cluster-discussion-at-froscon-2012/</guid><description>&lt;p&gt;During and after &lt;a href="http://openlife.cc/blog" target="_blank" title="Henrik Ingo&amp;#39;s Blog"&gt;Henriks&lt;/a&gt; great talk about &lt;a href="http://codership.com/products/mysql_galera" target="_blank" title="Galera Cluster"&gt;Galera Cluster&lt;/a&gt; at the &lt;a href="http://www.froscon.de/en/home/" target="_blank" title="FrOSCon"&gt;FrOSCon 2012&lt;/a&gt; in St. Augustin we found 2 important things related to Galera Cluster for MySQL:&lt;/p&gt;</description></item><item><title>SchoonerSQL</title><link>https://www.fromdual.com/blog/shoonersql/</link><pubDate>Thu, 02 Aug 2012 14:59:20 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/shoonersql/</guid><description>&lt;p&gt;There is a product out in the wild which is called SchoonerSQL &lt;br&gt;[ &lt;a href="http://www.schoonerinfotech.com/products/schoonersql/index.php" target="_blank" title="SchoonerSQL™"&gt;1&lt;/a&gt; &lt;br&gt;] from an American company called Schooner Information Technology &lt;br&gt;[ &lt;a href="http://www.schoonerinfotech.com/" target="_blank" title="Schooner Information Technology"&gt;2&lt;/a&gt; &lt;br&gt;]. They claim to have top-performance &lt;br&gt;[ &lt;a href="http://www.businesswire.com/news/home/20120410006429/en/Schooner-Information-Technology-Welcomes-Percona%E2%80%99s-Entry-High-Availability" target="_blank" title="Schooner Information Technology Welcomes Percona’s Entry into the High-Availability MySQL Market"&gt;3&lt;/a&gt; &lt;br&gt;] and high-availability features with up 99.999% availability &lt;br&gt;[ &lt;a href="http://www.schoonerinfotech.com/products/schoonersql/index.php" target="_blank" title="SchoonerSQL™"&gt;1&lt;/a&gt; &lt;br&gt;].&lt;br&gt;
The technology seems to be based on InnoDB, SSD and some kind of replication with failover mechanism.&lt;/p&gt;</description></item><item><title>DOAG SIG MySQL - Replication: September 4, 2012 in Hamburg</title><link>https://www.fromdual.com/blog/doag-sig-mysql-replication-in-hamburg/</link><pubDate>Mon, 30 Jul 2012 15:11:17 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/doag-sig-mysql-replication-in-hamburg/</guid><description>&lt;p&gt;On Tuesday, September 4, 2012 the next &lt;a href="http://www.doag.org/de/events/sigs/sig-mysql.html" target="_blank"&gt;DOAG SIG MySQL&lt;/a&gt; meeting will take place in Hamburg (Germany) with the topic Replication.&lt;/p&gt;</description></item><item><title>Migrating from MySQL Master-Master Replication to Galera Multi-Master Replication</title><link>https://www.fromdual.com/blog/migrating-from-mysql-master-master-to-galera-replication/</link><pubDate>Fri, 02 Dec 2011 14:48:58 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/migrating-from-mysql-master-master-to-galera-replication/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://codership.com/" target="_blank"&gt;Galera&lt;/a&gt; is a synchronous Multi-Master Replication for MySQL. It is therefore in competition with several other MySQL architectures:&lt;/p&gt;</description></item><item><title>Building Galera Replication from Scratch</title><link>https://www.fromdual.com/blog/building-galera-replication-from-scratch/</link><pubDate>Sun, 13 Nov 2011 12:29:54 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/building-galera-replication-from-scratch/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://codership.com/" target="_blank"&gt;MySQL/Galera&lt;/a&gt; synchronous Multi-Master Replication consists of 2 parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The wsrep patches for MySQL (&lt;a href="https://launchpad.net/codership-mysql" target="_blank"&gt;codership-mysql&lt;/a&gt;) and&lt;/li&gt;
&lt;li&gt;the Galera Replication Plugin (&lt;a href="https://launchpad.net/galera/" target="_blank"&gt;galera&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you do not want to &lt;a href="https://www.fromdual.com/download#galera"&gt;download the prepared binaries&lt;/a&gt; you can build it on you own.&lt;br&gt;
First you have to download the native MySQL sources, then patch it with the Galera wsrep patches and compile it. In a second step you have to build the Galera Plugin.&lt;/p&gt;</description></item><item><title>Galera - Synchronous Multi-Master Replication Cluster for MySQL/InnoDB</title><link>https://www.fromdual.com/blog/galera/</link><pubDate>Fri, 23 Sep 2011 11:07:03 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/galera/</guid><description>&lt;h2 id="galera-features"&gt;Galera features&lt;/h2&gt;
&lt;p&gt;Galera provides the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Synchronous replication&lt;/li&gt;
&lt;li&gt;Active/active multi-master topology&lt;/li&gt;
&lt;li&gt;Read and write to any cluster node&lt;/li&gt;
&lt;li&gt;Automatic membership control, failed nodes drop from the cluster&lt;/li&gt;
&lt;li&gt;Automatic node joining&lt;/li&gt;
&lt;li&gt;True parallel row level replication&lt;/li&gt;
&lt;li&gt;Direct client connections&lt;/li&gt;
&lt;li&gt;Drop-in replacement for native MySQL&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="galera-benefits"&gt;Galera benefits&lt;/h2&gt;
&lt;p&gt;Benefits using Galera Replication:&lt;/p&gt;</description></item><item><title>Be cautious when using Virtualized System with your Database</title><link>https://www.fromdual.com/blog/caution-using-virtualized-system-with-your-database/</link><pubDate>Wed, 08 Jun 2011 15:01:29 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/caution-using-virtualized-system-with-your-database/</guid><description>&lt;p&gt;A customer rose a support case with a problem on his Master-Master set-up. The 2&lt;sup&gt;nd&lt;/sup&gt; Master claims to have a problem:&lt;/p&gt;</description></item><item><title>MySQL Cluster - Cluster circular replication with 2 replication channels</title><link>https://www.fromdual.com/blog/mysql-cluster-circular-replication-with-channel-failover/</link><pubDate>Mon, 10 Jan 2011 22:30:52 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-cluster-circular-replication-with-channel-failover/</guid><description>&lt;p&gt;A few days ago I had to deal with MySQL Cluster replication. I did not do this for a while so I was prepared to expect some interesting surprises once again.&lt;/p&gt;</description></item><item><title>MariaDB, Galera and MySQL Support</title><link>https://www.fromdual.com/services/support/</link><pubDate>Wed, 01 Dec 2010 12:26:19 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/services/support/</guid><description>&lt;p&gt;FromDual is a support &lt;a href="https://www.fromdual.com/partners" title="FromDual partners"&gt;partner&lt;/a&gt; of &lt;a href="https://mariadb.com/" target="_blank" title="Website of MariaDB"&gt;MariaDB plc&lt;/a&gt;, &lt;a href="https://galeracluster.com/about/company/" target="_blank" title="Website of Codership"&gt;Codership Oy&lt;/a&gt; and &lt;a href="https://www.oracle.com/" target="_blank" title="Website of Oracle"&gt;Oracle Corporation&lt;/a&gt;. This gives us the opportunity to offer you customized enterprise support subscriptions for your mission-critical MariaDB, Galera or MySQL databases for all three vendors.&lt;/p&gt;</description></item><item><title>MySQL Multi-Master – Single-Slave – Replication (Episode 2)</title><link>https://www.fromdual.com/blog/mysql-multi-master-single-slave/</link><pubDate>Mon, 13 Oct 2008 16:17:00 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-multi-master-single-slave/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;One of the features that make MySQL so great is its easy replication set-up. If you are experienced and know-how to do it, it takes you about 15 minutes to set-up a slave. What you have in the end is a replication from one master to one or several slaves. So you can build a top-down data stream pyramid and spread your data on many slaves.&lt;/p&gt;</description></item><item><title>Active/active failover cluster with MySQL Replication</title><link>https://www.fromdual.com/blog/active-active-failover-cluster-with-mysql-replication/</link><pubDate>Fri, 05 Sep 2008 17:00:00 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/active-active-failover-cluster-with-mysql-replication/</guid><description>&lt;h2 id="electing-a-slave-as-new-master-and-aligning-the-other-slaves-to-the-new-master"&gt;Electing a slave as new master and aligning the other slaves to the new master&lt;/h2&gt;
&lt;p&gt;In a simple MySQL Replication set-up you have high-availability (HA) on the read side (r). But for the master which covers all the writes (w) and the time critical read (rt) there is no HA implemented. For some situations this can be OK. For example if you have rarely writes or if you can wait until a new Master is set up.&lt;/p&gt;</description></item><item><title>My thoughts about MySQL (Cluster) replication</title><link>https://www.fromdual.com/blog/typical-automated-mysql-maintenance/</link><pubDate>Sat, 28 Jun 2008 13:00:00 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/typical-automated-mysql-maintenance/</guid><description>&lt;p&gt;According to Johans wishes I write down my concerns about MySQL (Cluster) replication. These items are things I run again and again into it with customers:&lt;/p&gt;</description></item><item><title>MySQL Multi-Master - Single-Slave - Replication</title><link>https://www.fromdual.com/blog/mysql-multi-master-single-slave-replication/</link><pubDate>Thu, 21 Dec 2006 16:39:00 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-multi-master-single-slave-replication/</guid><description>&lt;p&gt;MySQL provides its replication for High Availability (HA) and for read Scale-out. Generally it is known that in a MySQL replication you can only replicate from one Master to many slaves. In this &lt;a href="https://www.fromdual.com/sites/default/files/mm-single-slave-repl.pdf"&gt;paper&lt;/a&gt; it is shown how a set-up can look like to replicate from two masters to one slave.&lt;/p&gt;</description></item><item><title>MySQL Binary Log Filter does not work</title><link>https://www.fromdual.com/blog/binary-log-filter-does-not-work/</link><pubDate>Wed, 21 Oct 2015 05:23:36 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/binary-log-filter-does-not-work/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;We use the following binary log filter for filtering out some schemata.&lt;/p&gt;</description></item><item><title>MySQL Replication Slave is lagging more and more</title><link>https://www.fromdual.com/blog/replication-slave-is-lagging-more-and-more/</link><pubDate>Fri, 18 Sep 2015 05:36:36 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/replication-slave-is-lagging-more-and-more/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;My MySQL Replication Slave is lagging more and more and I have no clue why. This happens since last weekends application change. I see that one Core is running at 100% user time but the I/O system is nearly completely idle. Any help is appreciated!&lt;/p&gt;</description></item><item><title>MySQL Replication Slave with corrupt Relay Logs</title><link>https://www.fromdual.com/blog/replication-slave-with-corrupt-relay-logs/</link><pubDate>Thu, 16 Jul 2015 19:19:36 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/replication-slave-with-corrupt-relay-logs/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;MySQL Replication Slave stuck because its disk run full. After restarting the Slave MySQL replication was broken with the following error:&lt;/p&gt;</description></item><item><title>MariaDB and MySQL PERFORMANCE_SCHEMA Hints</title><link>https://www.fromdual.com/blog/mysql-performance-schema-hints/</link><pubDate>Sun, 14 Jul 2013 09:29:09 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-performance-schema-hints/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#accounts-not-properly-closing"&gt;Accounts not properly closing connections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#unused-indexes"&gt;Unused indexes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#who-created-temporary-tables"&gt;Who created temporary (disk) tables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#accounts-which-never-connected"&gt;Accounts which never connected since last start-up&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-which-never-connected"&gt;Users which never connected since last start-up&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#totally-unused-accounts"&gt;Totally unused accounts (never connected since last restart and not used to check Stored Program or View privileges) since last start-up&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#show-full-processlist"&gt;&lt;code&gt;SHOW FULL PROCESSLIST&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#storage-engine-per-schema"&gt;Storage Engines per schema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tables-without-primary-key"&gt;Tables without a Primary Key&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bad-sql-queries-of-users"&gt;Bad SQL queries of users&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#show-profile-in-performance_schema"&gt;&lt;code&gt;SHOW PROFILE&lt;/code&gt; in &lt;code&gt;PERFORMANCE_SCHEMA&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#select-insert-update-and-delete-per-table"&gt;&lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt; and &lt;code&gt;DELETE&lt;/code&gt; per table&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#top-long-running-queries"&gt;Top long running queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tables-never-written-to"&gt;Tables never written to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dml-ddl-dcl-per-account"&gt;DML, DDL and DCL per account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#erroneous-mysql-queries"&gt;Finding syntactically wrong/erroneous MySQL queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#finding-queries-served-by-query-cache"&gt;Finding queries served by MySQL Query Cache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#grant-sys-schema-access"&gt;Grant access to &lt;code&gt;sys&lt;/code&gt; schema to another user&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#grant-ps-schema-access"&gt;Grant access to &lt;code&gt;PERFORMANCE_SCHEMA&lt;/code&gt; schema to another user&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#innodb-locks"&gt;Find InnoDB Locks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#metadata-locks"&gt;Find Metadata Locks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#statements-before-sleep"&gt;What did a Connection before sleeping?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#how-many-statements-did-another-connection"&gt;How many statements did another (sleeping) connection?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="%22/blog/myisam-locking-and-who-is-the-evil#performance-schema%22" title="MyISAM locking and who is the evil?"&gt;MyISAM locking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#connections-per-user"&gt;Connections per user&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#connections-per-user-and-ip"&gt;Connections per user and IP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#accounts-which-could-not-connect"&gt;Accounts which could not connect or with connection errors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#temporary-tables-filling-disk"&gt;Temporary tables filling my disk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#who-is-writing-to-the-binary-log"&gt;Who is writing to the binary log&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#average-binlog-transaction-size"&gt;Average binlog transaction size&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#result-size-of-select-statement"&gt;Result size of &lt;code&gt;SELECT&lt;/code&gt; statement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#find-open-long-running-transactions"&gt;Find open long running transactions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mariadb"&gt;MariaDB&lt;/h2&gt;
&lt;p&gt;On MariaDB you have to enable the Performance Schema first before use:&lt;/p&gt;</description></item></channel></rss>