MySQL - Considération pour les sauvegardes
Cinq 5 principales considérations
-
À quelle vitesse et à quel point voulez-vous que le processus de récupération MySQL soit facile?
Recovery Point Objective (RPO) : définit à quel moment vous devez récupérer votre base de données.
Recovery Time Objective (RTO) : définit le temps qu'il faudra pour récupérer la base de données. -
Quel sera l'impact du processus de sauvegarde MySQL sur votre service?
L'impact en ressouces : CPU, RAM, disques (IO, espace).
Le temps pour prendre la sauvegarde.
...tout ça = impact sur l'service. -
À quoi ressemblera votre configuration de sauvegarde? c'est-à-dire - quoi, où, quand et comment de la sauvegarde MySQL
Nombre de BD.
La taille des BD.
Le type de base de données : InnoDB, MyISAM, NDB-MySQL...
L'activité sur ces BD.
La version du serveur de BD. -
Comment allez-vous gérer votre processus de sauvegarde et vos données sauvegardées?
Automatisé (cron, service, ...)
Quand?
La fréquence?
Commandes pre et post-backup. Le pre-backup pourrait vérifier s'il a assez d'espace disque avant de démarré.
Chiffrement?
Compression? Ce n'est probablement pas souhaitable dans notre cas. -
Quel type d'exigences de suivi, de rapport et de conformité votre entreprise doit-elle appliquer à votre implémentation de sauvegarde MySQL?
Avec BeL on est correct.
On a pas besoin de conformité pour les Zabbix, on ammasse que des données et métriques du système d'exploitation est ses services.
Cinq (5) logiciels/solutions
Ces logiciels sont classés par ordre de popularité et peuvent être utilisés seul ou aux côtés d'un autre.
-
mysqldump
Utilitaire fourni avec MySQL.
Ajouter les arguments supplémentaires pour prendre aussi ceux de MySQL? Inclure ou pas "mysql".
mysqldump --single-transaction --all-databases | gzip - >full_backup.sql.gz
-
Percona XtraBackup
Percona XtraBackup supports natively incremental backups.
The Percona XtraBackup tools provide a method of performing a hot backup of your MySQL data while the system is running.
Percona XtraBackup is a free, online, open source, complete database backups solution for all versions of Percona Server for MySQL and MySQL®.
Percona XtraBackup performs online non-blocking, tightly compressed, highly secure full backups on transactional systems so that applications remain fully available during planned maintenance windows.
xtrabackup --backup --parallel 4 --compress --target-dir /var/backup/
-
Volume Snapshots
Pas disponible actuelllement sur la plus de nos serveurs (ext4).
mysql -e 'FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; ! zfs snapshot -r mysqldata/mysql@my_first_snapshot'
-
Au niveau des fichiers, cela implique d'arrêter le servive MySQL (et ceux connectés).
C'est le plus impactant, mais le plus simple.
-
MySQL Enterprise Backup
C'est un logiciel d'Oracle, mais trop \$$$$.
*) Replication
Primary -> Secondary. Cela nous offre la possibilité de d'appliquer toutes les solutions désirées.
Observations et questions
- Le temps pour prendre la sauvegarde est très longue (jusqu'à l'autre cédule).
- La vitesse IO du stockage semble problématique sur certain Zabbix.
- L'espace disque est très restreint sur certain serveur (solution: ajouter un autre disque soit pour mettre le backup ou y mettre la DB).
- Est-ce qu'il faudrait mettre à jour xtrabackup sur certain serveur?
Exemple de type d'engins supportés par MySQL :
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.12 sec)