sql >> Databasteknik >  >> RDS >> Mysql

Bygga en mycket tillgänglig databas för Moodle med MySQL-replikering

Moodle är ett lärandehanteringssystem med öppen källkod, som används i stor utsträckning av skolor och universitet runt om i världen. Projektet startade 2002 av Martin Dougiamas, med syftet att ge elever, lärare, utbildare en säker, robust, öppen och gratis plattform för inlärningsmiljöer.

Mjukvaran i sig är skriven i PHP och stöder olika RDBMS, som:Oracle, MySQL, PostgreSQL, MariaDB, etc.

I den här bloggen kommer vi att diskutera hur man gör Moodle-databasen motståndskraftig med MySQL-replikering, som behövs för att stödja en Moodle-distribution med hög tillgänglighet. Vi kommer att distribuera genom ClusterControl en databasinstallation bestående av master/slav MySQL-replikering med redundanta databasbelastningsutjämnare.

Arkitektur

MySQL-replikering är ett populärt sätt att uppnå redundans för databasen. Det är viktigt att se till att alla skrivningar skickas till mastern, medan läsningar kan lastbalanseras mellan slavarna. För att göra det ska vi använda ProxySQL som är en databasmedveten lastbalanserare som tar hand om att dela upp skrivtrafiken och skicka den till mastern. Eftersom masterrollen kan flyttas till en annan server, till exempel vid en databaskrasch, kan ProxySQL hålla reda på den nya mastern och se till att skrivtrafik dirigeras därefter. En VirtualIP hanteras av Keepalved för att säkerställa en robust databasslutpunkt för alla Moodle-applikationsservrar.

Övervakning och felhantering

I diagrammet ovan föreslår vi två repliker som slavar av huvuddatabasen. I händelse av masterkrasch kommer en av replikerna att befordras till ny master. Det kommer fortfarande att finnas en replik kvar för att hantera saker som läsningar, säkerhetskopior, rapportering osv. 

Applikationsanslutningen använder en VIP (Virtuell IP-adress) i databasanslutningssträngen, så om något händer på databassidan kommer det att minimera påverkan från din applikation och du behöver inte konfigurera om något. ClusterControl är komponenten som håller ett öga på databaserna och automatiserar failover, till exempel marknadsföring av en av replikerna till ny master och återställer den misslyckade databasservern.

Databasinställningar

Vi kommer att använda ClusterControl för att distribuera vår databasinstallation.

Först måste du ha en dedikerad server för ClusterControl-installationen. Installationen är väldigt enkel, du behöver bara ladda ner install-cc från fleranines repository, ge körrättighet för filen och köra den. Som visas nedan:  

$ wget http://www.severalnines.com/downloads/cmon/install-cc

$ chmod +x install-cc

$ sudo ./install-cc   # omit sudo if you run as root

Du kan köra ovanstående skript i alla slags Linux-varianter. Det kommer att distribuera allt som krävs av ClusterControl.

När du har ClusterControl igång, välj knappen Distribuera från ClusterControl Dashboard.

 

Den kommer att visa en ny sida som visar några alternativ. Vi väljer det första distributionsalternativet för vår MySQL-replikeringsinstallation.

Du måste ha tillgång till måldatabasservern via SSH. Glöm inte att aktivera lösenordslös SSH och ge sudo-åtkomst till användaren. Definiera klusternamnet och klicka på Fortsätt som visas nedan:

På nästa sida måste du välja leverantör av databasen, version av databasen du vill installera, root-lösenordet, serverporten om du vill ha anpassade eller specifika portar och MySQL-datakatalogen.

När all information är ifylld kan du gå till nästa steg, som är Definiera topologisidan. Fyll i ip-adressen till databasservern, i det här fallet när vi ställer in MyQL-replikeringen med 1 master och 2 repliker.

Deploy kommer nu att utlösa ett jobb som kommer att "Skapa kluster", du bara måste vänta tills jobbet är klart.

