10gen a récemment annoncé la sortie limitée de leur service de sauvegarde pour MongoDB fournissant des sauvegardes incrémentales et des récupérations à des instants précis dans le temps.
Pour sauvegarder ou restaurer MongoDB, vous utiliseriez généralement les utilitaires mongodump et mongorestore. En option, vous pouvez également utiliser --oplog pour obtenir un snapshot à un instant donné. Cependant, la sauvegarde de la base de données dans sa totalité à chaque fois peut très vite s'avérer consommateur en temps et en espace disque. C'est là que le nouveau service mis en place par 10gen entre en jeu - en offrant une sauvegarde incrémentale en continu qui permettra de restaurer à un instant précis dans le temps. Étant également un service de sauvegarde dans cloud, les utilisateurs peuvent payer pour ce dont ils ont besoin sans avoir à planifier à l'avance la capacité de stockage.
Les principales caractéristiques comprennent :
- Chiffrement SSL pour les transferts de données
- Haute disponibilité
- Récupération à des points de sauvegarde dans le temps
- Support des clusters fragmentés
- Faible coût en terme de performance
La disponibilité générale est prévue pour la fin de l'année.
10gen explique comment la solution fonctionne d'un point de vue technique :
Un agent léger rassemble des logs des opérations de tous les jeux de réplicas qui sont sauvegardés, les compresse et crypte, puis les envoie par SSL aux centres de données où le service de sauvegarde opère. Cette approche présente un certain nombre d'avantages, notamment :
1) les données sont sauvegardées progressivement, de sorte que la quantité de données en mouvement est relativement faible,
2) les données sauvegardées sont très proche dans le temps à celle du système primaire;
3) l'impact sur le système principal ne consiste plus qu'à ajouter un autre réplica à l'ensemble réplicas existants, ce qui est très faible;
4) le journal d'opérations nous permet de restaurer un jeu de réplicas à n'importe quel point dans le temps.
Il y a deux options pour la restauration : snapshots et snapshots personnalisés. Le service de sauvegarde crée et maintient des snapshots des sauvegardes selon une politique. N'importe lequel de ces snapshots est disponible pour une restauration. Alternativement, un utilisateur peut spécifier un point précis dans le temps qu'il aimerait utiliser pour créer un snapshot. Dans ce cas, le snapshot le plus récent précédant le moment indiqué par l'utilisateur est utilisé et le journal d'opérations est appliqué à partir du point dans le temps spécifié par l'utilisateur.
Similaire au MMS, 10gen pourrait rendre ce service disponible sur site pour les grandes entreprises. La société a décidé de ne pas rendre open-source le logiciel fournissant ce service pour le moment.
Il existe un projet open source qui utilise également le journal d'opérations des réplicas pour créer une sauvegarde incrémentale - Tayra de EqualExperts. Vous pouvez regarder la documentation pour voir toutes les fonctionnalités possibles - y compris la restauration sélective et la restauration à un point dans le temps. Cependant, il ne supporte pas les systèmes fragmentés.