Install and run MariaDB Galera cluster
Galera is a part of MariaDB and enables active/active/active replikation of databases between servers. While it necessarily dont provide any performance gains, it instead enabled a HA for the databases.
This guide assumes that you run Debian 10, which comes with MariaDB 10.3
Install MariaDB 10.3
apt-get update apt-get install mariadb-server galera
It is always STRONGLY recommended to run an odd number of nodes, and atleast three nodes. This is to avoid split-brain and alot of headache and frustration in the future. Please, just set up three nodes and dont bother with a 2 node cluster.
Sure, more servers = the slower the writes will be. So it is recommended to go with atleast 3 nodes, and maximum
In order to create our galera-cluster, we have to create the following file:
/etc/mysql/conf.d/galera.cnf, add the following content. Just be sure that you edit it to fit your needs.
[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_doublewrite=1 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="galera1" wsrep_cluster_address=gcomm://192.168.2.11,192.168.2.12,192.168.2.13 wsrep_sst_method=rsync wsrep_node_address=192.168.2.11
You might want to edit the “listen” address for the MariaDB installation, it is usually found in
Configure the other servers accordingly, and execute
systemctl restart mariadb-server on all nodes. You might want to execute
galera_new_cluster on one of the nodes and restart all the nodes again.
Now, you can try to create a database on one node:
create database testdb
And you should be able to see it from the other nodes: