Udfør Hot Backups af MySQL Databaser med Percona XtraBackup på Ubuntu 16.04

Udfør Hot Backups af MySQL Databaser med Percona XtraBackup på Ubuntu 16.04

Percona XtraBackup er en open source backup utility til MySQL. Det understøtter alle MySQL smag som Percona Server, MariaDB og (Oracle) MySQL. Percona Xtrabackup udfører en Hot Backup til MySQL. Hot Backup betyder at oprette en backup af en MySQL-server, mens den kører uden nedetid.

I denne vejledning vil jeg vise dig, hvordan du opretter en varm MySQL-database backup med OpenSource-værktøjet Percona XtraBackup på Ubuntu 16.04 (Xenial Xerus). Jeg vil bruge MariaDB som databaseserver til at udføre backupen, men den samme opsætning vil også fungere for MySQL-servere.

Forudsætning

  • Ubuntu server 16.04 - (Xenial Xerus)
  • MySQL eller MariaDB server
  • Root privilegier

Trin 1 - Installer Percona XtraBackup

Det første skridt er at installere nyeste Percona XtraBackup software på vores Ubuntu server. Log ind på din server af SSH (eller på konsollen):

ssh [email protected]
TYPE DIT PASSORD

Percona XtraBackup er tilgængelig i Ubuntu-depotet, men vi vil bruge den nyeste version fra Percona-depotet.

Tilføj Percona-depotet ved at downloade deb-pakken fra internettet og installere det med kommandoen dpkg:

wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc) _all.deb
sudo dpkg -i percona-release_0.1-3. $ (lsb_release -sc) _all.deb

Opdater derefter opbevaringsdatabasen og installer Ppercona XtraBackup 2.4 (den seneste version i øjeblikket):

sudo apt-get update
sudo apt-get install percona-xtrabackup-24

Percona XtraBackup er installeret.

Trin 2 - Konfigurer bruger- og sikkerhedskatalog

For at udføre den varme backup skal vi oprette en ny mysql-bruger med særlige rettigheder og tilladelser. I denne tutorial vil jeg bruge MariaDB 10.0 som databaseserver. Hvis du ikke har installeret en MySQL-kompatibel database endnu, kan du installere med kommando nedenfor:

sudo apt-get install mariadb-server mariadb-klient

Indstil et sikkert kodeord for root-brugeren med denne kommando:

mysql_secure_installation

Hvis MariaDB er installeret, få adgang til MariaDB / MySQL-shell som root-bruger med mysql-klientkommando:

mysql -u rod-p
TYPE MySQL PASSWORD

Opret en ny bruger kaldet 'bekupuser'med adgangskoden'mypassword'(valgt en sikker adgangskode til din server!):

CREATE USER 'bekupuser' @ 'localhost' IDENTIFIED AF 'mypassword';

Giv brugeren følgende rettigheder: 'RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT'.

GIVE RELOAD, LOCK TABLES, PROCESS, REPLICERING KLIENT PÅ *. * TIL 'bekupuser' @ 'localhost';
FLUSH PRIVILEGES;
frakørsel

Dernæst opret en ny mappe til at gemme MySQL-backupfilerne:

mkdir -p / data / backups / mysql /

Den nye sikkerhedskopibruger og en sikkerhedskatalog er blevet oprettet.

Trin 3 - Udfør sikkerhedskopiering med Innobackupex

Innobackupex er en Perl script wrapper til xtrabackup programmet. Det er en patched version af innobackup scriptet, der leveres af Oracle, distribueret med InnoDB Backup-værktøj. Innobackupex giver backup til en hel MySQL database instans, der bruger xtrabackup i kombination med xbstream og xbcrypt.

I dette trin vil vi oprette og forberede en fuld backup til MySQL-forekomsten.

A. Opret en backup med Innobackupex

I trin 2 har vi oprettet en ny mappe til sikkerhedskopien og tilføjet en ny mysql backup-bruger. Vi bruger dem nu til at lave en sikkerhedskopi med kommandoen innobackupex.

Opret en MySQL-backup med innobackupex til ny mappe '/ data / backups / my_backup':

innobackupex -user = bekupuser -password = mypassword-ikke-tidsstempel / data / backups / my_backup

Bemærk:

-bruger = Bruger med nødvendige backup privilegier (trin-2).

-adgangskode = adgangskode til backup-brugeren.

-no-tidsstempel = deaktiver oprettelsen af ​​et nyt tidsstemplet underkatalog i backup root dir.

/ Data / backup / my_backup = mappe til backupen, vil den blive oprettet automatisk under backup proces. Hvis mappen findes, får du en fejlmeddelelse.

Opret en backup med Percona XtraBackup

En anden mulighed:

mkdir -p / data / backups / my_backup2
innobackupex -user = bekupuser -password = mypassword / data / backups / my_backup2
or
innobackupex -user = bekupuser -password = mypassword / data / backups /

Bemærk:

Hvis der ikke er nogen mappe 'my_backup2', vil du få din mappe baseret på'tidsstempel' format.

resultater:

Resultat af den alternative backup kommando.

B. Forbered en fuld backup med Innobackupex

Når du har oprettet en ny sikkerhedskopi, er dataene ikke klar til genoprettelse. Der er endnu et trin, så dataene er klar til at blive genoprettet. Vi har brug for 'forberedelsesstadiet', så dataene kan genoprettes.

Forbered backup ved hjælp af innobackupex med mulighed -Anvend-log til backup-biblioteket '/ Data / backup / my_backup':

innobackupex -apply-log / data / backups / my_backup

Sørg for, at processen er færdig uden fejl, før du fortsætter.

Forbered den fulde sikkerhedskopiering

Hvis du har nok hukommelse og en stor database, kan du bruge indstillingen -bruge-hukommelse = memorynumber at fortælle innobackupex, hvor meget hukommelse det kan bruge:

innobackupex -apply-log -use-memory = 4G / data / backups / my_backup

Dataene er klar til at blive genoprettet nu. Vi kan gendanne det på den samme server eller på den anden server, der kører MariaDB.

Trin 4 - Gendan fuld sikkerhedskopiering med Innobackupex

I dette trin vil vi gendanne MySQL-forekomsten med innobackupex.

Før vi genopretter MySQL-forekomsten, skal vi stoppe MySQL-processen med systemctl-kommandoen (MariaDB-processen hedder mysql):

systemctl stop mysql

Lav en sikkerhedskopi af den gamle MySQL datakatalog:

mkdir ~ / mysql_old /
mv / var / lib / mysql / * ~ / mysql_old /

Derefter gendannes mysql-forekomsten fra den fulde backup med innobackupex:

innobackupex -copy-back / data / backups / my_backup

Når du ser resultatet 'innobackupex: afsluttet OK', så har du genoprettet din MySQL-instans.

Skift nu ejeren af ​​MySQL-datakataloget til mysql-brugeren og start tjenesten igen:

chown -R mysql: mysql / var / lib / mysql
systemctl start mysql

Gendan sikkerhedskopien

MySQL-forekomsten er blevet genoprettet med Percona-xtrabackup.

Reference

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.