sql >> Databasteknik >  >> NoSQL >> MongoDB

Tips för att hantera dina databaskonfigurationer

I de senaste fem inläggen i bloggserien har vi behandlat distribution av klustring/replikering (MySQL / Galera, MySQL Replication, MongoDB &PostgreSQL), hantering och övervakning av dina befintliga databaser och kluster, prestandaövervakning och hälsa, hur du gör din installation mycket tillgänglig genom HAProxy och MaxScale och i det senaste inlägget, hur du förbereder dig för katastrofer genom att schemalägga säkerhetskopieringar.

Sedan ClusterControl 1.2.11 har vi gjort stora förbättringar av databaskonfigurationshanteraren. Den nya versionen tillåter ändring av parametrar på flera databasvärdar samtidigt och, om möjligt, ändra deras värden under körning.

Vi presenterade den nya MySQL Configuration Management i ett Tips &Tricks blogginlägg, men det här blogginlägget kommer att gå mer på djupet och täcka Configuration Management inom ClusterControl för MySQL, PostgreSQL och MongoDB.

ClusterControl Configuration Management

Gränssnittet för konfigurationshantering finns under Hantera> Konfigurationer. Härifrån kan du se eller ändra konfigurationerna av dina databasnoder och andra verktyg som ClusterControl hanterar. ClusterControl kommer att importera den senaste konfigurationen från alla noder och skriva över tidigare gjorda kopior. För närvarande finns det inga historiska data.

Om du hellre vill redigera konfigurationsfilerna manuellt direkt på noderna, kan du återimportera den ändrade konfigurationen genom att trycka på knappen Importera.

Och sist men inte minst:du kan skapa eller redigera konfigurationsmallar. Dessa mallar används när du distribuerar nya noder i ditt kluster. Alla ändringar som görs i mallarna kommer naturligtvis inte att tillämpas retroaktivt på de redan distribuerade noderna som skapades med dessa mallar.

MySQL Configuration Management

Som tidigare nämnts fick MySQL-konfigurationshanteringen en fullständig översyn i ClusterControl 1.2.11. Gränssnittet är nu mer intuitivt. Vid ändring av parametrarna kontrollerar ClusterControl om parametern faktiskt existerar. Detta säkerställer att din konfiguration inte kommer att neka start av MySQL på grund av parametrar som inte finns.

Från Hantera -> Konfigurationer hittar du en översikt över alla konfigurationsfiler som används inom det valda klustret, inklusive lastbalanseringsnoder.

Vi använder en trädstruktur för att enkelt visa värdar och deras respektive konfigurationsfiler. Längst ner i trädet hittar du de konfigurationsmallar som är tillgängliga för detta kluster.

Ändra parametrar

Anta att vi behöver ändra en enkel parameter som det maximala antalet tillåtna anslutningar (max_connections), vi kan helt enkelt ändra denna parameter vid körning.

Välj först de värdar som denna ändring ska tillämpas på.

Välj sedan det avsnitt du vill ändra. I de flesta fall vill du ändra MYSQLD-sektionen. Om du vill ändra standardteckenuppsättningen för MySQL måste du ändra det i både MYSQLD och klientsektioner.

Om det behövs kan du också skapa en ny sektion genom att helt enkelt skriva in det nya sektionsnamnet. Detta kommer att skapa en ny sektion i my.cnf.

När vi ändrar en parameter och ställer in dess nya värde genom att trycka på "Fortsätt", kommer ClusterControl att kontrollera om parametern finns för denna version av MySQL. Detta för att förhindra att obefintliga parametrar blockerar initieringen av MySQL vid nästa omstart.

När vi trycker på "fortsätt" för ändringen av max_connections kommer vi att få en bekräftelse på att den har tillämpats på konfigurationen och ställts in vid körning med SET GLOBAL. En omstart krävs inte eftersom max_connections är en parameter som vi kan ändra under körning.

Anta nu att vi vill ändra buffertpoolens storlek, detta skulle kräva en omstart av MySQL innan det träder i kraft:

Och som förväntat har värdet ändrats i konfigurationsfilen, men en omstart krävs. Du kan göra detta genom att logga in på värden manuellt och starta om MySQL-processen. Ett annat sätt att göra detta från ClusterControl är att använda instrumentpanelen för noder.

