sql >> Databasteknik >  >> RDS >> Mysql

Jämför Percona XtraBackup med MySQL Enterprise Backup:Del ett

När det kommer till säkerhetskopiering och dataarkivering är IT-avdelningar ofta stressade för att uppfylla stränga servicenivåavtal samt leverera mer robusta säkerhetskopieringsprocedurer som skulle minimera stilleståndstiden, påskynda säkerhetskopieringsprocessen, kostnaden mindre och uppfyller stränga säkerhetskrav.

Det finns flera sätt att ta en säkerhetskopia av en MySQL-databas, men vi kan dela in dessa metoder i två grupper - logiska och fysiska.

Logiska säkerhetskopior innehåller data som exporteras med SQL-kommandon och lagras i en fil. Det kan t.ex. vara en uppsättning SQL-kommandon som, när de exekveras, kommer att resultera i att innehållet i databasen återställs. Med vissa ändringar av utdatafilens syntax kan du lagra din säkerhetskopia i CSV-filer.

Logiska säkerhetskopieringar är lätta att utföra, enbart med en one-liner, du kan ta en säkerhetskopia av alla dina tabeller, databaser eller alla mysql-databaser i instansen.

Tyvärr har logiska säkerhetskopior många begränsningar. De är vanligtvis långsammare än en fysisk. Detta beror på den overhead som behövs för att exekvera SQL-kommandon för att få ut data och sedan för att exekvera ytterligare en uppsättning SQL-kommandon för att få tillbaka data till databasen. De är mindre flexibla, såvida du inte skriver komplexa säkerhetskopieringsbelastningar som skulle innehålla flera steg. Det fungerar inte bra i en parallell miljö, ger mindre säkerhet och så vidare och så.

Fysiska säkerhetskopior i MySQL World

MySQL kommer inte med fysisk säkerhetskopiering online för community-utgåvan. Du kan antingen betala för en Enterprise-version eller använda ett tredjepartsverktyg. Det mest populära tredjepartsverktyget på marknaden är XtraBackup. De ska vi jämföra i den här bloggartikeln.

Percona XtraBackup är den mycket populära, öppen källkod, MySQL/MariaDB heta säkerhetskopieringsprogramvara som utför icke-blockerande säkerhetskopieringar för InnoDB- och XtraDB-databaser. Den faller inom kategorin fysisk säkerhetskopiering, som består av exakta kopior av MySQL-datakatalogen och filer under den.

En av de största fördelarna med XtraBackup är att den inte låser din databas under säkerhetskopieringsprocessen. För stora databaser (100+ GB) ger det mycket bättre återställningstid jämfört med mysqldump. Återställningsprocessen involverar att förbereda MySQL-data från säkerhetskopiorna, innan den ersätts eller byts ut mot den aktuella datakatalogen på målnoden.

Percona XtraBackup fungerar genom att komma ihåg loggsekvensnumret (LSN) när det startar och sedan kopierar bort datafilerna till en annan plats. Att kopiera data tar tid och om filerna förändras speglar de tillståndet i databasen vid olika tidpunkter. Samtidigt kör XtraBackup en bakgrundsprocess som håller ett öga på transaktionsloggfilerna (aka redo log) och kopierar ändringar från den. Detta måste göras kontinuerligt eftersom transaktionsloggarna är skrivna på ett round-robin-sätt och kan återanvändas efter ett tag. XtraBackup behöver transaktionsloggposterna för varje ändring av datafilerna sedan den började köras.

Genom att använda det här verktyget kan du:

  • Skapa heta InnoDB-säkerhetskopior som slutförs snabbt och tillförlitligt, utan att pausa din databas eller lägga till belastning på servern
  • Gör inkrementella säkerhetskopior
  • Flytta tabeller mellan MySQL-servrar online
  • Skapa nya MySQL-replikeringsslavar enkelt
  • Strömma komprimerade MySQL-säkerhetskopior till en annan server
  • Spara på diskutrymme och nätverksbandbredd

MySQL Enterprise Backup levererar heta, online, icke-blockerande säkerhetskopior på flera plattformar. Det är inte ett gratis verktyg för säkerhetskopiering, men det erbjuder många funktioner. Standardlicenskostnaden är 5 000 USD (men kan variera beroende på ditt avtal med Oracle.) 

plattformar som stöds för säkerhetskopiering

MySQL Enterprise

Den kan köras på Linux, Windows, Mac och Solaris. Vad som är viktigt kan också lagra säkerhetskopiering på band, vilket vanligtvis är en billigare lösning än att skriva till diskar. Den direkta bandskrivningen stöder integration med Veritas Netbackup, Tivoli Storage Manager och EMC NetWorker.

