Når det kommer til sikkerhedskopier og dataarkivering, er it-afdelinger ofte under stress for at overholde strenge serviceniveauaftaler samt levere mere robuste backupprocedurer, der vil minimere nedetiden, fremskynde backup-processen og omkostningerne mindre og opfylder strenge sikkerhedskrav.
Der er flere måder at tage en backup af en MySQL-database på, men vi kan opdele disse metoder i to grupper - logiske og fysiske.
Logiske sikkerhedskopier indeholder data, der eksporteres ved hjælp af SQL-kommandoer og gemmes i en fil. Det kan f.eks. være et sæt SQL-kommandoer, der, når de udføres, vil resultere i gendannelse af databasens indhold. Med nogle ændringer af outputfilens syntaks kan du gemme din sikkerhedskopi i CSV-filer.
Logiske sikkerhedskopier er nemme at udføre, udelukkende med en one-liner, du kan tage en backup af alle dine tabel, database eller alle mysql databaser i instansen.
Desværre har logiske sikkerhedskopier mange begrænsninger. De er normalt langsommere end en fysisk. Dette skyldes den overhead, der er nødvendig for at udføre SQL-kommandoer for at få dataene ud og derefter at udføre et andet sæt SQL-kommandoer for at få dataene tilbage i databasen. De er mindre fleksible, medmindre du skriver komplekse backup-arbejdsbelastninger, der vil omfatte flere trin. Det fungerer ikke godt i et parallelt miljø, giver mindre sikkerhed, og så videre og så en.
Fysiske sikkerhedskopier i MySQL World
MySQL leveres ikke med online fysisk backup til community-udgaven. Du kan enten betale for en Enterprise-version eller bruge et tredjepartsværktøj. Det mest populære tredjepartsværktøj på markedet er XtraBackup. Dem skal vi sammenligne i denne blogartikel.
Percona XtraBackup er den meget populære, open source, MySQL/MariaDB hot backup software, der udfører ikke-blokerende sikkerhedskopier til InnoDB og XtraDB databaser. Det falder ind under kategorien fysisk sikkerhedskopiering, som består af nøjagtige kopier af MySQL-datamappen og filer nedenunder.
En af de største fordele ved XtraBackup er, at den ikke låser din database under backup-processen. For store databaser (100+ GB) giver det meget bedre gendannelsestid sammenlignet med mysqldump. Gendannelsesprocessen involverer forberedelse af MySQL-data fra backupfilerne, før de erstattes eller skiftes til den aktuelle datamappe på målknuden.
Percona XtraBackup fungerer ved at huske logsekvensnummeret (LSN), når det starter, og derefter kopierer datafilerne til en anden placering. Kopiering af data tager tid, og hvis filerne ændrer sig, afspejler de databasens tilstand på forskellige tidspunkter. Samtidig kører XtraBackup en baggrundsproces, der holder øje med transaktionslogfilerne (alias redo log) og kopierer ændringer fra den. Dette skal gøres løbende, fordi transaktionsloggene er skrevet på en round-robin måde og kan genbruges efter et stykke tid. XtraBackup har brug for transaktionslogposterne for hver ændring af datafilerne, siden den begyndte at udføres.
Ved at bruge dette værktøj kan du:
- Opret hot InnoDB-sikkerhedskopier, der fuldføres hurtigt og pålideligt uden at sætte din database på pause eller tilføje belastning til serveren
- Lav trinvise sikkerhedskopier
- Flyt tabeller mellem MySQL-servere online
- Opret nemt nye MySQL-replikeringsslaver
- Stream komprimerede MySQL-sikkerhedskopier til en anden server
- Spar på diskplads og netværksbåndbredde
MySQL Enterprise Backup leverer hotte, online, ikke-blokerende sikkerhedskopier på flere platforme. Det er ikke et gratis sikkerhedskopieringsværktøj, men det tilbyder en masse funktioner. Standardlicensprisen er $5000 (men kan variere afhængigt af din aftale med Oracle).
Understøttede platforme for backupproces
MySQL Enterprise
Det kan køre på Linux, Windows, Mac og Solaris. Hvad der er vigtigt, kan det også gemme backup til tape, hvilket normalt er en billigere løsning end skrivning til diske. Den direkte båndskrivning understøtter integration med Veritas Netbackup, Tivoli Storage Manager og EMC NetWorker.
XtraBackup
XtraBackup kører muligvis kun på Linux-platformen, hvilket utvivlsomt kan være en showstopper for dem, der kører på Windows. En løsning her måske replikering til slaven, der kører på Linux og kører backup derfra.
Sikkerhedskopieringsprocessens vigtigste forskelle
MySQL Enterprise Backup giver et rigt sæt tilbage- og gendannelsesfunktioner og -funktioner, herunder betydelige ydeevneforbedringer i forhold til eksisterende MySQL-sikkerhedskopimetoder.
Oracle viser, at Enterprise backup er endnu 49 gange hurtigere end mysqldump. Det kan selvfølgelig variere afhængigt af dine data, men der er mange funktioner til at forbedre backup-processen. En parallel backup er absolut en af de største forskelle mellem mysqldump og Enterprise backup. Det øger ydeevnen ved multi-threaded behandling. Den mest interessante funktion er dog komprimering.
--komprimere
Opretter en sikkerhedskopi i komprimeret format. For en almindelig sikkerhedskopiering er det blandt alle de lagringsmotorer, der understøttes af MySQL, kun datafiler i InnoDB-formatet, der komprimeres, og de bærer .ibz-udvidelsen efter komprimeringen. Tilsvarende er det kun datafiler af InnoDB-formatet inde i backupbilledet, der komprimeres for en enkelt-billed-backup. De binære log- og relælogfiler komprimeres og gemmes med .bz-udvidelsen, når de inkluderes i en komprimeret sikkerhedskopi.
-compress-method=zlib,lz4(default), lzma, punch-hole
--compress-level=LEVEL(0-9)
--include-tables=REGEXP
MySQL-sikkerhedskopier med ClusterControl
ClusterControl giver dig mulighed for at planlægge sikkerhedskopier ved hjælp af XtraBackup og mysqldump. Den kan gemme backup-filerne lokalt på den node, hvor sikkerhedskopien tages, eller backup-filerne kan også streames til controller-noden og komprimeres på farten. Det understøtter ikke MySQL Enterprise backup, men med de udvidede funktioner i mysqldump og XtraBackup kan det være en god mulighed.
ClusterControl er det altomfattende open source-databasestyringssystem til brugere med blandede miljøer. Det giver avanceret backup management funktionalitet til MySQL eller MariaDB.
Med ClusterControl kan du:
- Opret sikkerhedskopieringspolitikker
- Overvåg sikkerhedskopieringsstatus, eksekveringer og servere uden sikkerhedskopier
- Udfør sikkerhedskopier og gendannelser (inklusive et tidspunkt for gendannelse)
- Kontrol sikkerhedskopiering
- Gem sikkerhedskopier i skylageret
- Valider sikkerhedskopier (fuldstændig test med gendannelsen på den selvstændige server)
- Kryptér sikkerhedskopier
- Komprimer sikkerhedskopier
- Og mange andre
Konklusion
Som DBA skal du sikre dig, at databaserne sikkerhedskopieres regelmæssigt, og at passende gendannelsesprocedurer er på plads og testet. Både Percona XtraBackup og MySQL Enterprise Backup giver DBA'er en højtydende online backup-løsning med datakomprimering og krypteringsteknologi for at garantere, at dine data er beskyttet i tilfælde af nedetid eller udfald
Sikkerhedskopier bør planlægges i henhold til kravet om gendannelse. Datatab kan være helt eller delvist. For eksempel behøver du ikke altid at gendanne hele data. I nogle tilfælde vil du måske bare lave en delvis gendannelse ved at gendanne manglende tabeller eller rækker. Med rækkevidde-funktionssættet ville begge løsninger være en god erstatning for mysqldump, som stadig er en meget populær metode til at lave backup. At have mysqldump er også vigtigt for delvis gendannelse, hvor korrupte databaser kan rettes ved at analysere indholdet af dumpet. Binære logfiler giver os mulighed for at opnå punkt-i-tidsgendannelse, f.eks. op til lige før MySQL-serveren gik ned.
Dette er alt for del et, i den næste del skal vi teste ydeevnen af begge løsninger og køre nogle real-case backup- og gendannelsesscenarier.