La demande en capacités de gestion et d’analyse des données toujours plus avancées a entraîné un essor des bases de données NoSQL. Cette technologie offre bien des avantages, parmi lesquels l’évolutivité, les performances et la flexibilité. Mais tout cela entraîne des difficultés à protéger les applications qui s’appuient sur ces bases de données. L’approche classique, basée sur des snapshots, n’est pas adaptée. De nouvelles méthodes de sauvegarde ont donc émergé, capables de préserver les données contenues dans les bases NoSQL.

Que sont les systèmes NoSQL et pourquoi sont-ils appréciés ?

Base de données NoSQL : définition

Comme son nom l’indique, un système NoSQL est un système de gestion de base de données (DBMS) qui n’utilise pas le langage SQL (langage de requête structuré), lequel est la norme sur la plupart des bases de données commerciales depuis les années 1980. Microsoft SQL Server, Oracle, IBM DB2 et MySQL en sont des exemples bien connus. Les bases de données relationnelles SQL manquent d’évolutivité horizontale et souffrent d’une rigidité liée à leur structure en tables. L’approche NoSQL contourne ces difficultés.

Types de bases de données NoSQL

Il existe aujourd’hui différents types de bases de données NoSQL sur le marché. Certaines sont des bases « de valeurs clés » toutes simples. D’autres forment des suites sophistiquées. C’est le cas de MongoDB : ce système de gestion de base de données open-source NoSQL utilise des documents flexibles plutôt que des tables structurées pour stocker et traiter de nombreux types de données. Ces documents sont au format Java Script Object Notation (JSON). De ce fait, ils peuvent distribuer des ensembles de données hétérogènes sur plus d’un système.  

Les utilisateurs NoSQL peuvent travailler avec n’importe quel type de données, au vu de la nature flexible du modèle qu’ils emploient. Résultat : une gestion simplifiée de la base de données, généralement appréciée par les développeurs, ainsi qu’une grande évolutivité qui garantit un environnement applicatif ultra disponible et performant. De véritables atouts pour les administrateurs de base de données (DBA) et les gestionnaires d’infrastructure !

 

Pourquoi les atouts du NoSQL rendent les sauvegardes difficiles

Les méthodes de sauvegarde incrémentielle classiques ne sont pas efficaces pour les bases de données NoSQL. Cela s’explique par de nombreux facteurs, parmi lesquels la nature généralement distribuée et « scale-out » de ce type d’instances. Elles stockent les données en différents emplacements, souvent avec des taux de variation divers d’une partie à l’autre de la base. 

Une instance NoSQL classique qui exécute une application dispose d’un ensemble de données considérable, avec un taux de variation élevé. Généralement, des snapshots périodiques ne permettront pas de collecter tous les éléments requis pour garantir un objectif de délai de restauration (RTO) fiable. De plus, en cas d’altération, le snapshot restaurera des données corrompues. De la même manière, les éventuelles fonctions de réplication intégrées risquent de répliquer les données corrompues. 

Autre problème majeur de sauvegarde des bases de données NoSQL : leur non-conformité aux propriétés ACID (atomicité, cohérence, isolation et durabilité). Ce modèle de transaction, courant pour les bases de données SQL, est un gage d’intégrité ; il garantit que toute modification effectuée dans une partie de la base soit cohérente et durable à l’échelle de l’ensemble. 

Par exemple, sur une base de données conforme ACID, si deux utilisateurs tentent d’effectuer des opérations affectant les mêmes données, p. ex. d’acheter une même copie d’un livre, les transactions seront isolées de manière à se produire successivement. La première personne obtiendra la copie du livre. La seconde recevra un message indiquant que le stock est épuisé. Sans ces propriétés ACID, les deux auraient acheté le même livre, et la base de données n’aurait aucun moyen de corriger l’incohérence. 

Les solutions de sauvegarde conventionnelles sont conçues pour fonctionner avec le modèle de transaction ACID. Elles ne peuvent donc pas créer de sauvegarde « ponctuelle » précise d’une base de données NoSQL. D’autre part, de nombreuses applications modernes exécutées sur un système NoSQL sont disponibles en permanence, ce qui complique encore les choses car la base de données ne peut pas être mise en repos pour une sauvegarde. Au lieu des propriétés ACID, la plupart des bases NoSQL s’appuient sur une approche de « cohérence éventuelle ». La base de données peut ainsi évoluer plus vite et plus facilement, mais la restauration prend plus de temps et d’efforts de réparation en cas de panne. Un vrai inconvénient en termes de RTO.

 

 

Comment protéger les applications conçues sur des bases de données NoSQL ?

Il est possible de sauvegarder une base de données NoSQL. Les solutions, telles que Rubrik Mosaic, proposent des sauvegardes avec cohérence applicative selon une approche basée sur des règles. Mosaic diffuse en parallèle les données issues de clusters de base de données NoSQL, de sorte que les sauvegardes peuvent être stockées n’importe où : dans une infrastructure de cloud public, dans des clouds privés ou sur un stockage en réseau (NAS). Cette approche permet des sauvegardes incrémentielle perpétuelles, sans qu’il soit nécessaire de mettre en veille la base de données NoSQL ni l’application qu’elle exécute. La protection est granulaire. De ce fait, la sauvegarde et la restauration peuvent être assurées aussi bien au niveau de la base de données complète que des différentes tables.

Découvrez comment Rubrik peut vous aider à protéger des applications exécutées sur les bases de données NoSQL avec Rubrik Mosaic.