Een MySQL-back-up maken met het hulpprogramma XtraBackup

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 InnoDBXtraDB и 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)

Een MySQL-back-up maken met het hulpprogramma XtraBackup

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

Officiële documentatie Percona XtraBack-up.

Bron: www.habr.com

Voeg een reactie