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 Deze utility is geschikt voor het maken van back-upkopieën van bestanden met een hoge bestandsgrootte. servers, en ook 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-242. 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=0 xtrabackup 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 en alle tabellen bevinden zich daar. In de meeste distributies Linux Standaard is deze map / 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/backupWat 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/backupVoorheen 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/backupEen 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/backupoptie 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