Starta om noder i ett Galera-kluster

Du kan utföra en omstart per nod genom att välja "Starta om nod" och trycka på knappen "Fortsätt".

När du väljer "Initial Start" på en Galera-nod kommer ClusterControl att tömma MySQL-datakatalogen och tvinga fram en fullständig kopia på detta sätt. Detta är uppenbarligen onödigt för en konfigurationsändring. Se till att du lämnar kryssrutan "initial" omarkerad i bekräftelsedialogrutan. Detta kommer att stoppa och starta MySQL på värden, men beroende på din arbetsbelastning och buffertpoolens storlek kan detta ta ett tag eftersom MySQL kommer att börja spola de smutsiga sidorna från InnoDB-buffertpoolen till disken. Det här är de sidor som har ändrats i minnet men inte på disken.

Starta om noder i en MySQL Master-Slave-topologi

För MySQL master-slave topologier kan du inte bara starta om nod för nod. Om inte driftstopp för mastern är acceptabel måste du först tillämpa konfigurationsändringarna på slavarna och sedan befordra en slav till att bli den nya mastern.

Du kan gå igenom slavarna en efter en och köra en "Restart Node" på dem.

Efter att ha tillämpat ändringarna på alla slavar, främja en slav till att bli den nya master:

Efter att slaven har blivit den nya masternoden kan du stänga av och starta om den gamla masternoden för att tillämpa ändringen.

Importera konfigurationer

Nu när vi har tillämpat ändringen direkt på databasen, såväl som konfigurationsfilen, kommer det att ta till nästa konfigurationsimport för att se ändringen återspeglas i konfigurationen lagrad i ClusterControl. Om du har mindre tålamod kan du schemalägga en omedelbar konfigurationsimport genom att trycka på knappen "Importera".

PostgreSQL-konfigurationshantering

För PostgreSQL fungerar Configuration Management lite annorlunda än MySQL Configuration Management. Generellt sett har du samma funktionalitet här:ändra konfigurationen, importera konfigurationer för alla noder och definiera/ändra mallar.

Skillnaden här är att du omedelbart kan ändra hela konfigurationsfilen och skriva tillbaka denna konfiguration till databasnoden.

Om ändringarna som görs kräver en omstart visas en "Starta om"-knapp som låter dig starta om noden för att tillämpa ändringarna.

MongoDB Configuration Management

MongoDB Configuration Management fungerar på samma sätt som MySQL Configuration Management:du kan ändra konfigurationen, importera konfigurationer för alla noder, ändra parametrar och ändra mallar.

Att ändra konfigurationen är ganska enkelt, genom att använda dialogrutan Ändra parameter (som beskrivs i avsnittet "Ändra parametrar"::

När den har ändrats kan du se åtgärden efter ändring som föreslås av ClusterControl i dialogrutan "Konfigurera ändringslogg":

Du kan sedan fortsätta att starta om respektive MongoDB-nod, en nod i taget, för att ladda ändringarna.

Sluta tankar

I det här blogginlägget lärde vi oss om hur du hanterar, ändrar och mallar dina konfigurationer i ClusterControl. Att ändra mallarna kan spara mycket tid när du bara har distribuerat en nod i din topologi. Eftersom mallen kommer att användas för nya noder, kommer detta att spara dig från att ändra alla konfigurationer i efterhand. Men för MySQL- och MongoDB-baserade noder har det blivit trivialt att ändra konfigurationen på alla noder på grund av det nya Configuration Management-gränssnittet.

Som en påminnelse täckte vi nyligen i samma serie distribution av klustring/replikering (MySQL / Galera, MySQL Replication, MongoDB &PostgreSQL), hantering och övervakning av dina befintliga databaser och kluster, prestandaövervakning och hälsa, hur du gör din installation högt tillgängligt via HAProxy och MaxScale och i det sista inlägget, hur du förbereder dig för katastrofer genom att schemalägga säkerhetskopieringar.


  1. MongoDB Aggregations med Java

  2. Jämför tecken på 64-bitars nummer med 32-bitars bitvisa operationer i Lua

  3. Hur man installerar och konfigurerar Redis på ElasticBeanstalk

  4. Hämta index för ett objekt efter värde i en redis-lista