sql >> Databasteknik >  >> RDS >> MariaDB

Hur man hanterar MariaDB 10.3 med ClusterControl

MariaDB Server är inte längre en rak imitation av MySQL. Det växte till en mogen gaffel, som implementerar nya funktioner som liknar vad proprietära databassystem erbjuder i uppströms. MariaDB 10.3 utökar listan av företagsfunktioner avsevärt och med nya SQL_MODE=blir Oracle ett spännande val för företag som vill migrera sina Oracle-databaser till en databas med öppen källkod. Operativ ledning är dock ett område där det fortfarande återstår en del att ta igen, och MariaDB kräver att du bygger dina egna skript.

Kanske ett bra tillfälle att titta på ett automationssystem?

Automatiserade rutiner är korrekta och konsekventa. De kan ge dig välbehövlig repeterbarhet så att du kan minimera risken för förändringar i produktionssystemen. Men eftersom moderna databaser med öppen källkod utvecklas så snabbt är det mer utmanande att hålla dina hanteringssystem i nivå med alla nya funktioner.

Det naturliga nästa steget är att leta efter automationsplattformar. Det finns många plattformar som du kan använda för att distribuera system. Puppet, Chef och Ansible är förmodligen de bästa exemplen på den nya trenden. Dessa plattformar är lämpliga för snabb distribution av olika programvarutjänster. De är perfekta för distributioner, men kräver fortfarande att du underhåller koden, täcker funktionsändringar och vanligtvis täcker de bara en aspekt av ditt arbete. Saker som säkerhetskopiering, prestanda och underhåll behöver fortfarande externa verktyg eller skript.

Å andra sidan har vi molnplattformar, med polerade gränssnitt och en mängd tilläggstjänster för en helt hanterad upplevelse. Men det kanske inte är genomförbart; till exempel hybridmiljöer där du kanske använder molnet, men med fortfarande en betydande plats på plats.

Så vad sägs om ett dedikerat hanteringslager för dina MariaDB-databaser?

ClusterControl designades för att automatisera distributionen och hanteringen av MariaDB såväl som andra databaser med öppen källkod. Kärnan i ClusterControl är funktionalitet som låter dig automatisera de databasuppgifter du måste utföra regelbundet, som att distribuera nya databasinstanser och kluster, hantera säkerhetskopior, hög tillgänglighet och failover, topologiändringar, uppgraderingar, skala nya noder och mer.

ClusterControl-installation

För att börja med ClusterControl behöver du en dedikerad virtuell maskin eller värd. Kraven på virtuella datorer och system som stöds beskrivs här. Som ett minimum kan du börja från en liten VM 2 GB RAM, 2 CPU-kärnor och 20 GB lagringsutrymme, antingen on-prem eller i molnet.

Den primära installationsmetoden är att ladda ner en installationsguide som leder dig genom alla steg (OS-konfiguration, nedladdning och installation av paket, skapande av metadata och annat).

För miljöer utan internetåtkomst kan du använda offlineinstallationsprocessen.

ClusterControl är agentlöst så du behöver inte installera ytterligare programvara. Det kräver endast SSH-åtkomst till databasvärdarna. Den stöder också agentbaserad övervakning för övervakningsdata med högre upplösning.

För att ställa in lösenordslös SSH för alla målnoder (ClusterControl och alla databasvärdar), kör följande kommandon på ClusterControl-servern:

$ ssh-keygen -t rsa # press enter on all prompts
$ ssh-copy-id -i ~/.ssh/id_rsa [ClusterControl IP address]
$ ssh-copy-id -i ~/.ssh/id_rsa [Database nodes IP address] # repeat this to all target database nodes

Ett av de mest bekväma sätten att prova klusterkontroll kanske alternativet att köra det i docker-container.

docker run -d --name clustercontrol \
--network db-cluster \
--ip 192.168.10.10 \
-h clustercontrol \
-p 5000:80 \
-p 5001:443 \
-v /storage/clustercontrol/cmon.d:/etc/cmon.d \
-v /storage/clustercontrol/datadir:/var/lib/mysql \
-v /storage/clustercontrol/sshkey:/root/.ssh \
-v /storage/clustercontrol/cmonlib:/var/lib/cmon \
-v /storage/clustercontrol/backups:/root/backups \
severalnines/clustercontrol

