Der Wunsch nach immer umfangreicheren Datenverwaltungs- und Analysefunktionen hat zu der vermehrten Verwendung von NoSQL-Datenbanken geführt. Die Technologie bietet viele Vorteile, darunter Skalierbarkeit, Leistungsfähigkeit und Flexibilität. Diese Vorteile bedeuten jedoch Schwierigkeiten beim Schutz von Anwendungen, die auf NoSQL-Datenbanken ausgeführt werden. Herkömmliche Snapshot-Ansätze funktionieren nicht sehr gut. Es sind jedoch neue Ansätze für Datenbank-Backups entstanden, mit denen Daten in NoSQL-Datenbanken geschützt werden können.

Was ist NoSQL und warum ist es so beliebt?

NoSQL bezeichnet, wie der Name schon sagt, Datenbankmanagementsysteme (DBMS), die nicht Structured Query Language (SQL) verwenden, das seit den 1980er Jahren der Standard für die meisten kommerziellen Datenbanken ist. Microsoft SQL Server, Oracle, IBM DB2 und MySQL sind gängige Beispiele. Nachteile relationaler SQL-Datenbanken sind ein Mangel an horizontaler Skalierbarkeit und die Starrheit, die sich aus dem tabellarischen Aufbau relationaler Systeme ergibt. Der NoSQL-Ansatz umgeht diese Probleme.

Es gibt inzwischen viele Arten von NoSQL-Datenbanken auf dem Markt. Dazu gehören einfache „Schlüsselwert“-Datenbanken sowie hochentwickelte Suiten wie MongoDB. MongoDB ist ein Open-Source-NoSQL-DBMS, das anstelle von strukturierten Tabellen flexible Dokumente zum Speichern und Verarbeiten verschiedener Datentypen verwendet. Dokumente werden in Java Script Object Notation (JSON) formatiert. Mit diesem Ansatz können sie heterogene Datensätze auf mehrere Systeme verteilen.  

NoSQL-Benutzer können aufgrund des elastischen Datenmodells dieser Technologie mit praktisch jedem Datentyp arbeiten. Daraus ergibt sich eine vereinfachte Datenbankverwaltung, die bei Entwicklern gut ankommt, und eine hochgradig skalierbare Datenbank, die eine hochverfügbare und leistungsstarke Umgebung zur Unterstützung von Anwendungen schafft. Das gefällt Datenbankadministratoren (DBAs) und Infrastrukturmanagern.

 

Wie die Vorteile von NoSQL Backups erschweren

Herkömmliche inkrementelle Backup-Methoden sind für NoSQL-Datenbanken nicht effektiv. Dafür gibt es eine Reihe von Gründen, darunter die verteilte, skalierte Natur der meisten NoSQL-Datenbankinstanzen. Dabei werden Daten an verschiedenen Stellen gespeichert, wobei sich die Daten oft in einem Teil der Datenbank wesentlich schneller ändern als in einem anderen. 

Eine typische NoSQL-Instanz, die eine Anwendung unterstützt, hat einen sehr großen Datensatz mit einer hohen Änderungsrate. Regelmäßige Snapshots reichen in der Regel nicht aus, um alles zu erfassen, was für ein zuverlässiges RTO (Recovery Time Objective) erforderlich ist. Und wenn Daten beschädigt sind, stellt der Snapshot die beschädigten Daten wieder her. Integrierte Replikationsfunktionen helfen hier auch nicht. Sie replizieren möglicherweise einfach beschädigte Daten. 

Das andere große Problem bei der Sicherung von NoSQL-Datenbanken besteht darin, dass sie das Prinzip der Atomarität, Konsistenz, Isolierung und Beständigkeit (ACID) nicht einhalten. Das ACID-Transaktionsmodell, das Standard für SQL-Datenbanken ist, stellt die Integrität der Datenbank sicher, indem es dafür sorgt, dass jede Änderung in einem Teil der Datenbank in der gesamten Datenbank konsistent und beständig ist. 

Wenn beispielsweise in einer ACID-konformen Datenbank zwei Benutzer versuchen, Operationen durchzuführen, die dieselben Daten betreffen – wenn sie etwa beide versuchen, ein einziges Exemplar eines Buches zu kaufen – isoliert die Datenbank die Transaktionen, sodass sie nacheinander stattfinden. Nur eine Person erhält das eine Exemplar des Buches. Der anderen Person wird mitgeteilt, dass das Buch nicht vorrätig ist. Ohne ACID könnten beide Personen dasselbe Buch kaufen und die Datenbank hätte keine Möglichkeit, die Inkonsistenz zu beheben. 

Herkömmliche Backup-Lösungen sind für das ACID-Transaktionsmodell ausgelegt. Daher können sie kein zeitpunktgenaues Backup einer NoSQL-Datenbank erstellen. Eine weitere Komplikation ergibt sich aus der Tatsache, dass viele moderne Anwendungen, die auf NoSQL laufen, immer einsatzbereit sind. Die Datenbank kann nicht für ein Backup „stillgelegt“ werden. Die meisten NoSQL-Datenbanken verwenden einen Ansatz der „letztendlichen Konsistenz“ anstelle von ACID. Dadurch ist die Datenbank schneller und einfacher zu skalieren, aber es erfordert viel Zeit und viele Reparaturen, sie im Falle eines Ausfalls wiederherzustellen. Das ist nicht gut für RTOs.

 

 

Neue Backup-Ansätze, die den Anforderungen von NoSQL-basierten Anwendungen entsprechen

Eine NoSQL-Datenbank kann gesichert werden.. Lösungen wie beispielsweise Rubrik Mosaic liefern mit einem richtliniengesteuerten Ansatz App-konsistente Backups für NoSQL-Datenbanken. Mosaic streamt Daten von NoSQL-Datenbankclustern parallel, sodass die Backups überall gespeichert werden können, in Public Cloud-Infrastrukturen, Private Clouds oder Network Attached Storage (NAS). Dieser Ansatz ermöglicht ein unbegrenztes inkrementelles Backup, ohne dass die NoSQL-Datenbank und die von ihr unterstützte Anwendung stillgelegt werden müssen. Der Schutz ist granular, sodass Backup und Wiederherstellung auf Ebene der gesamten Datenbank oder einzelner Tabellen erfolgen können.

Erfahren Sie mehr darüber, wie Rubrik Ihnen helfen kann, mit Rubrik Mosaic Anwendungen zu schützen, die auf NoSQL-Datenbanken ausgeführt werden.