sql >> Databasteknik >  >> RDS >> MariaDB

Jämför MariaDB Enterprise Backup med ClusterControl Backup Management

MariaDB Enterprise Backup är en säkerhetskopieringslösning från MariaDB Corporation med ett antal funktioner som icke-blockerande säkerhetskopieringar, fullständig säkerhetskopiering, inkrementell säkerhetskopiering, partiell säkerhetskopiering och punktåterställning.

Vi får ofta frågor om skillnaderna mellan MariaDB Backup och ClusterControls funktioner för säkerhetskopiering. Så det är vad den här bloggen handlar om.

Skapa säkerhetskopior kontra att hantera dem

MariaDB Backup är en gaffel av Percona XtraBackup och är ett verktyg för att ta fysiska säkerhetskopior av MariaDB-servern. Det låter dig göra saker som fullständiga, inkrementella, partiella säkerhetskopior. Man kan också utföra punktåterställning med hjälp av binära loggar. Enligt dokumentationen tillhandahåller "Enterprise"-versionen av MariaDB backup "DDL-utlåtandespårning, vilket minskar låstiden under säkerhetskopiering".

ClusterControl stöder MariaDB Backup som en säkerhetskopieringsmetod för MariaDB. Det tillhandahåller ett grafiskt användargränssnitt för att schemalägga fullständiga säkerhetskopior, inkrementella säkerhetskopior och partiella säkerhetskopior, och utföra återställning av säkerhetskopior eller även automatisera punktåterställning. Dessutom tillhandahåller ClusterControl funktioner som kryptering, komprimering, uppladdning till molnlagringen (Azure, AWS, Google Cloud) och automatisk verifiering av säkerhetskopior för att säkerställa att de är återställningsbara.

Fullständig säkerhetskopiering och återställning

För att utföra fullständig säkerhetskopiering med MariaDB Enterprise Backup kan du använda kommandoverktygen för mariabackup. Det finns 4 parameteringångar efter mariabackup-kommandot. Parametrarna är:

  • Säkerhetskopiering - detta används för att säkerhetskopiera databasen med hjälp av mariabackup-verktyg.
  • Förbered - för att göra en konsekvent säkerhetskopiering vid tidpunkten måste du förbereda säkerhetskopian efter att den råa säkerhetskopian kördes.
  • Tillbakakopiering - används för att återställa den extraherade säkerhetskopian till standarddatakatalogen för mysql. Det kommer att kopiera säkerhetskopian till mysql-katalogen, utan att ta bort den ursprungliga säkerhetskopian.
  • Flytta tillbaka -  används för att återställa den extraherade säkerhetskopian till mysql-datakatalogen genom att flytta alla säkerhetskopieringskataloger.

Om du vill säkerhetskopiera och återställa, skickar du bara den obligatoriska parametern efter mariabackup-kommandot. För ett fullständigt backup-kommando, nedan är ett exempelskript som använder MariaDB Backup.

mariabackup --backup --target-dir=/backup/full/ --user=bkpuser --password=p4sswordb4ckup

Det finns några alternativ du behöver definiera, till exempel --target-dir, som är målplatsen för säkerhetskopieringsfiler, --user, som används för autentiseringsanvändare för säkerhetskopiering och --lösenord för lösenordet för säkerhetskopiering av autentiseringsuppgifter.

För att göra säkerhetskopieringen konsekvent punkt-in-tid måste du köra förberedelsen efter att den fullständiga säkerhetskopieringen är klar. Datafilerna är inte konsekventa förrän du kör förberedelsen, det beror på att när du kör säkerhetskopieringen kopierades datafilerna vid olika tidpunkter under säkerhetskopieringen.

Kör förbered säkerhetskopiering:

mariabackup --prepare --target-dir=/backup/full

När du har kört förberedelse gör det säkerhetskopian redo att återställas. Du kommer att se meddelandet på sista raden enligt nedan, när förberedelsen lyckades.