Efter framgångsrik implementering bör du kunna komma åt ClusterControl Web UI på {värdens IP-adress}:{värdens port}, till exempel:

HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol

Installation av MariaDB Cluster

När vi väl går in i ClusterControl-gränssnittet är det första vi ska göra att distribuera en ny databas eller importera en befintlig. Version 1.7.2 introducerade stöd för version 10.3 (tillsammans med 10.0,10.1,10.2). I 1.7.3 som släpptes denna vecka kan vi se den förbättrade installationen i molnet.

ClusterControl:Deploy/Import

När jag skriver denna blogg är de aktuella versionerna 10.3.16. De senaste paketen hämtas som standard. Välj alternativet "Distribuera databaskluster" och följ instruktionerna som visas.

Nu är det dags att tillhandahålla data som behövs för anslutningen mellan ClusterControl och DB-noder. I det här steget skulle du ha rena virtuella datorer eller bilder av operativsystem som du använder i din organisation. När vi väljer MariaDB måste vi ange användare, nyckel eller lösenord och port för att ansluta med SSH till våra servrar.

ClusterControl:Distribuera databaskluster

Efter att ha ställt in SSH-åtkomstinformationen måste vi ange data för att komma åt vår databas, för MariaDB som kommer att vara superanvändarroten. Vi kan också specificera vilket arkiv som ska användas. Du kan ha tre typer av arkiv när du distribuerar databasserver/kluster med ClusterControl:

  • Använd leverantörens arkiv. Tillhandahålla programvara genom att ställa in och använda databasleverantörens föredragna programvarulager. ClusterControl kommer att installera den senaste versionen av det som tillhandahålls av databasleverantörens arkiv.
  • Konfigurera inte leverantörsförråd. Inga förråd kommer att konfigureras av ClusterControl. ClusterControl kommer att förlita sig på systemkonfigurationen (dina standardarkivfiler).
  • Skapa och spegla den aktuella databasleverantörens arkiv och distribuera sedan med det lokala speglade arkivet. Detta låter dig "frysa" de aktuella versionerna av mjukvarupaketen.

När allt är klart, tryck på distribuera-knappen. Implementeringsprocessen kommer också att ta hand om installationen av ytterligare verktyg från MariaDB som mariabackup och verktyg från externa leverantörer, populära inom databasadministration.

Importera ett nytt kluster

Vi har också möjlighet att hantera en befintlig installation genom att importera den till ClusterControl. En sådan miljö kan skapas med ClusterControl eller andra metoder (docka, kock, ansible, hamnarbetare …). Processen är enkel och kräver ingen specialkunskap.

Först måste vi ange SSH-åtkomstuppgifterna till våra befintliga databasservrar. Sedan anger vi åtkomstuppgifterna till vår databas, serverdatakatalogen och versionen. Vi lägger till noderna efter IP eller värdnamn, på samma sätt som när vi distribuerar, och trycker på Importera. När uppgiften är klar är vi redo att hantera vårt kluster från ClusterControl. Vid det här laget kan vi också definiera alternativen för noden eller klustrets automatiska återställning.

ClusterControl:Importera befintligt 10.3-databaskluster

Skala MariaDB, lägga till fler noder till DB-klustret

Med ClusterControl är det ett enkelt steg att lägga till fler servrar till servern. Du kan göra det från GUI eller CLI. För mer avancerade användare kan du använda ClusterControl Developer Studio och skriva ett resursbasvillkor för att utöka ditt kluster automatiskt.

ClusterControl:Lägger till MariaDB-nod

ClusterControl stöder ett alternativ att använda en befintlig säkerhetskopia, så det finns inget behov av att överväldiga produktionshuvudnoden med ytterligare arbete.

Säker MariaDB

Standardinstallationen av MariaDB kommer med avslappnad säkerhet. Detta har förbättrats med de senaste versionerna, men produktionsklassade system kräver fortfarande justeringar i standardkonfigurationen my.cnf. ClusterControl-distributioner kommer med icke-standardinställningar för my.cnf (olika för olika klustertyper).

