Tidligere havde vi blogget om sikkerhedskopiering af din Moodle MySQL-database. Denne gang handler det om at sikkerhedskopiere din Moodle MariaDB-database. Faktisk deler den den samme tilgang, når du sikkerhedskopierer din Moodle MySQL-database, som med din Moodle MariaDB-database. Siden MariaDB 10.2 har den dog langsomt afveget og har fortsat drastiske forskelle med MySQL-versionen. I denne forbindelse skal du være opmærksom på tilgange, du måske skal overveje, når du sikkerhedskopierer din MariaDB i modsætning til MySQL, hvis du var fra den.
Bedste fremgangsmåder til at lave din Moodle MariaDB-sikkerhedskopi
Lad os overveje dette emne først. At tage en sikkerhedskopi til dine Moodle-data skal anvende den bedste praksis for din MariaDB-sikkerhedskopi, da dette giver dig sikkerhed og forsikring, især når katastrofe eller katastrofe opstår i uforudsigelige situationer.
Så hvad er der med det her? At tage en sikkerhedskopi til din Moodle har i det mindste at gøre med følgende sikkerhedskopier:
- Logisk sikkerhedskopiering
- Fysisk kopi af din sikkerhedskopi
- Point-in-Time (inkrementel) gendannelse
Logisk sikkerhedskopiering
En logisk sikkerhedskopi af data gemmes i et menneskelæsbart format som SQL. Logiske sikkerhedskopier gemmer information repræsenteret som logisk databasestruktur (CREATE DATABASE, CREATE TABLE-sætninger) og indhold (INSERT-sætninger eller afgrænsede tekstfiler). Denne type sikkerhedskopiering er velegnet til mindre mængder data, hvor du kan redigere dataværdierne eller tabelstrukturen eller genskabe dataene på en anden maskinarkitektur. Hvis du har en tendens til at bruge en enorm database backup, skal du sikre dig, at du har komprimering aktiveret. Advarsel, da dette kan tage meget diskplads, især.
I MariaDB er et almindeligt værktøj at bruge mysqldump, men det vil ændre sig i fremtiden med mariadb-dump, der starter MariaDB 10.4.6 eller 10.5.2 og fremefter. Alternativt er et almindeligt værktøj at bruge til MySQL/MariaDB DBA's mydumper, hvis du ønsker en parallel backup til din logiske sikkerhedskopi. Selvom der er nogle problemer i nogle versioner, eller det kan have problemer, især for de nyeste versioner af MariaDB. Hvis du vil bruge dette, så vær opmærksom på dine backup-logfiler, når du opretter en kopi.
Fysisk sikkerhedskopiering
Fysisk backup indeholder databasens binære data, som består af råkopier af de mapper og filer, der gemmer databaseindhold. Dette er en passende handling at tage, især for en stor database, og det er hurtigere at gendanne en fuld kopi af databasen sammenlignet med en logisk sikkerhedskopi. På den anden side tager det tid at tage en fuld fysisk backup, især hvis du har et meget stort datasæt. Det afhænger også af, hvilke parametre du har aktiveret eller indstillet, som kan påvirke dens backup-ETA.
Et almindeligt værktøj til brug for MariaDB er at bruge mariabackup. Mariabackup er et open source-værktøj leveret af MariaDB. Det er en gaffel af Percona XtraBackup designet til at arbejde med krypterede og komprimerede tabeller og er den anbefalede backupmetode til MariaDB-databaser.
Point-in-Time Recovery (PITR)
Gendannelse på tidspunkter henviser til gendannelse af dataændringer op til et givet tidspunkt. Dette givne tidspunkt er det ønskede genopretningsmål, som er blevet fastlagt og krævet at blive sat på plads igen, og som anvendes under genopretning. PITR er en point-forward-gendannelse, og det betyder, at du kan gendanne data fra ønsket starttidspunkt til det ønskede sluttidspunkt, for den modsatte læsning Brug af MariaDB Flashback på en MySQL-server. PITR betragtes også som en ekstra metode til databeskyttelse, da den sikrer tab af vigtig information.
I almindelige situationer udføres din PITR-sikkerhedskopi, der er relevant for din type gendannelse, efter gendannelse af en fuld sikkerhedskopi, der bringer serveren til dens tilstand på det tidspunkt, hvor sikkerhedskopien blev lavet. Point-in-time gendannelse bringer derefter serveren opdateret trinvist fra tidspunktet for den fulde backup til et nyere tidspunkt. Det fremskynder også opbygningen af en replika i en replikeringsklynge fra at indhente din MariaDB primære eller aktive skribent-database.
Så hvad er disse sikkerhedskopier? I MariaDB er de almindelige sikkerhedskopier, der gælder for din PITR, dine binære logfiler. Binær logning skal konfigureres korrekt i din MariaDB-database, og den skal være aktiveret. Hvis du bruger ClusterControl, er dette muligvis ikke svært for dig at konfigurere, da det konfigureres til dig automatisk og er aktiveret, især når du opsætter en replikeringsklynge.
Når du anvender PITR, er det mest almindelige værktøj at bruge mysqlbinlog eller mariadb-binlog til MariaDB 10.5.2 og fremefter.
Bedste metode til sikkerhedskopiering af din Moodle MariaDB-database
Når du udfører din Moodle MariaDB-database, skal du altid tage din backup i ikke-spidsbelastningstider, eller når trafikken er for lav. Før du gør dette, skal du sikre dig, at du har testet sikkerhedskopien, og at den er blevet afsluttet. Når du er færdig, test en gendannelse, om din sikkerhedskopi er nyttig eller ej, og at den opfylder dine behov, når der er behov for datagendannelse, eller når du har brug for din sikkerhedskopi for at oprette et andet sæt klynger (QA, dev eller udvide til et andet datacenter). Grundlæggende skal de følgende underafsnit være den tilgang og opsætning, du skal forholde dig til.
Opsæt en replika og tag backup på replika
Hvis du ikke er bekendt med replikering, så læs vores hvidbog MySQL-replikering for høj tilgængelighed. Grundlæggende skal du ikke skåne din aktive skribent eller primære databasenode for at udføre eller køre en sikkerhedskopi. At tage en sikkerhedskopi skal testes, og den skal ikke udføres i produktionen, hvis den endnu ikke er blevet testet med et sæt kommandoer og dens sikkerhedskopieringspolitik, du har oprettet. Når den er god, skal du bare lade den ligge og rette den mod en replika. Du kan tage en sikkerhedskopi fra din primære/master MariaDB-database, hvis du ikke har noget valg eller i det mindste er sikker på, hvad du gør.
Kør sikkerhedskopiering i ikke-spidsbelastningstider
Når du udfører en sikkerhedskopiering, skal du sikre dig, at det er dine spidsbelastningstider. Din replika skal være nul lag som muligt, så de mest opdaterede data bliver sorte op.
Opret en sikkerhedskopieringspolitik
Sikkerhedskopieringspolitikken består af dine parametre og tidsplan, som din backup starter. For parametrene skal du sørge for, at det er tilstrækkeligt til dine behov, dvs. sikkerhed, komprimering osv. Tidsplanen skal være permanent, så din backup skal være der, når det er nødvendigt i tider med katastrofe, og der er behov for datagendannelse. Du skal også være i stand til at bestemme dit gendannelsestidsmål, så du kan bestemme, hvor ofte din backup-plan skal køre, og hvornår.
Sådan opretter du en sikkerhedskopi af din Moodle MariaDB-database
Brug af mariadb-dump/mysqldump
Kommandoen nedenfor skal oprette din database backup til Moodle. I dette eksempel er databasenavnet moodle. Vi inkluderede triggere, lagrede procedurer eller rutiner og hændelser. Udskriv GTID'et og masteroplysningerne, hvilket er nyttigt, når du vil klargøre en replika fra den primære eller masterdatabasenoden.
$ /usr/bin/mariadb-dump --defaults-file=/etc/my.cnf --flush-privileges --hex-blob --opt --master-data=2 --single-transaction --skip-lock-tables --triggers --routines --events --gtid --databases moodle
Du kan ganske enkelt erstatte mariadb-dump med mysqldump, hvis du bruger MariaDB version <10.5.2. Hvis du har brug for at komprimere, kan du køre kommandoen nedenfor:
$ /usr/bin/mysqldump --defaults-file=/etc/my.cnf --flush-privileges --hex-blob --opt --master-data=2 --single-transaction --skip-lock-tables --triggers --routines --events --gtid --databases moodle |gzip -6 -c > /backups/backup-n1/mysqldump_2021-01-25_182643_schemaanddata.sql.gz
Brug af mariabackup
Mariabackup kan nemt tages. Til dette vil vi bruge mbstream som det ønskede streaming- og arkiveringsformat. Du kan bruge kommandoen nedenfor:
$ /usr/bin/mariabackup --defaults-file=/etc/my.cnf --backup --parallel 1 --stream=xbstream > backup.xbstream
Hvis du sigter efter at komprimere det, kan du udføre følgende kommando:
$ /usr/bin/mariabackup --defaults-file=/etc/my.cnf --backup --parallel 1 --stream=xbstream | gzip -6 - > backup.xbstream.gz
Brug af ClusterControl
Hvis du skifter til en administreret løsning specielt til at tage backup af din Moodle, tager ClusterControl det på en enkel måde, men tilbyder avancerede funktioner til at tage backup. Tag et kig på skærmbilledet nedenfor:
At tage en sikkerhedskopi er meget enkel og nem at oprette. Alt du skal gøre er at gå til
I skærmbilledet ovenfor har jeg mysqldump, mysqldump med PITR-kompatibel og mariabackup. Du kan vælge, hvilken vært der skal tage backup af. Som nævnt tidligere, sørg for, at du tager backup på replikaen eller slaven. Det betyder, at du skal sikre dig, at slaven er valgt. Se skærmbillede nedenfor:
Mens du vælger eller vælger mysqldump, giver ClusterControl brugeren mulighed for at vælge typen af data, der skal dumpes. Dette inkluderer også en PITR-kompatibel dump til backup. Se skærmbillede nedenfor:
For din binære eller fysiske backup, bortset fra mysqldump som din logiske backup, du kan vælge mariabackup enten fuld eller inkrementel. Se nedenfor:
Lagringsplaceringer tillader kun brugeren at vælge enten at blive på noden eller stream det til ClusterControl-værten. Hvis du har en ekstern server, der ikke er registreret til ClusterControl, kan du bruge NFS til at montere den volumen, du ønsker, at din backup skal dumpes. Selvom det måske ikke er ideelt, men i nogle tilfælde vil dette tilfredsstille, især hvis netværksbåndbredden eller netværksoverførslen er hurtig nok til at streame dataene lokalt til den anden node via netværket.
I bund og grund kan du vælge de sikkerhedskopier, der skal uploades til skyen. Du kan se skærmbilledet tidligere og bare markere afkrydsningsfeltet for at aktivere det ligesom nedenfor:
Som tidligere nævnt tager ClusterControl sikkerhedskopien på en enkel måde at bruge avancerede funktioner, her er de muligheder, du kan indstille.
For mysqldump,
Til mariabackup,
meget let at bruge. ClusterControl tilbyder også sikkerhedskopiering og gendannelse af sikkerhedskopier, så det er nemt for dig at afgøre, om sikkerhedskopiering er nyttig eller ej. Dette hjælper, at din Moodle-databasesikkerhedskopiering er nyttig, især når datagendannelse skal anvendes til nødsituationer og gendannelse.
Konklusion
Det kan være nemt at sikkerhedskopiere din Moodle MariaDB-database, men når data bliver større, og trafikken bliver højere, kan det være en stor udfordring. Du skal blot følge bedste praksis, sikre dig, at du har sikret dine data, sikre, at din sikkerhedskopi er verificeret, og at den er nyttig, når datagendannelse skal anvendes.