Skapa en MySQL-säkerhetskopia med hjälp av verktyget XtraBackup

Percona XtraBackup är ett verktyg för heta databasbackuper MySQL.

När du skapar en datasäkerhetskopiering är inga tabeller låsta och ditt system fortsätter att fungera utan några begränsningar.

XtraBackup 2.4 kan skapa säkerhetskopior av tabeller InnoDBXtraDB и MyISAM på servrar MySQL 5.11, 5.5, 5.6 och 5.7, och även på servern percona för MySQL с XtraDB.

Att arbeta med MySQL 8.x version ska användas XtraBackup 8.x. Denna artikel kommer bara att tala om XtraBackup 2.4.

Den huvudsakliga fördelen XtraBackup är att detta verktyg är lämpligt både för att skapa säkerhetskopior av högt laddade servrar och för system med ett lågt antal transaktioner.

Om den totala storleken på dina MySQL-databaser är betydande (tiotals gigabyte), då standardverktyget mysqldump kommer inte att tillåta dig att snabbt skapa en säkerhetskopia, och att återställa dumpen kommer att ta mycket tid.

Installation

Installation XtraBackup från förvaret benägen Percona.

Kör följande kommandon sekventiellt:

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb

sudo apt-get update 

sudo apt-get install percona-xtrabackup-24

2. Kör kommandot efter installationen xtrabackup -v. Eftersom det är viktigt att se till att verktyget fungerar korrekt på servern. Som ett resultat kommer något i stil med detta att visas på skärmen:

xtrabackup: igenkända serverargument: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup version 2.4.20 baserad på MySQL-server 5.7.26 Linux (x8664) (revisions-id: c8b4056)

Skapa en MySQL-säkerhetskopia med hjälp av verktyget XtraBackup

Åtkomsträttigheter, behörigheter och privilegier 

XtraBackup bör kunna:

  • Anslut till din MySQL-server.

  • Har åtkomsträttigheter till katalogen är data

  • När du skapar en säkerhetskopia, ha skrivrättigheter till den angivna parametern mål-dir katalog.

Vad är datadir?

är data är katalogen där databasservern MySQL lagrar data. Alla databaser, alla tabeller finns där. På de flesta Linux-distributioner är standardkatalogen / var / lib / mysql.

Vad är target-dir-katalogen?

mål-dir - Det här är katalogen där säkerhetskopian kommer att sparas.

Databasanvändaren behöver följande åtkomsträttigheter till tabellerna och databaserna som ska säkerhetskopieras:

  • LADDA OM och LÅS BORD

  • REPLIKATIONSKLIENT

  • SKAPA BORDSPLATS

  • BEARBETA

  • TOPPEN

  • SKAPA

  • INFOGA

  • VÄLJA

konfiguration 

konfiguration XtraBackup gjort med alternativ som fungerar på samma sätt som vanliga MySQL-alternativ.

Vad betyder det här?

Konfigurationsparametrar kan anges antingen på kommandoraden eller i DBMS-konfigurationsfilen, till exempel i /etc/my.cnf.

XtraBackup-verktyget läser partitioner efter start [Mysqld] и [xtrabackup] från MySQL-konfigurationsfiler. Detta görs så att verktyget kan använda inställningarna för ditt DBMS utan att manuellt behöva specificera parametrarna under varje säkerhetskopiering.

Till exempel värdet är data och några parametrar InnoDB Vi får XtraBackup från konfigurationen av ditt DBMS.

Om för att XtraBackup ska fungera vill du åsidosätta parametrarna som finns i avsnittet [Mysqld], ange dem sedan i konfigurationsfilen i avsnittet [xtrabackup]. Eftersom de kommer att läsas senare kommer deras prioritet att vara högre.

Du behöver inte lägga till några parametrar till min.cnf. Alla nödvändiga parametrar kan anges på kommandoraden. Vanligtvis det enda som bekvämt kan placeras i sektionen [xtrabackup] din min.cnf är en parameter target_dir, som som standard anger katalogen där säkerhetskopior ska placeras. Men detta är valfritt.

Ett exempel på att ange sökvägen till katalogen med en säkerhetskopia i min.cnf:

[xtrabackup]
target_dir = /data/backups/mysql/

Säkerhetskopieringsskript

Du kan använda följande skript för att skapa en säkerhetskopia:

#!/bin/bash

# Удаляем данные в каталоге бекапа
rm -rf /mysql/backup

# Cоздаём бекап
xtrabackup --user=xtrabackup 
 --password=xxxx_SECRET_xxxx 
 --backup 
 --target-dir=/mysql/backup

# Выполняем подготовку бекапа для развёртывания
xtrabackup --prepare --target-dir=/mysql/backup

# Создаём архив
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backup

Vad händer under skriptkörning?

Först och främst rensar vi (raderar) katalogen där vi kommer att spara säkerhetskopian:

rm -rf /mysql/backup.

Använd sedan verktyget XtraBackup skapa en säkerhetskopia och spara den i /mysql/backup/:

xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

Tidigare skapade vi en användare i MySQL xtrabackup med nödvändiga rättigheter. Använder parametern target-dir vi anger katalogen där säkerhetskopian ska sparas.

En viktig punkt!

Notera skriptraden:

xtrabackup --prepare --target-dir=/mysql/backup

Katalogdata /mysql/backup är inte konsekventa förrän de är kokta. 

Faktum är att ändringar kan inträffa när filer kopieras. Drift xtrabackup --prepare --target-dir=/mysql/backup gör säkerhetskopieringsdata perfekt konsekvent över tiden.

Du kan utföra dataförberedelsen på vilken maskin som helst. Det finns inget behov av att göra detta på servern där käll-DBMS finns. Du kan kopiera säkerhetskopian till målservern och förbereda den där.

Det sista vi gör är att skapa ett arkiv där vi placerar vår säkerhetskopia:

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup

Återställer en säkerhetskopia 

Innan du kan återställa en säkerhetskopia till målservern måste data gå igenom en förberedelsefas. Se ovan för hur du gör detta.

Dataåterställningsprocessen är mycket enkel. Du måste extrahera säkerhetskopian från arkivet och ersätta data i är data.

Hur ersätter man data i datadir?

Låt oss överväga två alternativ.

Alternativ 1

Använd verktyget XtraBackup. Du måste ange ett alternativ --kopiera tillbaka

Kommandot nedan överför säkerhetskopian till är data målserver:

xtrabackup --copy-back --target-dir=/mysql/backup

Alternativ 2

Du kan göra det annorlunda, klara dig utan verktyget XtraBackup.

Allt du behöver göra är att kopiera säkerhetskopian till är data. Du kan göra detta med cp eller rsync.

Det är viktigt att förstå att proceduren för att återställa en säkerhetskopia handlar om att bara ersätta innehållet i katalogen är data.

Innan du börjar återställa en säkerhetskopia på målservern måste du:

  • Stoppa MySQL-servern.

  • Rensa mapp är data eller flytta dess innehåll till en annan plats. Katalog är data måste vara tom.

Efter att ha slutfört dataöverföringen till är data MySQL-servern kan startas.

Material som används

Officiell dokumentation percona XtraBackup.

Källa: will.com

Lägg en kommentar