InnoDB: Shutdown completed; log sequence number 9553231

Du kan köra återställningskommandot genom att kopiera tillbaka. Här är exempelskriptet för att återställa säkerhetskopian:

mariabackup --copy-back --target-dir=/backup/full

Du kan lägga ovanstående skript i ett skalskriptkommando och ge körbar behörighet, konfigurera det i operativsystemets schemaläggare.

Säkerhetskopiera och återställa med ClusterControl Backup Management är mycket lätt att använda. ClusterControl stöder logisk säkerhetskopiering och fysisk säkerhetskopiering. För logisk säkerhetskopiering använder ClusterControl mysqldump och för fysisk säkerhetskopiering använder mariabackup full backup och inkrementell.

Det finns två alternativ för hur du vill göra säkerhetskopieringen; du kan skapa säkerhetskopian direkt eller så kan du schemalägga säkerhetskopieringen.

Du kan också aktivera vissa alternativ som kryptering, komprimering, parallellkopiatråd som visas nedan :

Att återställa säkerhetskopian är lika enkelt som säkerhetskopian skapades. Du behöver bara välja den fullständiga säkerhetskopian som du vill återställa.

Det finns två alternativ för hur du vill återställa säkerhetskopian; du kan återställa säkerhetskopian till noderna där säkerhetskopian togs eller så kan du återställa säkerhetskopian till en dedikerad fristående värd.

Inkrementell säkerhetskopiering och återställning

Att ta en fullständig säkerhetskopia av en mycket stor databas kommer att vara tidskrävande och resurskrävande. Inkrementell säkerhetskopiering används för att säkerhetskopiera ändringarna efter att den senaste fullständiga säkerhetskopian togs.

När inkrementell säkerhetskopiering körs kommer MariaDB Enterprise Backup att jämföra tidigare fullständig säkerhetskopiering eller inkrementell säkerhetskopiering för att hitta de senaste ändringarna.

mariabackup --backup --incremental-basedir=/backup/full --target-dir=/backup/incr --user=bkpuser  --password=p4sswordb4ackup

Innan du utför den inkrementella säkerhetskopieringen måste du säkerställa att fullständig säkerhetskopiering har förberetts. Efter det kan du köra den inkrementella säkerhetskopieringen och tillämpa på den senaste fullständiga säkerhetskopian.

mariabackup --prepare  --target-dir=/backup/full --incremental-dir=/backup/incr

Efter att den inkrementella säkerhetskopieringen har tillämpats på den fullständiga säkerhetskopian, kommer den fullständiga säkerhetskopieringskatalogen nu att ha alla säkerhetskopieringsdata förberedda.

Återställning av den förberedda fullständiga säkerhetskopian med alla inkrementella ändringar kan göras genom:

mariabackup --copy-back --target-dir=/backup/full

För att utföra inkrementell säkerhetskopiering i ClusterControl kan du välja mariabackup inkrementell. Du måste ha den fullständiga förberedda säkerhetskopian innan du gör den inkrementella säkerhetskopieringen.

ClusterControl hittar automatiskt närmaste fullständiga säkerhetskopia när du kör den inkrementella säkerhetskopieringen. Och för att återställa säkerhetskopian kan du välja den fullständiga förberedda säkerhetskopian och återställningen. Det kommer att fråga dig hur du vill återställa säkerhetskopian, antingen på noden eller fristående värd. Det kommer att återställa säkerhetskopian inklusive inkrementella ändringar.

Delvis säkerhetskopiering och återställning

Delvis säkerhetskopiering anger vilken databas eller tabell du vill säkerhetskopiera. Du kan antingen välja en lista med databaser och tabeller att säkerhetskopiera, eller så kan du utesluta några av databaserna och tabellerna från säkerhetskopian. Alternativen inkluderar:--databases, --databases-exclude, --tables, --tables-exclude

Nedan är ett exempelskript för att göra den partiella säkerhetskopieringen, för card_data-tabellen.

