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

Sådan implementeres en MariaDB-klynge for høj tilgængelighed

MariaDB Cluster er et Multi Master-replikeringssystem bygget af MariaDB Server, MySQL wsrep-patch og Galera wsrep-udbyder.

Galera er baseret på en synkron (eller 'virtuelt synkron') replikeringsmetode, som sikrer, at dataene anvendes til andre noder, før de committes. At have de samme data på alle noder betyder, at nodefejl let kan tolereres, og ingen data går tabt. Det er også nemmere at failover til en anden node, da alle noder er opdateret med de samme data. Det er rimeligt at sige, at MariaDB Cluster er en høj tilgængelighedsløsning, der kan opnå høj oppetid for organisationer med strenge databaseserviceniveauaftaler.

Udover at administrere høj tilgængelighed kan den også bruges til at skalere databasetjenesten og udvide tjenesten til flere regioner.

MariaDB Cluster Deployment

MariaDB Cluster i ClusterControl er virkelig ligetil og tilgængelig i den gratis at bruge Community Edition. Du kan gå gennem "Deploy", vælg MySQL Galera som vist nedenfor:

Fyld SSH-bruger- og legitimationsoplysninger, klyngenavn, som du vil bruge og derefter Fortsæt.

Vælg MariaDB som leverandør af den database, du vil installere. Server Data Directory, Server Port kan bruge standardkonfigurationen, medmindre du definerer en specifik konfiguration. Udfyld Admin/Root-database-adgangskoden og til sidst Tilføj Node for at tilføje mål-IP-adresserne for databasenoder.

Galera noder kræver mindst 3 noder, eller du kan bruge 2 database noder og galera arbiter konfigureret på en separat vært.

Når alle felter er udfyldt, skal du blot implementere klyngen. Det vil udløse et nyt job for at oprette klynge som vist nedenfor:

Maxscale Deployment

Maxscale er en databasebelastningsbalancer, databaseproxy og firewall, der sidder mellem din applikation og MariaDB-noderne. Nogle af Maxscale-funktionerne er:

  • Automatisk failover for høj tilgængelighed
  • Trafikbelastningsbalancering (læse- og skriveopdeling)
  • Trafikkontrol for forespørgsler og forbindelser.

Der er to måder at gå gennem Load Balancer Deployment, du kan "Tilføj Load Balancer" i Cluster Menu som vist nedenfor:

Eller du kan gå til Administrer -> Load Balancer. Det vil gå til den samme side, som er Load Balancer-siden. Vælg fanen "Maxscale" for implementering af Maxscale load balancer:

Vælg serveradressen, definer maxscale brugernavn og adgangskode, du kan lade standardkonfiguration for tråde og læse/skriveport. Inkluder også MariaDB-knudepunkterne, der skal tilføjes i belastningsbalanceren. Du kan "Deploy MaxScale" for at implementere MaxScale-databaseproxy og belastningsbalancering.

Den bedste praksis for at gøre load balanceren yderst tilgængelig er at konfigurere mindst 2 MaxScale-instanser på forskellige værter.

Keelived implementering

Keepalived er en dæmontjeneste i linux, der bruges til sundhedstjek, og bruges også til failover, hvis en af ​​serverne er nede. Mekanismen bruger VIP (Virtuel IP-adresse) for at opnå høj tilgængelighed, bestående af en server, der fungerer som Master, og den anden fungerer som Backup.

Implementering af Keepalived er service kan udføres på Administrer -> Load Balancer.

Vælg venligst din Load Balancer-type, som er MaxScale. I øjeblikket understøtter ClusterControl HAProxy, ProxySQL og MaxScale som belastningsbalancere, der kan integreres med Keepalved. Definer din virtuelle IP (VIP) og netværksgrænseflade for virtuel IP-adresse.

Derefter skal du bare klikke på Deploy Keepalived. Det vil udløse et nyt job til at implementere Keepalived på begge MaxScale-værter.

Den endelige arkitektur for MariaDB Cluster for High Availability består af 3 databasenoder, 2 load balancer node og en keepalive service oven på hver load balancer som vist på Topologien nedenfor:

Konklusion

Vi har vist, hvordan vi hurtigt kan implementere en High Availability MariaDB Cluster med MaxScale og Keepalved via ClusterControl. Vi gennemgik opsætningerne for databasenoder og proxynoder. For at læse mere om Galera Cluster, tjek vores online tutorial. Bemærk, at ClusterControl også understøtter andre belastningsbalancere som ProxySQL og HAProxy. Prøv disse, og lad os vide, hvis du har spørgsmål.


  1. Mysql eller/og forrang?

  2. Sådan udføres PL SQL Block i Oracle

  3. Maksimal størrelse af en varchar(max) variabel

  4. SECOND() Eksempel – MySQL