ClusterControl tar bort mänskliga fel och ger tillgång till en uppsättning säkerhetsfunktioner, för att automatiskt skydda dina databaser från hack och andra hot.

ClusterControl:Säkerhetspanel

ClusterControl möjliggör SSL-stöd för MariaDB-anslutningar. Aktivering av SSL lägger till ytterligare en säkerhetsnivå för kommunikation mellan applikationerna (inklusive ClusterControl) och databasen. MariaDB-klienter öppnar krypterade anslutningar till databasservrarna och verifierar identiteten för dessa servrar innan känslig information överförs.

ClusterControl kommer att utföra alla nödvändiga steg, inklusive att skapa certifikat på alla databasnoder. Sådana certifikat kan underhållas senare på fliken Nyckelhantering.

Med ClusterControl kan du även aktivera revision. Den använder granskningsplugin som tillhandahålls av MariaDB. Kontinuerlig granskning är en absolut nödvändig uppgift för att övervaka din databasmiljö. Genom att granska din databas kan du ta ansvar för vidtagna åtgärder eller åtkomst till innehåll. Dessutom kan revisionen inkludera några kritiska systemkomponenter, till exempel de som är kopplade till finansiella data för att stödja en exakt uppsättning regler som SOX eller EU:s GDPR-förordning. Den guidade processen låter dig välja vad som ska granskas och hur granskningsloggfilerna ska underhållas.

Övervakning och varning

När du arbetar med databassystem bör du kunna övervaka dem. Det gör att du kan identifiera trender, planera för uppgraderingar eller förbättringar eller reagera effektivt på eventuella problem eller fel som kan uppstå.

ClusterControl:Översikt

Den nya ClusterControl använder Prometheus som datalager med PromQL frågespråk. Listan över instrumentpaneler inkluderar Server General, Server Cache, InnoDB Metrics, Replication Master, Repplication Slave, System Overview och Cluster Overview Dashboards.

ClusterControl:DashBoard

ClusterControl installerar Prometheus-agenter, konfigurerar mätvärden och bibehåller åtkomst till Prometheus-exportörernas konfiguration via dess GUI, så att du bättre kan hantera parameterkonfiguration som samlarflaggor för exportörerna (Prometheus).

Som databasoperatör behöver vi informeras när något kritiskt inträffar i vår databas. De tre huvudsakliga metoderna i ClusterControl för att få en varning inkluderar:

  • e-postmeddelanden
  • integrationer
  • rådgivare
ClusterControl:Integrationstjänster

Du kan ställa in e-postmeddelanden på användarnivå. Gå till Inställningar> E-postmeddelanden. Där du kan välja mellan kritik och typ av varning som ska skickas.

Nästa metod är att använda integrationstjänsterna. Detta för att skicka den specifika kategorin av händelser till den andra tjänsten som ServiceNow-biljetter, Slack, PagerDuty, etc. så att du kan skapa avancerade aviseringsmetoder och integrationer inom din organisation.

Den sista är att involvera sofistikerad mätvärdesanalys i Advisor-sektionen, där du kan bygga intelligenta kontroller och triggers.

ClusterControl:Advisors

SQL-övervakning

SQL-övervakningen är uppdelad i tre sektioner.

  • De vanligaste frågorna - presenterar information om frågor som kräver en betydande del av resurser. Frågeövervakare:vanligaste frågorna
  • Köra frågor - det är en processlista med information kombinerad från alla databasklusternoder till en vy. Du kan använda det för att döda frågor som påverkar din databasverksamhet. Frågeövervakare:Kör frågor
  • Frågeutliggare - presentera listan över frågor med exekveringstid längre än genomsnittet. Query Monitor:Query Outliers

Säkerhetskopiering och återställning

Nu när du har din MariaDB igång och har din övervakning på plats är det dags för nästa steg:se till att du har en säkerhetskopia av dina data.

ClusterControl:Backup repository

ClusterControl tillhandahåller ett gränssnitt för MariaDB backup management med stöd för schemaläggning och kreativa rapporter. Det ger dig två alternativ för säkerhetskopieringsmetoder.

  • Logisk säkerhetskopia (text):mysqldump
  • Binära säkerhetskopior:xtrabackup (lägre versioner), mariabackup