ProxySQL-inställningar

När databasen har distribuerats kan du gå igenom Load Balancer från din klustermeny. Gå till Hantera -> Load Balancer. Det kommer att visas som nedan:

Isättning av ProxySQL kräver att du fyller i viss information som IP-adressen där du vill installera ProxySQL, lösenord för administration och övervakning av användare, och göra det möjligt för instansen att ladda balans. Efter det klickar du bara på Distribuera. För hög tillgänglighet behöver du minst 2 lastbalanserare installerade framför databasen.

Keelived konfiguration

Keelived-tjänsten används för att göra din lastbalanserare mycket tillgänglig. Inställningen är väldigt enkel, fortfarande på lastbalanseringssidan finns det en flik för Keepalived som visas nedan:

Välj typ av belastningsutjämning, i det här fallet använder vi ProxySQL, välj ProxySQL-tjänsten för keepalived. Fyll i den virtuella IP-adressen och nätverksgränssnittet. Efter det klickar du bara på Deploy Keepalived, det kommer automatiskt att utlösa ett nytt jobb för att konfigurera tjänsten.

Programinställningar

Innan du installerar moodle-applikationen måste du förbereda användaruppgifterna och själva databasen. För inloggningsuppgifterna kan du gå till:Hantera -> Schema och användare.

Du måste fylla i viss information, t.ex.:användarnamn, lösenord, värdnamn och privilegium. Efter det klickar du bara på Skapa användare. Detta låter dig skapa en användare för Moodle-applikationen:

För att skapa databasen kan du välja fliken Skapa databas på samma sida som användare.

Nästa steg är att konfigurera autentiseringsuppgifterna på ProxySQL-sidan, du kan importera autentiseringsuppgifter som du hade skapat i ProxySQL. Du kan gå till ProxySQL-noden, välj fliken Användare, det finns en Importera användare-knapp på höger sida.

Sök efter moodle_application-användaren och välj sedan användaren. På nästa sida måste du definiera standardvärdgruppen för användaren och sedan importera användare.

Vänligen upprepa stegen för att importera användarna till den andra ProxySQL-noden, eller du kan använda Synkroniseringsinstanserna i ProxySQL-menyn.

Du måste ladda ner moodle-applikationen från moodles officiella webbplats (re. https ://download.moodle.org/), den senaste versionen när denna blogg skrivs är 3.9.1. De tillhandahåller två typer av komprimerade filer, zip-komprimerade och tar zip. Ladda ner zip-filen och lägg filen på dina applikationsservrar. Kolla in kraven för moodle-programvara, dvs:webbserver, PHP-bibliotek.

Extrahera zip-filerna till temp-katalogen, skapa katalogen /var/www/html/moodle, kopiera den extraherade katalogen till mappen. Glöm inte att ge tillstånd 0755 för katalogen. Efter det kan du komma åt webbläsaren för nästa installation. Välj språk som visas nedan:

Välj databasdrivrutinen för din MySQL-installation enligt nedan:

Du måste fylla i en del databasuppgifter som du har gjort tidigare, för exempel:användarnamn, lösenord, värd, databas, port. Värdnamnet ska vara din virtuella IP-adress och porten är ProxySQL-port, vilket är 6032.

Databasvärden skulle vara din virtuella IP-adress. När du har fyllt i fälten klickar du på Nästa och sedan är du klar.

Att bygga en mycket tillgänglig databas för Moodle med ClusterControl är mycket enkelt och okomplicerat, du kan bygga din egen databas som kommer att stödja din 99,99 % tjänstetid.


  1. Återställ sekvensvärdet till 1

  2. Felaktiga resultat med Merge Join

  3. Exempel på SQL Server FÖR JSON PATH (T-SQL)

  4. Mjukvaruföretag som arbetar med Oracle D2k, PLSQL Technologies i Noida