DBAtlas · Atlas d'exploitation des bases de données

Sauvegarde physique full + incrémentale et restauration avec XtraBackup

MySQLSauvegarde et PITR

Commande

# Full backup
xtrabackup --backup --host=127.0.0.1 --user=bkp --password='Bkp#2024' --target-dir=/backup/full --parallel=4
# Incremental (based on the previous backup)
xtrabackup --backup --host=127.0.0.1 --user=bkp --password='Bkp#2024' --target-dir=/backup/inc1 --incremental-basedir=/backup/full

# Prepare: full and intermediate incrementals with --apply-log-only, final step without it
xtrabackup --prepare --apply-log-only --target-dir=/backup/full
xtrabackup --prepare --apply-log-only --target-dir=/backup/full --incremental-dir=/backup/inc1
xtrabackup --prepare --target-dir=/backup/full

# Restore: mysqld stopped and datadir empty
systemctl stop mysqld
xtrabackup --copy-back --target-dir=/backup/full --datadir=/var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
cat /backup/full/xtrabackup_binlog_info

Ce que fait la commande

Effectue une sauvegarde physique à chaud en copiant les fichiers InnoDB et le redo log pendant que le serveur tourne ; une sauvegarde incrémentale ne contient que les pages modifiées depuis la sauvegarde précédente. L'étape prepare applique le redo et rend la sauvegarde cohérente.

Quand l'utiliser

Pour les grosses bases nécessitant des restaurations rapides (plusieurs fois plus rapides qu'en logique), pour initialiser des répliques, et pour les stratégies full quotidienne + incrémentale horaire.

Attention

La version de XtraBackup doit correspondre à la série de versions du serveur (serveur 8.0 → XtraBackup 8.0, 8.4 → 8.4) ; si le serveur utilise un format de redo / data dictionary plus récent que le build de XtraBackup, la sauvegarde est refusée. Une sauvegarde non préparée est incohérente. Oublier --apply-log-only aux étapes intermédiaires rend les incrémentales suivantes inutilisables. Le datadir doit être vide pour la restauration ; --move-back économise du disque mais consomme la sauvegarde. Utilisateur de sauvegarde : BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT, et SELECT sur performance_schema.log_status, keyring_component_status, replication_group_members.

Ouvrir dans DBAtlas →

Voir aussi