sql >> Database >  >> RDS >> MariaDB

MariaDB Enterprise Backup vergelijken met ClusterControl Backup Management

MariaDB Enterprise Backup is een back-upoplossing van MariaDB Corporation met een aantal functies, zoals niet-blokkerende back-ups, volledige back-up, incrementele back-up, gedeeltelijke back-up en Point in Time Recovery.

We krijgen vaak vragen over de verschillen tussen de back-upbeheerfuncties van MariaDB Backup en ClusterControl. Dit is dus waar deze blog over gaat.

Back-ups maken versus ze beheren

MariaDB Backup is een fork van Percona XtraBackup en is een tool om fysieke back-ups te maken van de MariaDB-server. Hiermee kunt u dingen doen zoals volledige, incrementele, gedeeltelijke back-ups. Men kan ook point-in-time recovery uitvoeren met behulp van binaire logs. Volgens de documentatie biedt de 'Enterprise'-versie van MariaDB-back-up "DDL-statement-tracking, waardoor de vergrendelingstijd tijdens back-ups wordt verkort".

ClusterControl ondersteunt MariaDB Backup als back-upmethode voor MariaDB. Het biedt een grafische gebruikersinterface voor het plannen van volledige back-ups, incrementele back-ups en gedeeltelijke back-ups, en herstel van back-upbestanden of automatiseert ook point-in-time herstel. Daarnaast biedt ClusterControl functies zoals encryptie, compressie, uploaden naar de cloudopslag (Azure, AWS, Google Cloud) en automatische verificatie van back-ups om ervoor te zorgen dat ze herstelbaar zijn.

Volledige back-up en herstel

Om een ​​volledige back-up uit te voeren met MariaDB Enterprise Backup, kunt u de mariabackup-opdrachthulpprogramma's gebruiken. Er zijn 4 parameteringangen na het mariabackup-commando. De parameters zijn:

  • Back-up - dit wordt gebruikt voor het maken van een back-up van de database met behulp van mariabackup-hulpprogramma's.
  • Voorbereiden - om een ​​consistente back-up op een bepaald tijdstip te maken, moet u de back-up voorbereiden nadat de onbewerkte back-up is uitgevoerd.
  • Kopiëren terug - gebruikt om de uitgepakte back-up te herstellen naar de standaardgegevensmap van mysql. Het kopieert de back-up naar de mysql-map, zonder de originele back-up te verwijderen.
  • Verplaats terug -  gebruikt om de uitgepakte back-up te herstellen naar de mysql-gegevensmap door alle back-upmappen te verplaatsen.

Als je een back-up wilt maken en herstellen, geef je gewoon de verplichte parameter door na het mariabackup-commando. Voor een volledige back-upopdracht vindt u hieronder een voorbeeldscript met MariaDB Backup.

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

Er zijn enkele opties die u moet definiëren, zoals --target-dir, de doellocatie voor back-upbestanden, --user, gebruikt voor referentiegebruikers voor back-up, en --password voor het back-upwachtwoord van de referentie.

Om de back-up point-in-time consistent te maken, moet je de voorbereiding uitvoeren nadat de volledige back-up is voltooid. De gegevensbestanden zijn niet consistent totdat u de voorbereiding uitvoert, dit komt omdat wanneer u de back-up uitvoert, de gegevensbestanden op verschillende tijdstippen tijdens de back-up zijn gekopieerd.

Voorbereiden back-up uitvoeren:

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

Nadat je prepare hebt uitgevoerd, wordt de back-up gereed gemaakt om te worden hersteld. U ziet het bericht op de laatste regel, zoals hieronder, wanneer de voorbereiding is geslaagd.

InnoDB: Shutdown completed; log sequence number 9553231

Je kunt het restore-commando uitvoeren met copy-back. Hier is het voorbeeldscript om de back-up te herstellen:

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

U kunt het bovenstaande script in een shellscript-opdracht plaatsen en uitvoerbare toestemming geven, configureren in de planner van het besturingssysteem.

Back-up en herstel met ClusterControl Back-upbeheer is zeer eenvoudig te gebruiken. ClusterControl ondersteunt logische back-up en fysieke back-up. Voor logische back-up gebruikt ClusterControl mysqldump en voor fysieke back-up gebruikt mariabackup volledige back-up en incrementeel.

Er zijn twee opties voor het maken van de back-up; u kunt de back-up rechtstreeks maken of u kunt de back-up plannen.

U kunt ook enkele opties inschakelen, zoals codering, compressie, parallelle kopieerthread als hieronder weergegeven:

Het herstellen van de back-up is net zo eenvoudig als de back-up is gemaakt. U hoeft alleen het volledige back-upbestand te selecteren dat u wilt herstellen.

Er zijn twee opties voor het herstellen van de back-up; je kunt de back-up terugzetten naar de knooppunten waar de back-up is gemaakt of je kunt de back-up terugzetten naar een speciale zelfstandige host.

Incrementele back-up en herstel

Het maken van een volledige back-up van een zeer grote database zal tijdrovend en arbeidsintensief zijn. Incrementele back-up wordt gebruikt om een ​​back-up uit te voeren van de wijzigingen nadat de laatste volledige back-up is gemaakt.

Als incrementele back-up wordt uitgevoerd, vergelijkt MariaDB Enterprise Backup de vorige volledige back-up of incrementele back-up om de laatste wijzigingen te vinden.

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

