Premier commit

This commit is contained in:
emorino 2019-05-06 16:01:51 +02:00
parent 2904e486c0
commit 27750feb17

109
HowtoMySQL/mariabackup.md Normal file
View file

@ -0,0 +1,109 @@
---
categories: databases
title: Howto MySQL : mariabackup.
...
## Vue d'ensemble
Mariabackup est un outil qui permet de faire un backup physique d'une instance mysql / mariadb avec les moteurs InnoDB / Aria et MyISAM.
Pour InnoDB un backup "à chaud" est possible, qui a originellement été introduit dans Percona XtraBackup 2.3.8
MariaDB 10.1 a introduit des fonctionnalités exclusives à MariaDB telles que la compression des pages (InnoDB Page Compression) et le chiffrement des données (Data-at-Rest Encryption), ces fonctionnalités exclusives ne sont pas prise en charge par des autres solutions de backup, telles que Percona XtraBackup.
Mariabackup supporte toutes les fonctionnalités de Percona XtraBackup, et celles exclusives a MariaDB telles que :
* Sauvegarde et restauration des tables utilisant **Data-at-Rest Encryption**.
* Sauvegarde et restauration des tables utilisant **InnoDB Page Compression**.
* **mariabackup SST method** avec un cluster Galera.
* Sauvegarde et restauration des tables utilisant **MyRocks** comme moteur de stockage à partir de MariaDB 10.2.16 and MariaDB 10.3.8
## Différences avec Percona XtraBackup
* Percona XtraBackup copie ses fichiers de journalisation InnoDB dans le fichier xtrabackup_logfile, tandis que Mariabackup utilise le fichier ib_logfile0.
* Il n'y a pas de lien symbolique entre mariabackup et innobackupex, comme pour xtrabackup. À la place, mariabackup a l'option de ligne de commande --innobackupex pour activer les options compatibles avec innobackupex.
* Les options _--compact_ et _--rebuild_indexes_ de XtraBackup ne sont pas supportées.
* L'utilitaire _xbstream_ de XtraBackup a été renommé _mbstream._ Cependant, pour sélectionner ce format de sortie lors de la création d'une sauvegarde, l'option _--stream_ de Mariabackup attend toujours la valeur xbstream.
* Mariabackup ne supporte pas l'option _lockless binlog_ d'XtraBackup.
## Installer Mariabackup
Lexécutable mariabackup est inclus dans le paquet _mariadb-client_ sur Debian 9.
~~~
# apt install mariadb-client
~~~
Sur Debian 10 mariabackup est présent dans le paquet _mariadb-backup_ :
~~~
# apt install mariadb-backup
~~~
Un utilisateur spécifique a Mariabackup doit être créer, avec les droits RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT :
~~~
MariaDB > GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'mariabackup'@'localhost' IDENTIFIED BY 'foobarcorp';
~~~
Les informations du compte _mariabackup_ peuvent être spécifié dans un groupe d'option client dans le fichier _.my.cnf_ comme ceci :
~~~
[mariabackup]
user=mariabackup
password=foobarcorp
~~~
## Sauvegarde complète (Full Backup)
Afin de sauvegarder la base de données, vous devez exécuter Mariabackup avec l'option --backup pour lui indiquer d'effectuer une sauvegarde et avec l'option --target-dir pour lui indiquer où placer les fichiers de sauvegarde.
Lors d'une sauvegarde complète, le répertoire cible doit être vide ou ne pas exister.
Pour créer un backup, exécuter la commande suivante :
~~~
# mariabackup --backup --target-dir=/home/mariabackup/ --user=mariabackup --password=foobarcorp
~~~
_Note : Les options --user et --password n'ont pas besoin d'être précisé si on les gères dans le .my.cnf_
La durée de la sauvegarde dépend de la taille des bases de données ou des tables que vous sauvegardez. Vous pouvez annuler la sauvegarde si nécessaire, car le processus de sauvegarde ne modifie pas la base de données.
## Restauration complète
### Préparation du backup
Les fichiers de données créés par Mariabackup dans le répertoire cible ne sont pas cohérents à un point dans le temps, étant donné que les fichiers de données sont copiés à différents moments de la sauvegarde.
Si vous essayez de restaurer à partir de ces fichiers, InnoDB remarque les incohérences et va planté pour protéger les bases de données contre la corruption.
Avant de pouvoir restaurer à partir d'une sauvegarde, vous devez d'abord la préparer pour rendre les fichiers de données cohérents. Vous pouvez le faire avec l'option _--prepare_ :
~~~
# mariabackup --prepare --target-dir=/home/mariabackup/
~~~
### Restauration du backup
Une fois la préparation de la sauvegarde terminée, vous pouvez la restaurer en utilisant les options _--copy-back_ ou _--move-back_.
L'option _--move-back_ déplace les fichiers de sauvegarde vers le datadir, ainsi les fichiers de la sauvegarde d'origine sont perdus.
Voici la provédure pour restauré un backup :
* Tout dabord, arrêtez le processus MariaDB Server.
* Ensuite, assurez-vous que le datadir soit vide.
* Ensuite, lancez Mariabackup avec lune des options mentionnées ci-dessus:
~~~
# mariabackup --copy-back --target-dir=/home/mariabackup/
~~~
* Ensuite, vous devrez peut-être corriger les droits des fichiers :
~~~
# chown -R mysql:mysql /var/lib/mysql/
~~~
Lorsque Mariabackup restaure une base de données, il conserve les privilèges de fichier et de répertoire de la sauvegarde.
Cependant, il écrit les fichiers sur le disque en tant qu'utilisateur et groupe restaurant la base de données.
En tant que tel, après la restauration d'une sauvegarde, vous devrez peut-être ajuster le propriétaire du répertoire de données pour qu'il corresponde à l'utilisateur et au groupe du serveur MariaDB, généralement mysql pour les deux.