XtraBackup

XtraBackup kan endast köras på Linux-plattformen, vilket utan tvekan kan vara en showstoppare för de som kör på Windows. En lösning här kanske replikering till slaven som körs på Linux och kör backup därifrån.

Huvudskillnader för säkerhetskopieringsprocessen

MySQL Enterprise Backup tillhandahåller en rik uppsättning back- och återställningsfunktioner och funktioner inklusive betydande prestandaförbättringar jämfört med befintliga MySQL-säkerhetsmetoder.

Oracle visar att Enterprise backup är 49 gånger snabbare än mysqldump. Det kan naturligtvis variera beroende på dina data men det finns många funktioner för att förbättra säkerhetskopieringsprocessen. En parallell backup är definitivt en av de största skillnaderna mellan mysqldump och Enterprise backup. Det ökar prestandan genom flertrådsbehandling. Den mest intressanta funktionen är dock komprimering.

--komprimera

Skapar en säkerhetskopia i komprimerat format. För en vanlig säkerhetskopiering, bland alla lagringsmotorer som stöds av MySQL, är endast datafiler i InnoDB-formatet komprimerade, och de bär tillägget .ibz efter komprimeringen. På samma sätt, för en enbildssäkerhetskopiering, komprimeras endast datafiler av InnoDB-formatet inuti säkerhetskopian. De binära logg- och reläloggfilerna komprimeras och sparas med tillägget .bz när de ingår i en komprimerad säkerhetskopia.

-compress-method=zlib,lz4(default), lzma, punch-hole

--compress-level=LEVEL(0-9)

--include-tables=REGEXP

MySQL-säkerhetskopior med ClusterControl

ClusterControl låter dig schemalägga säkerhetskopieringar med XtraBackup och mysqldump. Den kan lagra säkerhetskopieringsfilerna lokalt på noden där säkerhetskopian tas, eller så kan säkerhetskopieringsfilerna också streamas till styrenhetens nod och komprimeras direkt. Det stöder inte MySQL Enterprise backup men med de utökade funktionerna i mysqldump och XtraBackup kan det vara ett bra alternativ.

ClusterControl är det heltäckande databashanteringssystemet med öppen källkod för användare med blandade miljöer. Den tillhandahåller avancerad säkerhetskopieringshanteringsfunktion för MySQL eller MariaDB.

Med ClusterControl kan du:

  • Skapa säkerhetskopieringspolicyer
  • Övervaka säkerhetskopieringsstatus, körningar och servrar utan säkerhetskopior
  • Utför säkerhetskopieringar och återställningar (inklusive en tidpunktsåterställning)
  • Kontrollera lagring av säkerhetskopior
  • Spara säkerhetskopior i molnlagring
  • Validera säkerhetskopior (fullständigt test med återställningen på den fristående servern)
  • Kryptera säkerhetskopior
  • Komprimera säkerhetskopior
  • Och många andra

Slutsats

Som DBA måste du se till att databaserna säkerhetskopieras regelbundet och att lämpliga återställningsprocedurer är på plats och testade. Både Percona XtraBackup och MySQL Enterprise Backup förser DBA:er med en högpresterande, online backup-lösning med datakomprimering och krypteringsteknik för att garantera att dina data är skyddade i händelse av driftstopp eller avbrott

Säkerhetskopiering bör planeras enligt kravet på återställning. Dataförlust kan vara helt eller delvis. Till exempel behöver du inte alltid återställa hela data. I vissa fall kanske du bara vill göra en partiell återställning genom att återställa saknade tabeller eller rader. Med räckviddsfunktionsuppsättningen skulle båda lösningarna vara en bra ersättning av mysqldump, som fortfarande är en mycket populär metod för att göra säkerhetskopieringen. Att ha mysqldump är också viktigt för partiell återställning, där korrupta databaser kan korrigeras genom att analysera innehållet i dumpen. Binära loggar tillåter oss att uppnå punkt-i-tid återställning, t.ex. upp till precis innan MySQL-servern gick ner.

Detta är allt för del ett, i nästa del ska vi testa prestandan för båda lösningarna och köra några scenarier för säkerhetskopiering och återställning.


  1. Automatiserad testning av uppgraderingsprocessen för MySQL/MariaDB/Percona Server

  2. Hur FIELD() fungerar i MariaDB

  3. Nya funktioner i SQL Server 2017 (databasmotor)

  4. Hur hittar man MySQL-databasens plats på hårddisken?