sql >> Databasteknik >  >> RDS >> MariaDB

Hur du säkerhetskopierar din Moodle MariaDB-databas

Tidigare hade vi bloggat om att säkerhetskopiera din Moodle MySQL-databas. Den här gången handlar det om att säkerhetskopiera din Moodle MariaDB-databas. Faktum är att den delar samma tillvägagångssätt när du säkerhetskopierar din Moodle MySQL-databas som med din Moodle MariaDB-databas. Men sedan MariaDB 10.2 har den sakta avvikit och fortsätter att ha drastiska skillnader med MySQL-versionen. I detta avseende, var uppmärksam på tillvägagångssätt du kan behöva överväga när du säkerhetskopierar din MariaDB i motsats till MySQL om du var från den.

Bästa metoder för att säkerhetskopiera din Moodle MariaDB

Låt oss överväga detta ämne först. Att ta en säkerhetskopia för dina Moodle-data måste tillämpa de bästa metoderna för din MariaDB-säkerhetskopiering eftersom detta ger dig säkerhet och försäkran, särskilt när en katastrof eller katastrof inträffar i oförutsägbara situationer.

Så vad är det med det här? Att ta en säkerhetskopia för din Moodle har åtminstone att göra med följande säkerhetskopior:

  • Logisk säkerhetskopiering
  • Fysisk kopia av din säkerhetskopia
  • Time-in-Time (inkrementell) återställning

Logisk säkerhetskopiering

En logisk säkerhetskopia av data lagras i ett läsbart format som SQL. Logiska säkerhetskopior sparar information representerad som logisk databasstruktur (CREATE DATABASE, CREATE TABLE-satser) och innehåll (INSERT-satser eller avgränsade textfiler). Denna typ av säkerhetskopiering är lämplig för mindre mängder data där du kan redigera datavärdena eller tabellstrukturen, eller återskapa data på en annan maskinarkitektur. Om du tenderar att använda en enorm databasbackup, se till att du har komprimering aktiverad. Varning eftersom detta kan ta mycket diskutrymme, särskilt.

I MariaDB är ett vanligt verktyg att använda mysqldump, men det kommer att ändras i framtiden med mariadb-dump som startar MariaDB 10.4.6 eller 10.5.2 och framåt. Alternativt är ett vanligt verktyg att använda för MySQL/MariaDB DBA:s mydumper om du vill ha en parallell backup för din logiska säkerhetskopia. Även om det finns några problem i vissa versioner eller det kan ha problem speciellt för de senaste versionerna av MariaDB. Om du vill använda detta, var uppmärksam på dina backuploggar när du skapar en kopia.

Fysisk säkerhetskopiering

Fysisk säkerhetskopia innehåller databasens binära data som består av råkopior av de kataloger och filer som lagrar databasinnehåll. Detta är en lämplig åtgärd att vidta speciellt för en stor databas och det är snabbare att återställa en fullständig kopia av databasen jämfört med en logisk säkerhetskopia. Å andra sidan tar en fullständig fysisk säkerhetskopia tid, särskilt om du har en mycket stor datamängd. Det beror också på vilka parametrar du har aktiverat eller ställt in som kan påverka dess ETA för säkerhetskopiering.

Ett vanligt verktyg att använda för MariaDB är att använda mariabackup. Mariabackup är ett verktyg med öppen källkod som tillhandahålls av MariaDB. Det är en gaffel av Percona XtraBackup designad för att fungera med krypterade och komprimerade tabeller, och är den rekommenderade säkerhetskopieringsmetoden för MariaDB-databaser.

Point-in-Time Recovery (PITR)

Återställning vid tidpunkt avser återställning av dataändringar upp till en given tidpunkt. Denna givna tidpunkt är det önskade återhämtningsmålet som har bestämts och måste sättas tillbaka på plats, som tillämpas under återhämtningen. PITR är en punkt-framåt-återställning och det betyder att du kan återställa data från önskad starttid till önskad sluttid, för motsatt läsning Använda MariaDB Flashback på en MySQL-server. PITR anses också vara en ytterligare metod för dataskydd, eftersom den skyddar förlust av viktig information.

I vanliga situationer utförs din PITR-säkerhetskopia som är tillämplig för din typ av återställning efter att ha återställt en fullständig säkerhetskopia som för servern till dess tillstånd när säkerhetskopieringen gjordes. Point-in-time återställning uppdaterar sedan servern stegvis från tidpunkten för den fullständiga säkerhetskopieringen till en nyare tidpunkt. Det påskyndar också att bygga en replik inom ett replikeringskluster från att komma ikapp med din MariaDB primära eller aktiva skribentdatabas.

Så vad är dessa säkerhetskopior? I MariaDB är de vanliga säkerhetskopiorna som är tillämpliga för din PITR dina binära loggar. Binär loggning måste konfigureras korrekt i din MariaDB-databas och den måste vara aktiverad. Om du använder ClusterControl kanske detta inte är svårt för dig att konfigurera eftersom det konfigureras för dig automatiskt och är aktiverat speciellt när du konfigurerar ett replikeringskluster.

När man använder PITR är det vanligaste verktyget att använda mysqlbinlog eller mariadb-binlog för MariaDB 10.5.2 och framåt.

Bästa sättet att säkerhetskopiera din Moodle MariaDB-databas

När du utför din Moodle MariaDB-databas, ta alltid din säkerhetskopia under icke-högtrafik eller när trafiken är för låg. Innan du gör detta, se till att du har testat säkerhetskopieringen och att den har slutförts. När du är klar, testa en återställning om din säkerhetskopia är användbar eller inte och att den uppfyller dina behov när dataåterställning behövs eller när du behöver din säkerhetskopia för att skapa ytterligare en uppsättning kluster (QA, dev eller utöka till ett annat datacenter). I grund och botten ska följande underavsnitt vara tillvägagångssättet och inställningarna du måste hantera.