En bra säkerhetskopieringsstrategi är en kritisk del av alla databashanteringssystem. ClusterControl erbjuder många alternativ för säkerhetskopiering och återställning/återställning.

ClusterControl-säkerhetskopiering kan konfigureras; du kan välja att behålla din säkerhetskopia under vilken tidsperiod som helst eller att aldrig ta bort säkerhetskopior. AES256-kryptering används för att säkra dina säkerhetskopior mot oseriösa element. För snabb återställning kan säkerhetskopior återställas direkt till ett nytt kluster - ClusterControl hanterar hela återställningsprocessen från lansering av en ny databasinstallation till återställning av data, vilket tar bort felbenägna manuella steg från processen.

Säkerhetskopieringar kan automatiskt verifieras när de är klara och sedan laddas upp till molnlagringstjänster (AWS, Azure och Google). Olika lagringspolicyer kan definieras för lokala säkerhetskopior i datacentret samt säkerhetskopior som laddas upp i molnet.

Automatisk återställning av noder och kluster

ClusterControl ger avancerat stöd för feldetektering och hantering. Det låter dig också distribuera olika proxyservrar för att integrera dem med din HA-stack, så det finns inget behov av att justera applikationens anslutningssträng eller DNS-post för att omdirigera applikationen till den nya huvudnoden.

När huvudservern är nere kommer ClusterControl att skapa ett jobb för att utföra automatisk failover. ClusterControl gör allt bakgrundsarbete för att välja en ny master, distribuera failover-slavservrar och konfigurera lastbalanserare.

ClusterControls automatiska failover utformades med följande principer:

  • Se till att mastern verkligen är död innan du failover
  • Filover endast en gång
  • Failover inte till en inkonsekvent slav
  • Skriv bara till mastern
  • Återställ inte den misslyckade mastern automatiskt

Med de inbyggda algoritmerna kan failover ofta utföras ganska snabbt så att du kan säkerställa de högsta SLA:erna för din databasmiljö.

ClusterControl:Auto Recovery

Processen är mycket konfigurerbar. Den levereras med flera parametrar som du kan använda för att anpassa återställningen till din miljös specifikationer. Bland de olika alternativen kan du hitta replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script och många andra.

Failover är processen att gå till en sund standby-komponent under ett fel eller underhållshändelse för att bevara drifttiden. Ju snabbare det kan göras, desto snabbare kan du vara online igen. Om du funderar på att minimera driftstopp och uppfylla dina SLA:er genom ett automatiserat tillvägagångssätt för TimescaleDB, då är den här bloggen för dig.

MaxScale Load Balancer

Förutom MariaDB 10.3 lägger ClusterControl till ett alternativ för MaxScale 2.3 load balancer. MaxScale är en SQL-medveten proxy som kan användas för att bygga högt tillgängliga miljöer. Den kommer med många funktioner, men huvudmålet är att möjliggöra lastbalansering och hög tillgänglighet.

ClusterControl:MaxScale

MaxScale kan användas för att spåra tillståndet för master MariaDB-noden och, om den misslyckas, utföra en snabb, automatisk failover. Automatiserad failover är avgörande för att bygga upp en mycket tillgänglig lösning som kan återhämta sig snabbt från felet.

Load Balance Database-sessioner

Läs- och skrivdelning är en viktig funktion för att tillåta lässkalning. Det räcker för applikationen att ansluta till MaxScale, och den upptäcker topologin, avgör vilken MariaDB som fungerar som en master och vilka som fungerar som slavar. Den dirigerar trafiken i enlighet med detta.

Sammanfattning

Vi hoppas att den här bloggen hjälper dig att bli bekant med ClusterControl och MariaDB 10.3 administrationsmoduler. Det bästa alternativet är att ladda ner ClusterControl och testa var och en av dem.


  1. Hur man hanterar MySQL - för Oracle DBA:er

  2. T-SQL - Infoga data i överordnade och underordnade tabeller

  3. Postgres VÄLJ där WHERE är UUID eller sträng

  4. Hur man kör fjärrjobb från IRI Workbench