sql >> Database teknologi >  >> RDS >> MariaDB

Sammenligner MariaDB Server med MariaDB Cluster

MariaDB Server og MariaDB Cluster er open source-produkter drevet af MariaDB Corporation. MariaDB Server er en af ​​de mest populære relationelle databaser, den blev oprindeligt fordelt fra MySQL-serveren.

MariaDB Cluster er en høj tilgængelighedsløsning bygget fra MariaDB Server, der bruger et Galera Cluster wsrep-bibliotek til at synkronisere data mellem noder. Replikeringsmetoden for Galera er synkron (eller 'stort set synkron'), hvilket sikrer, at dataene vil være de samme på alle noderne.

MariaDB-serveren kan også gøres meget tilgængelig via standardreplikering. Replikering kan være asynkron eller semi-synkron.

Så hvordan adskiller MariaDB-serveren med standardreplikering sig fra MariaDB-klyngen med Galera-klyngen? I denne blog vil vi sammenligne de to. Vi vil bruge ClusterControl til at illustrere nogle af forskellene.

MariaDB Server Architecture

Arkitekturen af ​​MariaDB Server kan være en enkelt/standalone instans eller master/slave replikering som vist i diagrammet nedenfor.

MariaDB Server-enkeltinstansarkitekturen står kun for én node. Ulempen ved at have en enkelt instans er et enkelt fejlpunkt for databasen. Hvis din database går ned og ikke kommer op igen, har du ikke nogen failover-mekanisme, og du skal lave en gendannelse for at gendanne din database fra den sidste backup.

Master/slave-arkitekturen er en distribueret opsætning, hvor masteren fungerer som forfatter og slaven(erne) som læser(e). Ved at bruge en load balancer som Maxscale eller ProxySQL kan du opdele databasetrafikken, så skrivninger sendes til masteren og læses til slaven(erne). At have en replikeringsopsætning vil eliminere et enkelt fejlpunkt for databasen, men du skal være i stand til at failover automatisk, hvis masteren fejler. Ellers vil applikationer ikke være i stand til at skrive til databasen, og de vil blive påvirket. ClusterControl kan konfigureres til at give automatisk failover og gendannelse til MariaDB-replikering.

MariaDB Cluster Architecture

MariaDB Cluster er en høj tilgængelighedsløsning bestående af MariaDB Server og Galera Replikering som vist i arkitekturdiagrammet nedenfor:

Det er synkron ("stort set synkron") replikering, alle noderne er skrivbare. Den synkrone replikering garanterer, at hvis ændringerne sker i en af ​​galera-knuderne, vil den være tilgængelig på alle de andre knudepunkter i klyngen, før den bliver forpligtet.

Den store forskel er, at alle noderne er ens fra applikationssynspunktet, de kan sende skrivetrafik til enhver af databaseinstanserne. Desuden bør alle noder have nøjagtig de samme data, så der ikke er datatab i tilfælde af nodefejl.

MariaDB-implementering

Både MariaDB Replication og MariaDB Cluster kan implementeres via ClusterControl. Når du implementerer MariaDB Server, skal du starte med at vælge MySQL Replication, mens du for MariaDB Cluster skal vælge MySQL Galera.

For MariaDB Server kan du enten implementere en enkelt node MariaDB-instans, eller du kan konfigurere master/slave og tovejsreplikering. Minimumsantallet af noder i en replikeringsopsætning er to, du skal bruge en master og mindst en slave. Udfyld blot IP-adressen for masteren og tilføj slaver (hvis du vil have master/slave-arkitektur). Du kan bruge feltet Tilføj anden master, hvis du vil konfigurere tovejsreplikering. En master-master-opsætning vil blive klargjort med tovejsreplikering, men en af ​​noderne vil blive indstillet som skrivebeskyttet. Årsagen er at minimere risikoen for datadrift og 'fejlfarlige transaktioner'.

For MariaDB Cluster skal du have mindst 3 værter til måldatabasenoder for at blive installeret. Dette skyldes, at det skal være i stand til at håndtere netværksopdeling eller "split brain"-syndrom. Du skal blot udfylde ip-adressen, når du tilføjer node, når du definerer MySQL-serverens konfiguration.

Glem ikke at vælge MariaDB som leverandør af database, databaseversion, der du vil installere og udfylde root-adgangskoden. Du kan også ændre ikke-standard datadir til en hvilken som helst anden sti.

Når vi har konfigureret alle tingene, skal du bare implementere klyngen. Det vil udløse et nyt job til databaseimplementering.

Bemærk at det også er muligt at have 2 Galera-noder og en Galera-arbitrator aka garbd på en tredje vært.

MariaDB Server &Cluster Monitoring

Databaseovervågning er en kritisk del af databasen, du kan kende databasens aktuelle tilstand. Forskellen mellem MariaDB Server og MariaDB Cluster overvågning er Galera Metrics til synkronisering.

På MariaDB Server kan du tjekke din aktuelle databasetilstand gennem MySQL-metrics; MySQL Server - Generelt, MySQL Server - Caches, MySQL InnoDB Metrics, som også er synlige på MariaDB Cluster som vist nedenfor:

MySQL Server - Generelt giver dig information om den aktuelle tilstand af InnoDB bufferpulje hit ratio, databaseforbindelse, forespørgsler, låsning og brug af databasehukommelse.

MySQL-server - Caches, der er meget information i caches. For det meste relateret til cachen i databasen, f.eks.:bufferpuljestørrelse, bufferpoolforekomst. Der er også information om tabelcachebrug, hitforhold, cachehits og misses. Du kan også finde trådcachebrug og oplysninger om hitforhold .

MySQL-server - InnoDB Metrics viser metrics relateret til InnoDB-lagring, f.eks.:Bufferpool-aktivitet, InnoDB Row-operationer, InnoDB-logfilstørrelse, InnoDB Data Læs/Skriv.

På MariaDB Server, hvis du opsætter master/slave-replikering, er der en underkategori af metrics under MySQL Replication - Master. Der er information relateret til master binær logfil, master binær log position og binlog oprettelsesfrekvens.

MariaDB Server har en masse information relateret til databasen, disse er også tilgængelige for MariaDB Cluster. Forskellen er, at der er to dashboards til MariaDB Cluster - Galera Overview og Galera Server Charts.

Galera-oversigt giver oplysninger relateret til den aktuelle tilstand af Galera-replikering. Der er information som klyngestørrelse, flowkontrol sendt, flowkontrol modtaget, flowkontrol sat på pause.

Galera Server Charts har oplysninger om klyngenavn, klyngestatus, størrelse, global cachestørrelse.

Konklusion

MariaDB Server med standardreplikering og MariaDB Cluster er egentlig ikke forskellige produkter med hensyn til databaseservice, men de har forskellige karakteristika afhængigt af dine krav til tilgængelighed og skalerbarhed. ClusterControl understøtter både MariaDB Server med standardreplikering og MariaDB Cluster-implementeringer, så prøv begge opsætninger og fortæl os dine tanker.


  1. Betinget SQL-antal

  2. Postgres:konverter enkelt række til flere rækker (unpivot)

  3. MariaDB LCASE() Forklaret

  4. Hvordan SUBSTRING() virker i MariaDB