Création d'une sauvegarde MySQL à l'aide de l'utilitaire XtraBackup

Percona XtraSauvegarde est un utilitaire pour les sauvegardes de bases de données à chaud MySQL.

Lors de la création d'une sauvegarde de données, aucune table n'est verrouillée et votre système continue de fonctionner sans aucune restriction.

XtraBackup2.4 peut créer des copies de sauvegarde des tables InnoDBXtraDB и MyISAM sur les serveurs MySQL 5.11, 5.5, 5.6 et 5.7, et aussi sur le serveur Percône pour MySQL с XtraDB.

Travailler avec MySQL 8.x la version doit être utilisée XtraBackup 8.x. Cet article ne parlera que de XtraBackup 2.4.

Le principal avantage XtraSauvegarde est que cet utilitaire convient à la fois à la création de sauvegardes de serveurs très chargés et à des systèmes avec un faible nombre de transactions.

Si la taille totale de vos bases de données MySQL est importante (des dizaines de gigaoctets), alors l'utilitaire standard mysqldump ne vous permettra pas de créer rapidement une copie de sauvegarde et la restauration du dump prendra beaucoup de temps.

Installation

Installation XtraSauvegarde du référentiel apte Percona.

Exécutez les commandes suivantes de manière séquentielle :

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. Après l'installation, exécutez la commande xtrabackup -v. Depuis, il est important de s'assurer que l'utilitaire fonctionne correctement sur le serveur. En conséquence, quelque chose comme ceci s'affichera à l'écran :

xtrabackup : arguments de serveur reconnus : - 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 basé sur le serveur MySQL 5.7.26 Linux (x8664) (ID de révision : c8b4056)

Création d'une sauvegarde MySQL à l'aide de l'utilitaire XtraBackup

Droits d'accès, autorisations et privilèges 

XtraBackup devrait être capable de :

  • Connectez-vous à votre serveur MySQL.

  • Avoir les droits d'accès au répertoire répertoire de données

  • Lors de la création d'une copie de sauvegarde, disposez des droits d'écriture sur le paramètre spécifié rép-cible catalogue.

Qu’est-ce que datadir ?

répertoire de données est le répertoire où se trouve le serveur de base de données MySQL stocke les données. Toutes les bases de données, toutes les tables sont là. Sur la plupart des distributions Linux, le répertoire par défaut est /var/lib/mysql.

Qu’est-ce que le répertoire target-dir ?

rép-cible - C'est le répertoire où la sauvegarde sera enregistrée.

L'utilisateur de la base de données doit disposer des droits d'accès suivants aux tables et bases de données à sauvegarder :

  • RECHARGER et VERROUILLER LES TABLES

  • CLIENT DE RÉPLICATION

  • CRÉER UN ESPACE TABLE

  • PROCESSUS

  • SUPER

  • CREATE

  • INSERT

  • SELECT

Configuration 

Configuration XtraSauvegarde effectué en utilisant des options qui se comportent de la même manière que les options MySQL standard.

Qu'est-ce que cela signifie?

Les paramètres de configuration peuvent être spécifiés soit sur la ligne de commande, soit dans le fichier de configuration du SGBD, par exemple dans /etc/mon.cnf.

L'utilitaire XtraBackup lit les partitions après le lancement [Mysqld] и [sauvegarde supplémentaire] à partir des fichiers de configuration MySQL. Ceci est fait pour que l'utilitaire puisse utiliser les paramètres de votre SGBD sans avoir à spécifier les paramètres manuellement lors de chaque sauvegarde.

Par exemple, la valeur répertoire de données et quelques paramètres InnoDB Nous obtenons XtraBackup à partir de la configuration de votre SGBD.

Si pour que XtraBackup fonctionne, vous souhaitez remplacer les paramètres qui se trouvent dans la section [Mysqld], il suffit ensuite de les préciser dans le fichier de configuration dans la section [sauvegarde supplémentaire]. Puisqu’ils seront lus plus tard, leur priorité sera plus élevée.

Vous n'avez pas besoin d'ajouter de paramètres à mon.cnf. Tous les paramètres requis peuvent être spécifiés sur la ligne de commande. Habituellement, la seule chose qui peut être facilement placée dans la section [sauvegarde supplémentaire] votre mon.cnf est un paramètre rép_cible, qui spécifie par défaut le répertoire dans lequel les sauvegardes seront placées. Mais c'est facultatif.

Un exemple de spécification du chemin d'accès au répertoire avec une copie de sauvegarde dans mon.cnf:

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

Script de sauvegarde

Vous pouvez utiliser le script suivant pour créer une sauvegarde :

#!/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

Que se passe-t-il lors de l'exécution du script ?

Tout d'abord, nous effaçons (supprimons) le répertoire dans lequel nous allons enregistrer la copie de sauvegarde :

rm -rf /mysql/backup.

Ensuite, en utilisant l'utilitaire XtraSauvegarde créer une copie de sauvegarde et l'enregistrer dans /mysql/sauvegarde/:

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

Auparavant, nous créions un utilisateur dans MySQL xtrabackup avec les privilèges requis. Utilisation du paramètre target-dir nous spécifions le répertoire où la sauvegarde doit être enregistrée.

Un point important!

Notez la ligne de script :

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

Données du catalogue /mysql/sauvegarde ne sont consistants qu’après cuisson. 

Le fait est que des changements peuvent survenir lors de la copie de fichiers. Opération xtrabackup --prepare --target-dir=/mysql/backup rend les données de sauvegarde parfaitement cohérentes dans le temps.

Vous pouvez effectuer l’opération de préparation des données sur n’importe quelle machine. Il n'est pas nécessaire de le faire sur le serveur où se trouve le SGBD source. Vous pouvez copier la sauvegarde sur le serveur cible et la préparer là-bas.

La dernière chose que nous faisons est de créer une archive dans laquelle nous plaçons notre sauvegarde :

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

Restaurer une sauvegarde 

Avant de pouvoir restaurer une sauvegarde sur le serveur cible, les données doivent passer par une phase de préparation. Voir ci-dessus pour savoir comment procéder.

Le processus de récupération des données est très simple. Vous devez extraire la sauvegarde de l'archive et remplacer les données dans répertoire de données.

Comment remplacer les données dans datadir ?

Considérons deux options.

Option 1

Utilisez l'utilitaire XtraSauvegarde. Vous devez spécifier une option --copier

La commande ci-dessous transférera la sauvegarde vers répertoire de données serveur cible :

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

Option 2

Vous pouvez faire différemment, vous passer de l'utilitaire XtraSauvegarde.

Tout ce que vous avez à faire est de copier la sauvegarde sur répertoire de données. Vous pouvez le faire avec cp ou rsync.

Il est important de comprendre que la procédure de restauration d'une sauvegarde se résume au simple remplacement du contenu du répertoire répertoire de données.

Avant de commencer à restaurer une sauvegarde sur le serveur cible, vous devez :

  • Arrêtez le serveur MySQL.

  • Dossier vide répertoire de données ou déplacez son contenu vers un autre emplacement. Catalogue répertoire de données doit être vide.

Après avoir terminé le transfert des données vers répertoire de données Le serveur MySQL peut être démarré.

matériaux utilisés

Documents officiels Percône XtraSauvegarde.

Source: habr.com

Ajouter un commentaire