mariabackup --backup --target-dir=/backup/partial --user=bkpuser --password=p4sswordb4ckup --tables=card_data

Du måste fortfarande förbereda den fullständiga partiella säkerhetskopian för att göra säkerhetskopian konsekvent vid tidpunkten genom att köra kommandot nedan: 

mariabackup --prepare --export --target-dir=/backup/partial

Att utföra partiell återställning är mycket annorlunda jämfört med att återställa fullständig säkerhetskopiering och inkrementell säkerhetskopiering. Du måste förbereda tabellerna och databasen i den körande MariaDB-servern och sedan manuellt kopiera datafilerna till mysql-datakatalogen.

Du vill till exempel göra en partiell återställning för card_data-tabellen (icke-partitionerad tabell).

  • Skapa den tomma tabellen med kortdata med samma struktur i måldatabasen 
  • Kör tabellutrymmet DISCARD på tabellen card_data.
    ALTER TABLE carddb.card_data DISCARD TABLESPACE;
  • Kopiera datafilerna till mysql-datakatalogen 
    cp /backup/partial/carddb/card_data.* /var/lib/mysql/carddb
  • Ändra ägare av filer blir mysql
    chown mysql:mysql /var/lib/mysql/carddb/card_data.*
  • Sista sak, importera tabellutrymmet: 
    ALTER TABLE carddb.card_data IMPORT TABLESPACE;

Delvis säkerhetskopiering i ClusterControl är väldigt enkel, du behöver bara aktivera alternativet Partiell säkerhetskopiering. Det ger dig möjlighet att inkludera eller exkludera databas och tabeller som visas nedan:

Nästa del liknar den fullständiga säkerhetskopieringen och inkrementell säkerhetskopiering, du kan välj inställningar som kryptering och komprimering.

Att återställa den partiella säkerhetskopian är exakt samma sak som när vi återställer fullständig säkerhetskopia. Du behöver bara välja den partiella säkerhetskopieringen, och resten kommer att hanteras av ClusterControl.

Time-återställning

Att återställa den fullständiga säkerhetskopian eller inkrementell säkerhetskopia ger dig en säkerhetskopia från det att säkerhetskopian togs, men det ger dig ingen data som kom efter att säkerhetskopian togs. Dessa ändringar skulle finnas i den binära loggen. När du utför den förberedda säkerhetskopieringen med binlog aktiverad, kommer det att finnas en fil som heter xtrabackup_binlog_info. Filen innehåller en binär loggfil och positionen för det senaste sekvensnumret.

Du kan utföra tidpunktsåterställningen genom att extrahera ändringarna till SQL, som efter att återställningen har gjorts. Du kan köra mysqlbinlog för att extrahera den specifika tiden i källdatabasnoden och tillämpa SQL i den mål/återställda databasnoden.

Point in Time Recovery (PITR) i ClusterControl kan aktiveras enligt nedan:

Du måste definiera till vilken tidpunkt du ska återställa, det finns två alternativ som stöds som är tidsbaserade eller positionsbaserade. För tidsbaserad behöver du bara fylla i den exakta tidpunkten när data kommer att återställas. För den positionsbaserade måste du fylla i binlognamnet och positionen. Resten av återställningen är liknande.

Slutsats

Det var allt för nu. Som vi har sett ovan är MariaDB Backup ett trevligt verktyg med många alternativ. ClusterControl tillhandahåller ett lättanvänt GUI för att utföra säkerhetskopieringsprocedurerna. Den lägger också till ett antal funktioner som kryptering, komprimering, schemaläggning, lagringshantering och automatisk säkerhetskopiering.


  1. SQL Server IF vs IIF():Vad är skillnaden?

  2. SQL Server Service Broker konversationsgrupper

  3. Hur man installerar MariaDB på CentOS 8

  4. Hur tar jag bort ett fast antal rader med sortering i PostgreSQL?