Percona XtraBackup is een hulpprogramma voor het maken van back-ups van actieve databases MySQL.
Wanneer u een gegevensback-up maakt, worden er geen tabellen vergrendeld en blijft uw systeem zonder enige beperking werken.
XtraBackup 2.4 kan back-ups van tabellen maken InnoDB, XtraDB и MyISAM op servers MySQL 5.11, 5.5, 5.6 en 5.7, en ook op de server Percona voor MySQL с XtraDB.
Werken met MySQL 8.x versie moet worden gebruikt XtraBackup 8.x. Dit artikel zal alleen over praten XtraBackup 2.4.
Het belangrijkste voordeel XtraBack-up is dat dit hulpprogramma zowel geschikt is voor het maken van back-ups van zwaarbelaste servers als voor systemen met een laag aantal transacties.
Als de totale omvang van uw MySQL-databases aanzienlijk is (tientallen gigabytes), dan is het standaardhulpprogramma mijnsqldump kunt u niet snel een reservekopie maken, en het herstellen van de dump zal veel tijd in beslag nemen.
installatie
installatie XtraBack-up uit de repository geneigd Percona.
Voer de volgende opdrachten achtereenvolgens uit:
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. Voer na de installatie de opdracht uit xtrabackup -v
. Daarom is het belangrijk om ervoor te zorgen dat het hulpprogramma correct werkt op de server. Als gevolg hiervan wordt zoiets op het scherm weergegeven:
xtrabackup: herkende serverargumenten: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup versie 2.4.20 gebaseerd op MySQL-server 5.7.26 Linux (x8664) (revisie-ID: c8b4056)
Toegangsrechten, machtigingen en privileges
XtraBackup zou in staat moeten zijn om:
-
Maak verbinding met uw MySQL-server.
-
Toegangsrechten hebben tot de map gegevensmap.
-
Wanneer u een reservekopie maakt, zorg er dan voor dat u schrijfrechten heeft voor de opgegeven parameter doel-dir catalogus.
Wat is datadir?
gegevensmap is de map waarin de databaseserver staat MySQL slaat gegevens op. Alle databases, alle tabellen zijn aanwezig. Op de meeste Linux-distributies is de standaardmap / var / lib / mysql.
Wat is de target-dir-directory?
doel-dir - Dit is de map waar de back-up wordt opgeslagen.
De databasegebruiker heeft de volgende toegangsrechten nodig tot de tabellen en databases waarvan een back-up moet worden gemaakt:
-
TAFELS HERLADEN en VERGRENDELEN
-
REPLICATIE-CLIENT
-
MAAK TAFELRUIMTE
-
PROCES
-
SUPER
-
CREATE
-
INSERT
-
SELECT
Configuratie
Configuratie XtraBack-up gedaan met behulp van opties die zich hetzelfde gedragen als standaard MySQL-opties.
Wat betekent dit?
Configuratieparameters kunnen worden opgegeven op de opdrachtregel of in het DBMS-configuratiebestand, bijvoorbeeld in /etc/my.cnf.
Het hulpprogramma XtraBackup leest partities na het starten [Mysqld] и [xtraback-up] uit MySQL-configuratiebestanden. Dit wordt gedaan zodat het hulpprogramma de instellingen van uw DBMS kan gebruiken zonder dat u de parameters tijdens elke back-up handmatig hoeft op te geven.
De waarde bijvoorbeeld gegevensmap en enkele parameters InnoDB We halen XtraBackup uit de configuratie van uw DBMS.
Als u XtraBackup wilt laten werken, wilt u de parameters in de sectie overschrijven [Mysqld]en specificeer ze vervolgens in het configuratiebestand in de sectie [xtraback-up]. Omdat ze later worden gelezen, zal hun prioriteit hoger zijn.
U hoeft geen parameters toe te voegen mijn.cnf. Alle vereiste parameters kunnen op de opdrachtregel worden opgegeven. Meestal het enige dat handig in de sectie kan worden geplaatst [xtraback-up] uw mijn.cnf is een parameter doelmap, die standaard de map specificeert waar back-ups worden geplaatst. Maar dit is optioneel.
Een voorbeeld van het opgeven van het pad naar de map met een reservekopie erin mijn.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/
Back-upscript
U kunt het volgende script gebruiken om een back-up te maken:
#!/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
Wat gebeurt er tijdens de uitvoering van het script?
Allereerst wissen (verwijderen) we de map waarin we de back-up gaan opslaan:
rm -rf /mysql/backup.
Gebruik vervolgens het hulpprogramma XtraBack-up maak een reservekopie en sla deze op /mysql/back-up/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup
Voorheen maakten we een gebruiker aan in MySQL xtrabackup
met de vereiste rechten. Met behulp van de parameter target-dir
we specificeren de map waar de back-up moet worden opgeslagen.
Een belangrijk punt!
Let op de scriptregel:
xtrabackup --prepare --target-dir=/mysql/backup
Catalogusgegevens /mysql/back-up zijn pas consistent als ze gaar zijn.
Feit is dat er veranderingen kunnen optreden tijdens het kopiëren van bestanden. Operatie xtrabackup --prepare --target-dir=/mysql/backup
zorgt ervoor dat back-upgegevens in de loop van de tijd perfect consistent zijn.
U kunt de gegevensvoorbereiding op elke machine uitvoeren. Het is niet nodig dit te doen op de server waarop het bron-DBMS zich bevindt. U kunt de back-up naar de doelserver kopiëren en daar voorbereiden.
Het laatste dat we doen is een archief maken waarin we onze back-up plaatsen:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup
Een back-up herstellen
Voordat u een back-up op de doelserver kunt terugzetten, moeten de gegevens een voorbereidingsfase doorlopen. Zie hierboven hoe u dit doet.
Het gegevensherstelproces is heel eenvoudig. U moet de back-up uit het archief halen en de gegevens erin vervangen gegevensmap.
Hoe gegevens in datadir vervangen?
Laten we twee opties overwegen.
optie 1
Gebruik het hulpprogramma XtraBack-up. U moet een optie opgeven --kopieer terug.
Met de onderstaande opdracht wordt de back-up overgezet naar gegevensmap doelserver:
xtrabackup --copy-back --target-dir=/mysql/backup
optie 2
Je kunt het anders doen, zonder het hulpprogramma XtraBack-up.
Het enige dat u hoeft te doen, is de back-up kopiëren naar gegevensmap. Je kunt dit doen met cp of rsync.
Het is belangrijk om te begrijpen dat de procedure voor het herstellen van een back-up neerkomt op het vervangen van de inhoud van de map gegevensmap.
Voordat u begint met het herstellen van een back-up op de doelserver, moet u:
-
Stop de MySQL-server.
-
Lege folder gegevensmap of verplaats de inhoud naar een andere locatie. Catalogus gegevensmap moet leeg zijn.
Na voltooiing van de gegevensoverdracht naar gegevensmap MySQL-server kan worden gestart.
materialen
Bron: www.habr.com