Galera

Galera is a synchronous multi-master cluster for MySQL/InnoDB databases.

Note: Currently replication is supported only for InnoDB tables.

Installation

The two components Galera cluster comprised of are Galera plugin itself and a patched version of MySQL server which connect using wsrep API.

Install the galera package. Also you will need rsync and lsof packages for rsync method.

Start/Enable the mysqld.service daemon.

Configuration

You need to configure the cluster.

On each node edit /etc/my.cnf.d/server.cnf and update the wsrep_cluster_address variable so it contains the list of all nodes in the cluster:

/etc/my.cnf.d/server.cnf
wsrep_cluster_address="gcomm://192.168.1.4,192.168.1.5,192.168.1.6"

Change the variables wsrep_node_address and wsrep_node_name to the IP address/hostname and name (this does not need to be unique) for each node, e.g.:

/etc/my.cnf.d/server.cnf
wsrep_node_address='192.168.1.4'
wsrep_node_name='node1'

The wsrep_cluster_name variable should contain the same name for all cluster nodes:

/etc/my.cnf.d/server.cnf
wsrep_cluster_name='my_galera_cluster'

Also, set wsrep_sst_method to the desired state snapshot transfer method, the preferred one is rsync.

/etc/my.cnf.d/server.cnf
wsrep_sst_method=rsync

Make sure you also set the following options:

/etc/my.cnf.d/server.cnf
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
binlog_format=row

When you have finished with /etc/my.cnf.d/server.cnf, bootstrap the mysqld service on the first node (ONLY on the first node):

# galera_new_cluster

This will bootstrap the cluster. Use MySQL's command line tool to log in as root into your MySQL server:

$ mysql -p -u root

Check the status of the cluster, this will show you wsrep-related status variables:

mysql> SHOW STATUS LIKE 'wsrep_%';
| wsrep_local_state          | 4                                    |
| wsrep_local_state_comment  | Synced                               |
| wsrep_cert_index_size      | 0                                    |
| wsrep_causal_reads         | 0                                    |
| wsrep_incoming_addresses   | 192.168.1.4:3306                     |
| wsrep_cluster_conf_id      | 1                                    |
| wsrep_cluster_size         | 1                                    |
| wsrep_cluster_state_uuid   | 6cd96745-2ea8-11e3-bbc8-d666651b51ef |
| wsrep_cluster_status       | Primary                              |
| wsrep_connected            | ON                                   |
| wsrep_local_index          | 0                                    |
| wsrep_provider_name        | Galera                               |

If you use the xtrabackup or mysqldump SST method, you will need to create a MySQL user for sst transfers.

Once you configured the first node, you should be able to start mysqld.service.

See also

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.