Voordat u de incrementele back-up uitvoert, moet u ervoor zorgen dat een volledige back-up is voorbereid. Daarna kunt u de incrementele back-up uitvoeren, van toepassing op de laatste volledige back-up.

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

Nadat de incrementele back-up is toegepast op de volledige back-up, bevat de volledige back-upmap nu alle back-upgegevens.

Het herstellen van de voorbereide volledige back-up met alle incrementele wijzigingen kan worden gedaan via:

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

Als u een incrementele back-up in ClusterControl wilt uitvoeren, kunt u de incrementele mariabackup kiezen. U moet een volledig voorbereide back-up hebben voordat u de incrementele back-up maakt.

ClusterControl vindt automatisch de dichtstbijzijnde volledige back-up wanneer u de incrementele back-up uitvoert. En voor het terugzetten van de back-up kunt u kiezen voor de volledig voorbereide back-up en herstel. U wordt gevraagd hoe u de back-up wilt herstellen, op het knooppunt of op de zelfstandige host. Het zal de back-up herstellen, inclusief incrementele wijzigingen.

Gedeeltelijke back-up en herstel

Gedeeltelijke back-up geeft aan van welke database of tabel u een back-up wilt maken. U kunt een lijst met databases en tabellen kiezen waarvan u een back-up wilt maken, of u kunt sommige databases en tabellen uitsluiten van de back-up. De opties omvatten:--databases, --databases-exclude, --tables, --tables-exclude

Hieronder staat een voorbeeldscript om de gedeeltelijke back-up te maken, voor de card_data-tabel.

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

Je moet nog steeds de volledige gedeeltelijke back-up voorbereiden om het back-uppunt consistent te maken door de onderstaande opdracht uit te voeren: 

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

Het uitvoeren van een gedeeltelijk herstel is heel anders dan het herstellen van een volledige back-up en incrementele back-up. U moet de tabellen en database voorbereiden in de draaiende MariaDB-server en vervolgens de gegevensbestanden handmatig naar de mysql-gegevensdirectory kopiëren.

U wilt bijvoorbeeld een gedeeltelijk herstel uitvoeren voor de card_data-tabel (niet-gepartitioneerde tabel).

  • Maak de lege tabel met card_data met dezelfde structuur in de doeldatabase 
  • Voer de DISCARD tablespace uit op de tafel card_data.
    ALTER TABLE carddb.card_data DISCARD TABLESPACE;
  • Kopieer de gegevensbestanden naar de mysql-gegevensmap 
    cp /backup/partial/carddb/card_data.* /var/lib/mysql/carddb
  • Wijzig de eigenaar van bestanden wordt mysql
    chown mysql:mysql /var/lib/mysql/carddb/card_data.*
  • Als laatste, importeer de tablespace: 
    ALTER TABLE carddb.card_data IMPORT TABLESPACE;

Gedeeltelijke back-up in ClusterControl is heel eenvoudig, u hoeft alleen de optie Gedeeltelijke back-up in te schakelen. Het geeft je de mogelijkheid om database en tabellen op te nemen of uit te sluiten, zoals hieronder getoond:

Het volgende deel is vergelijkbaar met de volledige back-up en incrementele back-up, u kunt kies instellingen zoals codering en compressie.

Het herstellen van de gedeeltelijke back-up is precies hetzelfde als wanneer we de volledige back-up herstellen. U hoeft alleen de gedeeltelijke back-up te kiezen en de rest wordt afgehandeld door ClusterControl.

Punt in tijd herstel

Het terugzetten van de volledige back-up of incrementele back-up geeft je wel een back-up vanaf het moment dat de back-up werd gemaakt, maar het geeft je geen gegevens die kwamen nadat de back-up werd gemaakt. Deze wijzigingen staan ​​in het binaire logboek. Wanneer u de voorbereide back-up uitvoert met binlog ingeschakeld, zal er een bestand zijn met de naam xtrabackup_binlog_info. Het bestand bevat een binair logbestand en de positie van het laatste volgnummer.

Je kunt het point-in-time herstel uitvoeren door de wijzigingen in SQL uit te pakken, zoals nadat het herstel is uitgevoerd. U kunt mysqlbinlog uitvoeren om de specifieke tijd in het brondatabaseknooppunt te extraheren en de SQL toepassen in het doel/herstelde databaseknooppunt.

Point in Time Recovery (PITR) in ClusterControl kan worden ingeschakeld zoals hieronder weergegeven:

U moet definiëren tot welk punt u wilt herstellen, er worden twee opties ondersteund die op tijd of op positie zijn gebaseerd. Voor tijdgebaseerd hoeft u alleen de exacte tijd in te vullen waarop de gegevens worden hersteld. Voor de op positie gebaseerde, moet u de binlog-naam en -positie invullen. De rest van het herstel is vergelijkbaar.

Conclusie

Dat is het voor nu. Zoals we hierboven hebben gezien, is MariaDB Backup een leuke tool met veel opties. ClusterControl biedt een eenvoudig te gebruiken GUI om de back-upprocedures uit te voeren. Het voegt ook een aantal functies toe, zoals codering, compressie, planning, bewaarbeheer en automatische back-upverificatie.


  1. Hoe vastgoedprofessionals Microsoft Access kunnen gebruiken

  2. H2 postgresql-modus lijkt niet te werken voor mij

  3. Kunt u binnen één instructie toegang krijgen tot de waarde voor automatisch verhogen in MySQL?

  4. Hoe de grootte van de mysql-database te krijgen?