Nous sommes en train de passer à un nouveau système RAID et nous devons copier notre base de données MySQL InnoDB vers le nouveau système RAID tout en minimisant les temps d'arrêt (base de données de 50 Go). Je comprends que l'utilisation de rsync sur une base de données MySQL en cours d'exécution ne produira pas une copie utilisable de la base de données. Cependant, puis-je obtenir une copie exacte en utilisant rsync sur la base de données en cours d'exécution, puis en arrêtant complètement mysqld, et en exécutant un dernier rsync? Y a-t-il des risques de corruption des données dans ce cas, si je m'assure que mysql ne fonctionne pas lorsque le dernier rsync est exécuté?
Réponse
Trop de publicités?Ce que vous décrivez devrait fonctionner, cependant mon conseil pour sauvegarder toute base de données en utilisant une sauvegarde au niveau du système de fichiers est que, sauf si le fournisseur de base de données a approuvé des procédures pour faire autrement, vous devez mettre la base de données en mode de repos avant de procéder à une sauvegarde au niveau du système de fichiers (Cela signifie "éteindre cette fichue chose").
Ce que vous faites profitera des transferts delta de rsync
et copiera efficacement la base de données "éteinte" en une période légèrement plus courte puisqu'elle ne copiera que les parties modifiées.
Comme pour toute procédure, avant de le faire dans un environnement de production, vous voudrez peut-être concevoir un cas de test (créer une instance MySQL et une base de données, la sauvegarder, apporter des modifications, l'éteindre, réaliser votre synchronisation finale & vous assurer que cela fonctionne sur la machine clonée).