Par Dmitri Joukovski et Pavel Pragin

La base de données MySQL est devenue la base de données open source la plus populaire au monde en raison de ses performances rapides et constantes, de sa grande fiabilité et de sa facilité d'utilisation. Vous utilisez peut-être la base de données MySQL pour vos forums en ligne et votre wiki situés chez un fournisseur d'hébergement géré, ou vous l'utilisez peut-être dans un bureau distant pour suivre les bogues avec Bugzilla, ou vous envisagez peut-être de développer une nouvelle application Web 2.0 utilisant MySQL . Quoi qu'il en soit, si vous appréciez les informations stockées dans votre base de données MySQL, vous devrez assurer des sauvegardes réussies, sécurisées et cohérentes de MySQL avec un impact minimal sur l'application de base de données. Assurez-vous que votre solution de sauvegarde offre l'utilisation la plus efficace des ressources réseau, serveur et stockage.

Si vous recherchez une solution qui vous simplifie la vie en fournissant une sauvegarde et une restauration faciles à utiliser mais flexibles et robustes pour MySQL, Zmanda Recovery Manager (ZRM) pourrait être le bon choix pour vous. Détails sur Les fonctionnalités ZRM sont disponibles ici.

Pour toute sauvegarde d'une base de données, les principales considérations sont la cohérence de la sauvegarde et son impact sur les utilisateurs et les applications. Une sauvegarde de MySQL distant, cependant, présente des défis supplémentaires liés à:

  • utilisation du réseau
  • sécurité, et
  • flexibilité de la récupérabilité des données MySQL vers un hôte différent.

Le dernier point peut être important lorsque vous n'avez pas le contrôle total de votre environnement MySQL et que vous souhaitez avoir la possibilité de récupérer vos données vers un autre fournisseur d'hébergement géré avec une version différente du serveur MySQL ou un système d'exploitation différent.

Les sauvegardes incrémentielles réduisent considérablement la fenêtre de sauvegarde et l'utilisation du réseau, car seules les modifications depuis la dernière sauvegarde complète ou incrémentielle sont déplacées sur le câble. ZRM vous permet de récupérer facilement vos données à partir de sauvegardes incrémentielles, même si vous devez utiliser plusieurs images de sauvegarde incrémentielle pour ramener vos données à un moment donné. Les sauvegardes incrémentielles nécessitent l'activation des journaux binaires MySQL, mais selon la documentation MySQL, l'activation des journaux binaires entraînera performance hit de moins de 1%.

Les sauvegardes logiques offrent plus de flexibilité pour la restauration car le fichier de sauvegarde est un fichier texte contenant toutes les instructions MySQL pour recréer à la fois le schéma et le contenu de la base de données. La sauvegarde logique fonctionne pour tous les moteurs de stockage à l'exception du moteur NDB utilisé pour le clustering MySQL. Le plus grand avantage de la sauvegarde logique est la flexibilité pour une restauration de base de données. Vous pouvez restaurer la sauvegarde logique de MySQL sur une autre architecture et même sur une autre base de données. La transportabilité des images de sauvegarde ZRM logiques fait de ZRM un outil pratique pour la migration. Par exemple, vous pouvez déplacer vos données MySQL:

  • De MySQL sur Solaris à MySQL sur Linux
  • D'un moteur de stockage à un autre
  • D'un serveur 32 bits à un serveur 64 bits
  • D'un fournisseur d'hébergement géré à votre centre de données ou à un autre fournisseur avec une configuration MySQL différente

Bien entendu, il y a un prix à payer pour une telle récupération flexible. La restauration des données à partir des sauvegardes logiques peut prendre du temps car vous devez lire et rejouer toutes les instructions MySQL. Un autre inconvénient est qu'il peut être difficile de prédire la taille de votre sauvegarde logique. Selon le type de données et le schéma de votre base de données, la taille de la sauvegarde logique peut être plus grande que la base de données elle-même. Un remède est que, puisque la sauvegarde logique est essentiellement un fichier texte, vous pouvez généralement obtenir une compression décente.

La sauvegarde brute fournit une copie cohérente d'une base de données, votre sauvegarde étant un fichier binaire. Les avantages des sauvegardes brutes par rapport aux sauvegardes logiques sont les suivants:

  • Les sauvegardes et en particulier les récupérations sont beaucoup plus rapides. Par exemple, il n'est pas inhabituel de voir que pour la même base de données d'une taille de 4 à 5 Go, la sauvegarde brute est 5 fois plus rapide que la sauvegarde logique, et la récupération de l'image de sauvegarde brute est 20 fois plus rapide que la récupération de la sauvegarde logique image.
  • Vous saurez toujours la taille exacte de votre sauvegarde car il ne s'agit que d'une copie d'une base de données.
  • Il offre une meilleure évolutivité qui pourrait être importante si votre base de données MySQL est assez volumineuse, par exemple 10-20 Go ou plus.

Les sauvegardes brutes peuvent être restaurées UNIQUEMENT sur la même version du serveur MySQL sur le même système d'exploitation que les données d'origine. Cela signifie que vos chances de récupérer des images de sauvegarde brutes de MySQL vers un autre fournisseur d'hébergement géré ne sont pas très élevées et vous devez en tenir compte lorsque vous choisissez une sauvegarde brute ou logique.

Les sauvegardes brutes et logiques fournissent une sauvegarde à chaud, ce qui signifie que vous n'avez pas à arrêter le serveur MySQL pour la sauvegarde, mais toutes les tables sont verrouillées pendant la sauvegarde et les utilisateurs ne peuvent pas entrer leurs données. C'est pourquoi vous devriez envisager d'utiliser le plug-in de planification ZRM qui permet de retarder les sauvegardes en fonction des seuils que vous définissez. Par exemple, vous pouvez reporter la sauvegarde d'une heure si plus de 50 utilisateurs accèdent à la base de données.

L'une des considérations importantes pour la sauvegarde à distance de MySQL est la décision concernant le type de connexion à établir entre ZRM et le serveur MySQL distant. ZRM fournit un plug-in pour la connexion par socket et un autre plug-in pour la connexion SSH. L'architecture flexible de ZRM permet aux utilisateurs d'écrire leurs propres plug-ins.

Comme son nom l'indique, le plug-in de copie de socket établit un socket qui assure la communication entre ZRM et MySQL sur un réseau IP. Le plug-in de copie de socket nécessite que le service xinetd soit exécuté sur le serveur MySQL et que le port par défaut 25300 soit ouvert. Si nécessaire, un administrateur de sauvegarde peut modifier le port. Le plug-in de copie de socket n'est pas sécurisé et ne doit être utilisé que lorsque la sécurité n'est pas un problème ou lorsque la sécurité est établie par d'autres moyens, par exemple, lorsque vous avez une connexion VPN entre ZRM et votre serveur MySQL distant.

Le plug-in de copie SSH fournit un canal sécurisé entre ZRM et le serveur MySQL distant. Il utilise la cryptographie à clé publique pour authentifier le serveur MySQL distant et l'utilisateur de sauvegarde exécutant ZRM. Le plug-in SSH nécessite que le port TCP standard 22 soit ouvert et que le démon SSH soit en cours d'exécution. Le plug-in de copie SSH est le mieux adapté lorsqu'il est important de garantir la sécurité des données de sauvegarde. Étant donné que la connexion SSH nécessite des cycles CPU supplémentaires pour le chiffrement, il peut y avoir un impact sur les performances de sauvegarde par rapport à la sauvegarde avec connexion socket.

Le tableau suivant résume les considérations lors du choix du plug-in de copie socket par rapport au plug-in de copie SSH pour la sauvegarde à distance de MySQL:

Connexion à distance
brancher
Port utilisé Sécurité Performance relative Commentaires d'installation
Copie SSH 22 (fixe) Fournit une authentification et un cryptage solides pour déplacer les données de sauvegarde sur le fil Baisse des performances et dépend de la mémoire du serveur MySQL, des ressources du processeur et de la bande passante disponible. Souvent, vous pouvez avoir une connexion SSH à un serveur MySQL distant déjà établi pour des raisons autres que la sauvegarde et la restauration. Sinon, vous devez établir une connexion SSH entre ZRM et le serveur MySQL.
Copie de socket 25300 (pourrait être changé) Les données de sauvegarde sur le fil ne sont pas sécurisées Des performances supérieures Des logiciels supplémentaires doivent être installés sur le serveur MySQL. Par exemple, pour la version Entreprise de ZRM 1.1, utilisez MySQL-zrm-enterprise-socket-server-1.1-1.noarch.rpm. Pour la version communautaire, voir la page de téléchargement pour le package exact.

Pour plus de détails techniques, inscrivez-vous gratuitement sur Zmanda Network et téléchargez la version complète de ce livre blanc. Vous apprendrez à utiliser ZRM pour plusieurs scénarios courants. Par exemple, nous fournirons des détails techniques sur la manière d'effectuer une sauvegarde avec des données sécurisées sur le fil et au repos à l'aide du plug-in de copie SSH pour ce cas d'utilisation:

ZRM sur Internet

De plus, nous fournirons des détails techniques sur des sauvegardes logiques et brutes plus efficaces à l'aide du plug-in de copie de socket.

Avec toutes ses fonctionnalités riches, ZRM for MySQL est juste un outil pour mettre en œuvre une stratégie de sauvegarde et de restauration optimale pour vos besoins spécifiques de protection des données. ZRM est robuste et facile à utiliser, mais en fonction de votre propre implémentation du serveur MySQL distant et de vos besoins spécifiques en matière de sauvegarde et de restauration, vous devez envisager tous les compromis associés à chaque option opérationnelle fournie par ZRM pour MySQL.

Références:
ZRM pour MySQL
ZRM pour MySQL Wiki
Forums Zmanda