Wie verwalten Partition in Echtzeit auf Galera Cluster rotieren?Partition in MariaDB mit Galera-Cluster rotieren
Ich bin von Zeit zu Zeit Metadaten-Sperre beim Löschen oder Hinzufügen von Partitionen auf einer Tabelle. Ich habe 3 Knoten in einem Cluster und alle Anwendungsverbindungen gehen durch Lastenausgleich zum ersten Knoten. Wenn der erste Knoten ausfällt, wechseln Sie zum zweiten Knoten.
Für Partitionierung verwende ich das nächste SP:
CREATE DEFINER=`root`@`localhost` PROCEDURE `manage_partitions`()
BEGIN
if @@GLOBAL.wsrep_on = 1
then SET wsrep_on=0; end if;
SET sql_log_bin = 0;
----- > Manage partitions here
SET sql_log_bin = 1;
if @@GLOBAL.wsrep_on = 1
then SET wsrep_on=1; end if;
END
ich auf jedem Knoten auf unterschiedliche Zeit dieses Stück Code ausführen. Und einige Zeit Fang Metadatensperre und nur Kill-Prozess, die erstellen/drop Partition kann den Server entfrieren.
Also, DBAs, Wie Sie Partitionsrotationen in MariaDB mit Galera Clustr in Echtzeit verwalten? Ich benutze MariaDB Version - 10.1.13.
Mike.
Wenn ich nicht wsrep_on wechseln kann der ganze Cluster gesperrt werden. Partitionsverwaltungscode quiet simple: Lies einfach die config table und erstelle eine aleter table add oder drop partition. Change OSU-Methode hilft nicht. Fangen Sie die gleiche Metadatensperre ein. Alter table add partition funktioniert sehr schnell, wenn ich es manuell ausführe. Percona Unterstützung Antwort auf meine Frage, dass ich kleine Wartung auf ein Schema vornehmen sollte, bevor ich Partition Management-Prozedur auf DB ausführen. – mgavrilov
Wenn es "schnell" ist, dann entfernen Sie alle Flag-Einstellungen und hängen von TOI ab, um "das Richtige zu tun". –