Controleren of MySQL onderdeel is van een Percona Galera XtraDB Cluster

Bepalen of de MySQL instantie deel uitmaakt van een Percona Galera XtraDB cluster kan met een SQL commando.

mysql> SHOW VARIABLES LIKE 'wsrep_on';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_on      | ON    |
+---------------+-------+
1 row in set (0.00 sec)

Wanneer deze variabele op ON staat is er sprake van een Percona Galera XtraDB Cluster.

Limitaties van een Percona Galera XtraDB Cluster

Er zitten helaas limitaties aan een Percona Galera XtraDB Cluster. In het kort zijn de meest belangrijke:

  • Geen support voor MyISAM, replicatie werkt alleen met tabellen op InnoDB.
    Uitzondering hierop is de MySQL systeem database genaamd ‘mysql’. Deze moet MyISAM blijven;
  • LOCK/UNLOCK TABLES en lock functions (GET_LOCK(), RELEASE_LOCK()… ) worden niet ondersteund;
  • Om deadlocks te voorkomen wordt er gebruik gemaakt van een auto_increment_increment, deze heeft dezelfde waarde als het aantal nodes in het cluster. Dit zorgt ervoor dat een auto increment veld niet opeenvolgende nummers zal hebben.
  • Grote transacties kunnen voor locking problemen binnen het cluster zorgen. Het is raadzaam om grote transacties op te splitsen in meerdere kleine transacties.
  • Elke tabel moet een primary key hebben
  • CREATE TABLE … AS SELECT (CTAS) statements worden niet toegestaan, tenzij het om een temporary table gaat
  • ALTER TABLE statements locken het hele database cluster (niet alleen de tabel waar de query op wordt uitgevoerd), zie: https://galeracluster.com/library/kb/stall-on-alter-table.html
    Als alternatief kan de Percona tool pt-online-schema-change gebruikt worden. Deze zorgt ervoor dat je non-blocking ALTER TABLE queries kan uitvoeren.

Zie ook: