sql >> Database >  >> RDS >> MariaDB

MariaDB 10.3 beheren met ClusterControl

MariaDB Server is niet langer een rechtstreekse imitatie van MySQL. Het groeide uit tot een volwassen fork, die nieuwe functionaliteiten implementeert die vergelijkbaar zijn met wat propriëtaire databasesystemen in de upstream bieden. MariaDB 10.3 breidt de lijst met bedrijfsfuncties aanzienlijk uit en met de nieuwe SQL_MODE=Oracle wordt het een opwindende keuze voor bedrijven die hun Oracle-databases willen migreren naar een open source-database. Operationeel beheer is echter een gebied waar nog wat in te halen is, en MariaDB vereist dat u uw eigen scripts bouwt.

Misschien een mooie gelegenheid om eens naar een automatiseringssysteem te kijken?

Geautomatiseerde procedures zijn nauwkeurig en consistent. Ze kunnen u de hoognodige herhaalbaarheid bieden, zodat u het risico van verandering in de productiesystemen kunt minimaliseren. Omdat moderne open source-databases zich echter zo snel ontwikkelen, is het een grotere uitdaging om uw beheersystemen op één lijn te houden met alle nieuwe functies.

De logische volgende stap is het zoeken naar automatiseringsplatforms. Er zijn veel platforms die u kunt gebruiken om systemen te implementeren. Puppet, Chef en Ansible zijn waarschijnlijk de beste voorbeelden van die nieuwe trend. Deze platformen zijn geschikt voor het snel inzetten van diverse softwarediensten. Ze zijn perfect voor implementaties, maar vereisen nog steeds dat u de code onderhoudt, functiewijzigingen dekt en meestal slechts één aspect van uw werk beslaat. Zaken als back-ups, prestaties en onderhoud hebben nog steeds externe tools of scripts nodig.

Aan de andere kant hebben we cloudplatforms, met gepolijste interfaces en een verscheidenheid aan aanvullende services voor een volledig beheerde ervaring. Het is echter mogelijk niet haalbaar; bijvoorbeeld hybride omgevingen waar u mogelijk de cloud gebruikt, maar met nog steeds een aanzienlijke voetafdruk op locatie.

Dus, wat dacht je van een speciale beheerlaag voor je MariaDB-databases?

ClusterControl is ontworpen om de implementatie en het beheer van MariaDB en andere open-sourcedatabases te automatiseren. De kern van ClusterControl is functionaliteit waarmee u de databasetaken kunt automatiseren die u regelmatig moet uitvoeren, zoals het implementeren van nieuwe database-instanties en clusters, het beheren van back-ups, hoge beschikbaarheid en failover, topologiewijzigingen, upgrades, het schalen van nieuwe knooppunten en meer.

ClusterControl-installatie

Om met ClusterControl te beginnen, hebt u een speciale virtuele machine of host nodig. De vereisten voor de virtuele machine en ondersteunde systemen worden hier beschreven. U kunt minimaal beginnen met een kleine VM van 2 GB RAM, 2 CPU-cores en 20 GB opslagruimte, zowel op locatie als in de cloud.

De primaire installatiemethode is het downloaden van een installatiewizard die u door alle stappen leidt (OS-configuratie, downloaden en installeren van pakketten, maken van metagegevens en andere).

Voor omgevingen zonder internettoegang kunt u het offline installatieproces gebruiken.

ClusterControl is agentless, dus u hoeft geen extra software te installeren. Het vereist alleen SSH-toegang tot de databasehosts. Het ondersteunt ook agentgebaseerde monitoring voor monitoringgegevens met een hogere resolutie.

Om SSH zonder wachtwoord in te stellen voor alle doelknooppunten (ClusterControl en alle databasehosts), voert u de volgende opdrachten uit op de ClusterControl-server:

$ 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

Een van de handigste manieren om clusterbeheer uit te proberen, is misschien de optie om het in een docker-container uit te voeren.

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

Na een succesvolle implementatie zou u toegang moeten hebben tot de ClusterControl Web UI op {host's IP address}:{host's port}, bijvoorbeeld:

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

Installatie van MariaDB Cluster

Zodra we de ClusterControl-interface openen, moeten we eerst een nieuwe database implementeren of een bestaande importeren. De versie 1.7.2 introduceerde ondersteuning voor versie 10.3 (samen met 10.0,10.1,10.2). In 1.7.3, dat deze week werd uitgebracht, zien we de verbeterde implementatie van installatie in de cloud.

ClusterControl:implementeren/importeren

Op het moment van schrijven van deze blog zijn de huidige versies 10.3.16. De nieuwste pakketten worden standaard opgehaald. Selecteer de optie "Deploy Database Cluster" en volg de instructies die verschijnen.

Dit is het moment om gegevens te verstrekken die nodig zijn voor de verbinding tussen ClusterControl en DB-knooppunten. Bij deze stap zou u schone VM's of afbeeldingen van het besturingssysteem hebben die u binnen uw organisatie gebruikt. Bij het kiezen van MariaDB moeten we Gebruiker, Sleutel of Wachtwoord en poort specificeren om via SSH verbinding te maken met onze servers.

ClusterControl:Databasecluster implementeren

Nadat we de SSH-toegangsinformatie hebben ingesteld, moeten we de gegevens invoeren om toegang te krijgen tot onze database, voor MariaDB zal dat de root van de supergebruiker zijn. We kunnen ook specificeren welke repository we moeten gebruiken. U kunt drie soorten opslagplaatsen hebben bij het implementeren van databaseserver/cluster met ClusterControl:

  • Gebruik de leveranciersrepository. Lever software door de voorkeurssoftwarerepository van de databaseleverancier in te stellen en te gebruiken. ClusterControl installeert de nieuwste versie van wat wordt geleverd door de repository van de databaseleverancier.
  • Stel geen leveranciersopslagplaatsen in. Er worden geen repositories opgezet door ClusterControl. ClusterControl zal afhankelijk zijn van de systeemconfiguratie (uw standaard repositorybestanden).
  • Maak en spiegel de repository van de huidige databaseleverancier en implementeer deze vervolgens met behulp van de lokale gespiegelde repository. Hiermee kunt u de huidige versies van de softwarepakketten "bevriezen".

Wanneer alles is ingesteld, drukt u op de knop Implementeren. Het implementatieproces zorgt ook voor de installatie van aanvullende tools die door MariaDB worden geleverd, zoals mariabackup en tools van externe leveranciers, populair in databasebeheer.

Een nieuw cluster importeren

We hebben ook de mogelijkheid om een ​​bestaande setup te beheren door deze te importeren in ClusterControl. Zo'n omgeving kan gecreëerd worden door ClusterControl of andere methodes (puppet, chef, ansible, docker …). Het proces is eenvoudig en vereist geen gespecialiseerde kennis.

Eerst moeten we de SSH-toegangsreferenties invoeren voor onze bestaande databaseservers. Vervolgens voeren we de toegangsreferenties in voor onze database, de servergegevensdirectory en de versie. We voegen de knooppunten toe op IP of hostnaam, op dezelfde manier als wanneer we implementeren, en drukken op Importeren. Zodra de taak is voltooid, zijn we klaar om ons cluster te beheren vanuit ClusterControl. Op dit punt kunnen we ook de opties definiëren voor het automatisch herstel van het knooppunt of cluster.

ClusterControl:bestaande 10.3 databasecluster importeren

MariaDB schalen, meer knooppunten toevoegen aan DB-cluster

Met ClusterControl is het toevoegen van meer servers aan de server een eenvoudige stap. U kunt dat doen vanuit de GUI of CLI. Voor meer gevorderde gebruikers kunt u ClusterControl Developer Studio gebruiken en een resourcebasisvoorwaarde schrijven om uw cluster automatisch uit te breiden.

ClusterControl:MariaDB-knooppunt toevoegen

ClusterControl ondersteunt een optie om een ​​bestaande back-up te gebruiken, dus het is niet nodig om het productiehoofdknooppunt te overweldigen met extra werk.

MariaDB beveiligen

De standaard MariaDB-installatie wordt geleverd met ontspannen beveiliging. Dit is verbeterd met de recente versies, maar systemen van productiekwaliteit vereisen nog steeds aanpassingen in de standaard my.cnf-configuratie. ClusterControl-implementaties worden geleverd met niet-standaard my.cnf-instellingen (verschillend voor verschillende clustertypen).

ClusterControl verwijdert menselijke fouten en biedt toegang tot een reeks beveiligingsfuncties om uw databases automatisch te beschermen tegen hacks en andere bedreigingen.

ClusterControl:Beveiligingspaneel

ClusterControl maakt SSL-ondersteuning voor MariaDB-verbindingen mogelijk. Het inschakelen van SSL voegt een extra beveiligingsniveau toe voor de communicatie tussen de applicaties (inclusief ClusterControl) en de database. MariaDB-clients openen versleutelde verbindingen met de databaseservers en verifiëren de identiteit van die servers voordat ze gevoelige informatie overdragen.

ClusterControl voert alle noodzakelijke stappen uit, inclusief het maken van certificaten op alle databaseknooppunten. Dergelijke certificaten kunnen later worden onderhouden op het tabblad Sleutelbeheer.

Met ClusterControl kunt u ook auditing inschakelen. Het maakt gebruik van de audit-plug-in van MariaDB. Continue auditing is een noodzakelijke taak voor het bewaken van uw databaseomgeving. Door uw database te controleren, kunt u verantwoordelijkheid nemen voor ondernomen acties of geopende inhoud. Bovendien kan de audit enkele kritieke systeemcomponenten bevatten, zoals degene die verband houden met financiële gegevens ter ondersteuning van een precieze reeks voorschriften zoals SOX of de EU AVG-verordening. Met het begeleide proces kunt u kiezen wat er moet worden gecontroleerd en hoe u de controlelogboekbestanden wilt onderhouden.

Bewaking en waarschuwing

Als u met databasesystemen werkt, moet u deze kunnen controleren. Zo kunt u trends identificeren, upgrades of verbeteringen plannen of effectief reageren op eventuele problemen of fouten die zich kunnen voordoen.

ClusterControl:overzicht

Het nieuwe ClusterControl gebruikt Prometheus als de gegevensopslag met de PromQL-querytaal. De lijst met dashboards omvat Server General, Server Caches, InnoDB Metrics, Replication Master, Replication Slave, Systeemoverzicht en Clusteroverzicht Dashboards.

ClusterControl:DashBoard

ClusterControl installeert Prometheus-agents, configureert metrische gegevens en onderhoudt toegang tot de configuratie van Prometheus-exporteurs via de GUI, zodat u de parameterconfiguratie zoals collectorvlaggen voor de exporteurs (Prometheus) beter kunt beheren.

Als database-operator moeten we worden geïnformeerd wanneer er iets kritieks in onze database gebeurt. De drie belangrijkste methoden in ClusterControl om een ​​waarschuwing te krijgen zijn:

  • e-mailmeldingen
  • integraties
  • adviseurs
ClusterControl:integratieservices

U kunt de e-mailmeldingen op gebruikersniveau instellen. Ga naar Instellingen> E-mailmeldingen. Waar u kunt kiezen tussen kritiekheid en het type waarschuwing dat moet worden verzonden.

De volgende methode is om de integratieservices te gebruiken. Dit is om de specifieke categorie evenementen door te geven aan de andere service, zoals ServiceNow-tickets, Slack, PagerDuty, enz., zodat u geavanceerde meldingsmethoden en integraties binnen uw organisatie kunt creëren.

De laatste is om geavanceerde metrische analyse in de sectie Advisor te betrekken, waar u intelligente controles en triggers kunt bouwen.

ClusterControl:adviseurs

SQL-bewaking

De SQL Monitoring is verdeeld in drie secties.

  • Belangrijkste zoekopdrachten - presenteert de informatie over zoekopdrachten die een aanzienlijk deel van de middelen vergen. Query-monitor:meest voorkomende zoekopdrachten
  • Zoekopdrachten uitvoeren - het is een proceslijst met informatie die is gecombineerd van alle databaseclusterknooppunten in één weergave. U kunt dat gebruiken om query's te doden die van invloed zijn op uw databasebewerkingen. Query Monitor:Query's uitvoeren
  • Uitschieters voor zoekopdracht - presenteer de lijst met zoekopdrachten met een uitvoeringstijd die langer is dan gemiddeld. Query Monitor:Query-uitschieters

Back-up en herstel

Nu u uw MariaDB in gebruik heeft en uw monitoring op zijn plaats heeft, is het tijd voor de volgende stap:zorg ervoor dat u een back-up van uw gegevens hebt.

ClusterControl:back-uprepository

ClusterControl biedt een interface voor MariaDB-back-upbeheer met ondersteuning voor planning en creatieve rapporten. Het geeft je twee opties voor back-upmethoden.

  • Logische back-up (tekst):mysqldump
  • Binaire back-ups:xtrabackup (lagere versies), mariabackup

Een goede back-upstrategie is een essentieel onderdeel van elk databasebeheersysteem. ClusterControl biedt veel opties voor back-ups en herstel/herstel.

ClusterControl back-upretentie is configureerbaar; u kunt ervoor kiezen om uw back-up voor elke tijdsperiode te bewaren of om back-ups nooit te verwijderen. AES256-codering wordt gebruikt om uw back-ups te beveiligen tegen frauduleuze elementen. Voor snel herstel kunnen back-ups direct in een nieuw cluster worden teruggezet - ClusterControl verzorgt het volledige herstelproces vanaf de lancering van een nieuwe databaseconfiguratie tot het herstel van gegevens, waarbij foutgevoelige handmatige stappen uit het proces worden verwijderd.

Back-ups kunnen na voltooiing automatisch worden geverifieerd en vervolgens worden geüpload naar cloudopslagservices (AWS, Azure en Google). Er kunnen verschillende bewaarbeleidsregels worden gedefinieerd voor lokale back-ups in het datacenter en voor back-ups die in de cloud worden geüpload.

Automatisch herstel van knoop- en cluster

ClusterControl biedt geavanceerde ondersteuning voor storingsdetectie en -afhandeling. Het stelt je ook in staat om verschillende proxy's te implementeren om ze te integreren met je HA-stack, dus het is niet nodig om de applicatieverbindingsreeks of DNS-invoer aan te passen om de applicatie om te leiden naar het nieuwe hoofdknooppunt.

Wanneer de masterserver niet beschikbaar is, maakt ClusterControl een taak om automatische failover uit te voeren. ClusterControl doet al het achtergrondwerk om een ​​nieuwe master te kiezen, failover-slaveservers te implementeren en load balancers te configureren.

ClusterControl automatische failover is ontworpen met de volgende principes:

  • Zorg ervoor dat de master echt dood is voordat je een failover uitvoert
  • Slechts één keer failover
  • Maak geen failover naar een inconsistente slaaf
  • Schrijf alleen naar de master
  • Herstel de mislukte master niet automatisch

Met de ingebouwde algoritmen kan een failover vaak vrij snel worden uitgevoerd, zodat u verzekerd bent van de hoogste SLA's voor uw database-omgeving.

ClusterControl:automatisch herstel

Het proces is zeer configureerbaar. Het wordt geleverd met meerdere parameters die u kunt gebruiken om herstel aan te passen aan de specifieke kenmerken van uw omgeving. Onder de verschillende opties vindt u replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script en vele anderen.

Failover is het proces waarbij tijdens een storing of onderhoudsgebeurtenis wordt overgeschakeld naar een gezonde standby-component om de uptime te behouden. Hoe sneller het kan, hoe sneller je weer online bent. Als je downtime wilt minimaliseren en aan je SLA's wilt voldoen via een geautomatiseerde aanpak voor TimescaleDB, dan is deze blog iets voor jou.

MaxScale Load Balancer

Naast MariaDB 10.3 voegt ClusterControl een optie van MaxScale 2.3 load balancer toe. MaxScale is een SQL-bewuste proxy die kan worden gebruikt om omgevingen met een hoge beschikbaarheid te bouwen. Het wordt geleverd met tal van functies, maar het belangrijkste doel is om load balancing en hoge beschikbaarheid mogelijk te maken.

ClusterControl:MaxScale

MaxScale kan worden gebruikt om de status van de master MariaDB-node te volgen en, als deze faalt, een snelle, automatische failover uit te voeren. Geautomatiseerde failover is cruciaal bij het opbouwen van een zeer beschikbare oplossing die snel kan herstellen van de storing.

Load Balance Database-sessies

Splitsen van lezen en schrijven is een kritieke functie om leesschaling mogelijk te maken. Het is voldoende dat de applicatie verbinding maakt met de MaxScale en de topologie detecteert, bepaalt welke MariaDB als master fungeert en welke als slave. Het leidt het verkeer dienovereenkomstig naar dit.

Samenvatting

We hopen dat deze blog u helpt om vertrouwd te raken met de beheermodules van ClusterControl en MariaDB 10.3. De beste optie is om ClusterControl te downloaden en ze allemaal te testen.


  1. SQL Server v.Next:STRING_AGG Prestaties, deel 2

  2. Kan PostgreSQL matrixkolommen indexeren?

  3. Hoe maak je een snelkoppeling voor SSMS en maak je automatisch verbinding met de standaard SQL-server - SQ:Server / TSQL-zelfstudie, deel 4

  4. Een Oracle Database 12c maken – Stap voor stap