Konfigurera en replik och ta säkerhetskopian på repliken

Om du inte är bekant med replikering, läs vår vitbok MySQL-replikering för hög tillgänglighet. Spara i princip inte din active-writer eller primära databasnod för att utföra eller köra en säkerhetskopia. Att ta en säkerhetskopia måste testas och den måste inte utföras i produktionen om den ännu inte har testats med en uppsättning kommandon och dess säkerhetskopieringspolicy som du har skapat. När den är bra, lämna den bara och rikta den mot en replik. Du kan ta en säkerhetskopia från din primära/master MariaDB-databas om du inte har något val eller åtminstone om du är säker på vad du gör.

Kör säkerhetskopiering under icke-peak timmar

När du gör en säkerhetskopiering, se till att det är dina rusningstider. Din replik måste ha noll fördröjning som möjligt så att de mest uppdaterade uppgifterna ska mörkas.

Skapa en säkerhetskopieringspolicy

Säkerhetskopieringspolicyn består av dina parametrar och det schema som din säkerhetskopiering startar. För parametrarna, se till att det räcker till dina behov, dvs säkerhet, komprimering etc. Schemat måste vara permanent så att din backup ska finnas där när det behövs i tider av katastrof och dataåterställning behövs. Du ska också kunna bestämma ditt återställningstidsmål så att du kan bestämma hur ofta ditt backupschema ska köras och när.

Hur man skapar en säkerhetskopia av din Moodle MariaDB-databas

Använda mariadb-dump/mysqldump

Kommandot nedan ska skapa din databassäkerhetskopiering för Moodle. I det här exemplet är databasnamnet moodle. Vi inkluderade triggers, lagrade procedurer eller rutiner och händelser. Skriv ut GTID och huvudinformationen, vilket är användbart när du vill tillhandahålla en replik från den primära eller huvuddatabasnoden.

$  /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 helt enkelt ersätta mariadb-dump med mysqldump om du använder MariaDB version <10.5.2. Om du behöver komprimera kan du köra kommandot nedan:

$  /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

Använda mariabackup

Mariabackupen kan enkelt tas. För detta kommer vi att använda mbstream som önskat streaming- och arkivformat. Du kan använda kommandot nedan:

$ /usr/bin/mariabackup --defaults-file=/etc/my.cnf --backup --parallel 1 --stream=xbstream > backup.xbstream

Om du vill komprimera den kan du göra följande kommando:

$ /usr/bin/mariabackup --defaults-file=/etc/my.cnf --backup --parallel 1 --stream=xbstream | gzip -6 - > backup.xbstream.gz

Använda ClusterControl

Om du byter till en hanterad lösning speciellt för säkerhetskopiering av din Moodle, tar ClusterControl det på ett enkelt men erbjuder avancerade funktioner för säkerhetskopiering. Ta en titt på skärmdumpen nedan:

Att ta en säkerhetskopia är väldigt enkelt och lätt att skapa. Allt du behöver göra är att gå till → Säkerhetskopiering → Skapa säkerhetskopia.

I skärmdumpen ovan har jag mysqldump, mysqldump med PITR-kompatibel och mariabackup. Du kan välja vilken värd som ska säkerhetskopiera. Som nämnts tidigare, se till att du tar säkerhetskopian på repliken eller slaven. Det betyder, se till att slaven är vald. Se skärmdump nedan:

Medan du väljer eller väljer mysqldump tillåter ClusterControl användaren att välja typ av data som ska dumpas. Detta inkluderar också en PITR-kompatibel dump för säkerhetskopiering. Se skärmdump nedan:

För din binära eller fysiska säkerhetskopia, förutom mysqldump som din logiska säkerhetskopia, du kan välja mariabackup antingen full eller inkrementell. Se nedan:

Lagringsplatser tillåter bara användaren att välja att stanna kvar på noden eller streama den till ClusterControl-värden. Om du har en extern server som inte är registrerad på ClusterControl kan du använda NFS för att montera volymen du vill att din säkerhetskopia ska dumpas. Även om det kanske inte är idealiskt, men för vissa fall kommer detta att vara tillfredsställande, särskilt om nätverkets bandbredd eller nätverksöverföring är tillräckligt snabb för att strömma data lokalt till den andra noden via nätverket.

I huvudsak kan du välja vilka säkerhetskopior som ska laddas upp till molnet. Du kan se skärmdumpen tidigare och bara markera kryssrutan för att aktivera den precis som nedan:

Som tidigare nämnts tar ClusterControl säkerhetskopieringen på en enkel att använda men ger avancerade funktioner, här är alternativen du kan ställa in.

För mysqldump,

För mariabackup,

mycket lätt att använda. ClusterControl erbjuder också verifiering av säkerhetskopiering och återställning av säkerhetskopiering så att det är lätt för dig att avgöra om säkerhetskopiering är användbart eller inte. Detta hjälper till att säkerhetskopieringen av din Moodle-databas är användbar, särskilt när dataåterställning måste tillämpas för nödsituationer och återställning.

Slutsats

Det kan vara enkelt att säkerhetskopiera din Moodle MariaDB-databas men när data blir större och trafiken blir högre kan det vara en stor utmaning. Du behöver bara följa bästa praxis, se till att du har säkrat dina data, se till att din säkerhetskopia är verifierad och att den är användbar när dataåterställning måste tillämpas.


  1. Hur man trunkerar tabell i MySQL

  2. Varför postgres inte använder indexet i min fråga

  3. Automatiserad eller regelbunden säkerhetskopiering av mysql-data

  4. 2 sätt att kontrollera kompatibilitetsnivån i Oracle (SQLcl &SQL*Plus)