MySQL-configuratiebeheer bestaat uit twee hoofdcomponenten:MySQL-configuratiebestanden en runtime-configuratie. Het toepassen van configuratiewijzigingen op de runtime-omgeving kan worden gedaan via MySQL-serverclients zonder privilege voor sessievariabelen maar SUPER-privileges voor globale variabelen. Het toepassen van dezelfde configuratiewijzigingen in het MySQL-configuratiebestand is ook nodig om de wijzigingen blijvend te maken tijdens het opnieuw opstarten van MySQL, anders worden de standaardwaarden geladen tijdens het opstarten.
In deze blogpost gaan we kijken naar ClusterControl Configuratiebeheer als alternatief voor MySQL Workbench configuratiebeheer.
MySQL Workbench-configuratiebeheer
MySQL Workbench is een grafische client voor het werken met MySQL-servers en databases voor serverversies 5.x en hoger. Het is gratis beschikbaar en wordt vaak gebruikt door SysAdmins, DBA's en ontwikkelaars om SQL-ontwikkeling, gegevensmodellering, MySQL-serverbeheer en gegevensmigratie uit te voeren.
U kunt MySQL Workbench gebruiken om MySQL/MariaDB-configuratiebeheer uit te voeren op een externe MySQL-server. Er zijn echter enkele eerste stappen vereist om deze functie in te schakelen. Selecteer in MySQL Workbench een bestaand verbindingsprofiel en kies Extern beheer configureren. U krijgt een stapsgewijze configuratiewizard te zien die u helpt bij het instellen van beheer op afstand voor het verbindingsprofiel:
Aan het begin wordt een verbindingspoging gedaan om de serverversie te bepalen en besturingssysteem van de doelcomputer. Hierdoor kunnen verbindingsinstellingen worden gevalideerd en kan de wizard een zinvolle configuratievoorinstelling kiezen. Als deze poging mislukt, kunt u toch doorgaan naar de volgende stap, waar u de instellingen verder kunt aanpassen aan de externe serveromgeving.
Zodra de configuratie van de externe verbinding is voltooid, dubbelklikt u op het verbindingsprofiel om verbinding te maken met de MySQL-instantie. Ga vervolgens naar de Instance -> Options File om de sectie Configuration Manager te openen. U zou iets moeten zien dat lijkt op de volgende schermafbeelding:
Alle bestaande configuratievariabelen uit het configuratiebestand zijn vooraf in deze configuratie geladen manager zodat u kunt zien welke opties zijn ingeschakeld met de respectieve waarden. Configuraties zijn onderverdeeld in een aantal secties - Algemeen, logboekregistratie, InnoDB, netwerken enzovoort - wat ons echt helpt ons te concentreren op specifieke functies die we willen aanpassen of inschakelen.
Als u tevreden bent met de wijzigingen en voordat u op "Toepassen" klikt, moet u ervoor zorgen dat u de juiste MySQL-groepssectie kiest in het vervolgkeuzemenu (direct naast de knop Verwijderen). Eenmaal toegepast, zou u moeten zien dat de configuratie is toegepast op de MySQL-server, waar een nieuwe regel zal verschijnen (als deze niet bestond) in het MySQL-configuratiebestand.
Houd er rekening mee dat het klikken op de knop "Toepassen" de overeenkomstige wijziging niet in de MySQL-runtime duwt. Men moet een herstartbewerking uitvoeren op de MySQL-server om de nieuwe configuratiewijzigingen te laden door naar Instance -> Startup/Shutdown te gaan. Dit zal een aanslag zijn op de uptime van uw database.
Om alle geladen systeemstatus en variabelen te zien, ga naar Beheer -> Status en systeemvariabelen:
ClusterControl-configuratiebeheer
ClusterControl Configuration Manager is toegankelijk onder Beheren -> Configuraties. ClusterControl haalt een aantal belangrijke configuratiebestanden op en geeft deze weer in een boomstructuur. Een gecentraliseerde weergave van deze bestanden is essentieel voor het efficiënt begrijpen en oplossen van problemen met gedistribueerde databaseconfiguraties. De volgende schermafbeelding toont de configuratiebestandsbeheerder van ClusterControl die alle gerelateerde configuratiebestanden voor dit cluster in één enkele weergave opsomt met syntaxisaccentuering:
Zoals u kunt zien in de bovenstaande schermafbeelding, begrijpt ClusterControl MySQL "!include " en zal alle bijbehorende configuratiebestanden volgen. Er worden bijvoorbeeld twee MySQL-configuratiebestanden opgehaald van host 192.168.0.21, /etc/my.cnf en /etc/my.cnf.d/secrets-backup.cnf. U kunt meerdere configuratiebestanden openen in een ander editortabblad, zodat u de inhoud gemakkelijker naast elkaar kunt vergelijken. ClusterControl haalt ook de laatste informatie over bestandswijzigingen uit de tijdstempel van het besturingssysteem, zoals weergegeven rechtsonder in de teksteditor.
ClusterControl elimineert de herhaling bij het wijzigen van een configuratie-optie van een databasecluster. Het wijzigen van een configuratie-optie op meerdere knooppunten kan worden uitgevoerd via een enkele interface en zal dienovereenkomstig worden toegepast op het databaseknooppunt. Wanneer u op "Parameter wijzigen/instellen" klikt, kunt u de database-instanties selecteren die u wilt wijzigen en de configuratiegroep, parameter en waarde specificeren:
U kunt een nieuwe parameter toevoegen aan het configuratiebestand of een bestaande parameter wijzigen . De parameter wordt toegepast op de runtime van de gekozen databaseknooppunten en in het configuratiebestand als de optie het variabelevalidatieproces doorstaat. Voor sommige variabelen is mogelijk een vervolgstap vereist, zoals het opnieuw opstarten van de server of het opnieuw laden van de configuratie, wat vervolgens wordt geadviseerd door ClusterControl.
Alle services die door ClusterControl zijn geconfigureerd, gebruiken een basisconfiguratiesjabloon die beschikbaar is onder /usr/share/cmon/templates op het ClusterControl-knooppunt. U kunt het bestand rechtstreeks aanpassen aan uw implementatiebeleid, maar deze map wordt vervangen na een pakketupgrade. Om ervoor te zorgen dat uw aangepaste configuratiesjabloonbestanden behouden blijven tijdens upgrades, slaat u uw sjabloonbestanden op in de map /etc/cmon/templates. Wanneer ClusterControl het sjabloonbestand laadt voor implementatie, hebben bestanden onder /etc/cmon/templates altijd een hogere prioriteit boven de bestanden onder /usr/share/cmon/templates. Als er twee bestanden met identieke namen in beide mappen staan, wordt die onder /etc/cmon/templates gebruikt.
Ga naar Prestaties -> DB-variabelen om de runtime-configuratie voor alle servers in het cluster te controleren:
Zie je een lijn die in het rood is gemarkeerd in de bovenstaande schermafbeelding? Dat betekent dat de configuratie niet in alle knooppunten identiek is. Dit geeft meer inzicht in het configuratieverschil tussen hosts in een bepaald databasecluster.
Workbench v ClusterControl:voor- en nadelen
Elk product heeft zijn eigen set van voor- en nadelen. Voor ClusterControl, omdat het cluster en topologie begrijpt, is het de beste configuratiemanager om meerdere databaseknooppunten tegelijk te beheren. Het ondersteunt meerdere MySQL-leveranciers zoals MariaDB, Percona en alle Galera Cluster-varianten. Het begrijpt ook de configuratie-indeling van de load balancer van de database voor HAProxy, MariaDB MaxScale, ProxySQL en Keepalive. Aangezien ClusterControl een wachtwoordloze SSH-configuratie vereist aan het begin van het importeren/implementeren van het cluster, vereist configuratiebeheer geen installatie op afstand zoals Workbench en werkt het out-of-the-box nadat de hosts zijn beheerd door ClusterControl. MySQL-configuratiewijzigingen die door ClusterControl worden uitgevoerd, worden automatisch in runtime geladen (voor alle ondersteunde variabelen) en voor persistentie in MySQL-configuratiebestanden geschreven. In termen van nadelen komt ClusterControl-configuratiebeheer niet met configuratiebeschrijvingen die ons zouden kunnen helpen anticiperen op wat er zou gebeuren als we de configuratie-optie zouden wijzigen. Het ondersteunt niet alle platforms waarop MySQL kan draaien, met name alleen bepaalde Linux-distributies zoals CentOS, RHEL, Debian en Ubuntu.
MySQL Workbench ondersteunt beheer op afstand van veel besturingssystemen zoals Windows, FreeBSD, MacOS, Open Solaris en Linux. MySQL Workbench is gratis beschikbaar en kan ook worden gebruikt met andere MySQL-leveranciers zoals Percona en MariaDB (ondanks dat het hier niet wordt vermeld, werkt het wel met sommige oudere MariaDB-versies). Het ondersteunt ook het beheer van de installatie vanuit de TAR-bundel. Het staat enkele aanpassingen toe op het pad van het configuratiebestand, service/stop-commando's en naamgeving van MySQL-groepsecties. Een van de handige functies is dat MySQL Workbench een vervolgkeuzemenu gebruikt voor vaste waarden, wat een enorme hulp kan zijn bij het verminderen van het risico van een verkeerde configuratie door een gebruiker, zoals te zien is in de volgende schermafbeelding:
Het nadeel is dat MySQL Workbench geen beheer van meerdere hostconfiguraties ondersteunt waarbij u moet de configuratiewijziging op elke host afzonderlijk uitvoeren. Het pusht de configuratiewijzigingen ook niet naar runtime, zonder expliciete MySQL-herstart, wat de uptime van de databaseservice in gevaar kan brengen.
De volgende tabel vereenvoudigt de significante verschillen van alle genoemde punten:
Configuratie-aspect
MySQL-werkbank
ClusterControl
Ondersteund besturingssysteem voor MySQL-server
- Linux
- Windows
- FreeBSD
- Open Solaris
- Mac OS
- Linux (Debian, Ubuntu, RHEL, CentOS)
MySQL-leverancier
- Oracle
- Percona
- Oracle
- Percona
- MariaDB
- Coderschap
Andere software ondersteunen
- HAProxy
- ProxySQL
- MariaDB MaxScale
- Bewaardeerd
Configuratie/variabele beschrijving
Ja
Nee
Configuratiebestand syntaxis benadrukken
Nee
Ja
Vervolgkeuzelijst configuratiewaarden
Ja
Nee
Configuratie met meerdere hosts
Nee
Ja
Configuratie automatisch naar runtime pushen
Nee
Ja
Configuratiesjablonen
Nee
Ja
Kosten
Gratis
Abonnement vereist voor configuratiebeheer