Das Ziel dieser Arbeit ist es Vorteile des neuen Features Oracle Sharding zu erarbeiten und diese in einer Entscheidungsmatrix zusammenzufassen. Mithilfe der Matrix soll es möglich sein, Einsatzmöglichkeiten des Oracle Shardings abzuleiten. Dabei wird im Besonderen Wert auf das Erstellen einer Sharding Umgebung und dem Vergleich mit gleichartigen Technologien gelegt. Das Feature wird ganzheitlich analysiert im Bezug auf seine Vorteile gegenüber anderen Technologien.
Diese Arbeit richtet sich an Entscheider, welche sich mit möglichen Technologien zur Skalierung von Datenbanken auseinander setzen, als auch an Datenbankadministratoren, die eine Sharding Umgebung umsetzen.
Inhaltsverzeichnis
1 Einleitung
1.1 Motivation und Ziele der Arbeit
1.2 Abgrenzung
1.3 Aufbau und Struktur der Arbeit
2 Grundlagen
2.1 Online Transaction Processing (OLTP)
2.2 Konsistenzkonzepte
2.2.1 CAP-Theorem
2.2.2 BASE
2.2.3 ACID
2.3 NoSQL
2.3.1 Cassandra
2.3.2 MongoDB
2.4 Oracle DB Grundlagen
2.4.1 Oracle Global Data Services
2.4.2 Connection Pools
2.5 Sharding
2.5.1 Definition Sharding
2.5.2 Definition Skalierbarkeit
2.5.3 Architektur Oracle Sharding
2.5.4 Oracle Sharding Datenmodell und Applikationsanforderungen
2.5.5 Lizenzen
2.6 Oracle Real Application Cluster (RAC)
2.6.1 Architektur
3 Oracle Sharding
3.1 Vorbereitung
3.1.1 Vorbereitung der Applikation
3.1.2 Vorbereitung Hardware/Deployment
3.2 Aufbau einer Sharding Umgebung
3.2.1 Installation/Einrichtung
3.2.2 Erstellen der Sharded Database (SDB)
3.2.3 Erstellen des Schemas der SDB
3.3 Vergleich mit RAC unter verschiedenen Kriterien
3.3.1 Evaluieren der Kriterien
3.3.2 Architektur
3.3.3 Kompatibilität
3.3.4 Hochverfügbarkeit
3.3.5 Skalierbarkeit
3.3.6 Datenverteilung
3.3.7 Total Cost of Ownership
3.3.8 CAP-Theorem
3.3.9 Fazit
3.4 Vergleich mit NoSQL unter verschiedenen Kriterien
3.4.1 Evaluieren der Kriterien
3.4.2 Architektur
3.4.3 Skalierbarkeit
3.4.4 ACID
3.4.5 Relationale Abfragen/SQLs
3.4.6 Replikation/Hochverfügbarkeit
3.4.7 CAP-Theorem
3.4.8 Total Cost of Ownership
3.5 Entscheidungsmatrix
4 Schlussbetrachtung
4.1 Zusammenfassung
4.2 Fazit
4.3 Ausblick
Zielsetzung & Themen
Diese Arbeit analysiert das Konzept und die Einsatzmöglichkeiten von Oracle Sharding zur horizontalen Skalierung relationaler Datenbanken im OLTP-Umfeld. Ziel ist es, die Vorteile des Features zu erarbeiten, eine Sharding-Umgebung exemplarisch aufzubauen und die Technologie in einer Entscheidungsmatrix mit dem Oracle Real Application Cluster (RAC) sowie den NoSQL-Lösungen Cassandra und MongoDB zu vergleichen.
- Analyse der Architektur von Oracle Sharding und Abgrenzung zu RAC und NoSQL
- Vorbereitung und praktischer Aufbau einer Sharded Database (SDB)
- Vergleich von Hochverfügbarkeit, Skalierbarkeit und ACID-Eigenschaften
- Betrachtung des CAP-Theorems und wirtschaftlicher Aspekte (TCO)
- Entwicklung einer Entscheidungsmatrix für Einsatzszenarien
Auszug aus dem Buch
2.5.1 Definition Sharding
Sharding ist eine Methode der Datenbankpartitionierung. Dabei werden die Daten horizontal partitioniert auf mehrere Server. Das bedeutet jeder Server hat seinen eigenen Teil der Daten. Die Partition wird Shard genannt. Ein Shard ist also eine unabhängige Datenbank, welche auf einem Datenbank Server gehostet ist. Die Datenbank hat dementsprechend ihre eigenen Ressourcen (CPU, Speicher, etc.). Sie ist Teil eines Verbunds bzw. einer Sammlung von mehreren Datenbanken, die zusammen eine logische Datenbank darstellen. Durch das Aufteilen der Daten auf verschiedene Server wird die Last reduziert. Zudem wird der Single-Point-of-Failure (der einzelne Server mit allen Daten) eliminiert. Dabei ist das Schema der Shards immer das Gleiche, nur der Datenbestand ist unterschiedlich. Jedoch gibt es ebenfalls Szenarien, bei denen redundante Daten auf den Shards vorhanden sind. Das ist der Fall, wenn es bestimmte Daten/Datensätze gibt, die oft benötigt werden. Für diese Daten/Datensätze ist es sinnvoll sie redundant zu halten. Eine Abfrage eines weiteren Shards ist deutlich „kostenintensiver“, als minimal mehr Speicherplatzverbrauch. Die Vorteile des Shardings sind:
Hochverfügbarkeit: Das Eliminieren des Single-Point-of-Failure (SPOF) ermöglicht es Anfragen an alle Shards zu stellen, unabhängig davon ob ein anderer Shard ausgefallen ist
Verkürzung der Antwortzeiten: Durch das Aufteilen der Last auf mehrere Maschinen und das Aufteilen der Daten wird die Antwortzeit deutlich herabgesetzt
Erhöhte Write-Leistung: Das Aufteilen ermöglicht es Änderungen parallel auf jedem einzelnen Shard durchzuführen
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel motiviert die Arbeit, definiert das Ziel der Analyse von Oracle Sharding und grenzt den Themenbereich von anderen Technologien und Drittanbietern ab.
2 Grundlagen: Hier werden zentrale theoretische Konzepte wie OLTP, das CAP-Theorem, ACID-Eigenschaften, NoSQL-Datenbanken, sowie die spezifischen Oracle-Technologien RAC und Sharding erläutert.
3 Oracle Sharding: Dieser Hauptteil beschreibt die Vorbereitung, den technischen Aufbau einer Sharding-Umgebung und führt einen detaillierten Vergleich zu Oracle RAC sowie NoSQL-Datenbanken durch.
4 Schlussbetrachtung: Das Abschlusskapitel fasst die Ergebnisse der Arbeit zusammen, zieht ein Fazit über die Eignung von Oracle Sharding und gibt einen Ausblick auf die zukünftige Entwicklung.
Schlüsselwörter
Oracle Sharding, horizontale Skalierung, OLTP, Oracle RAC, NoSQL, Cassandra, MongoDB, Datenbankpartitionierung, Shard Catalog, Global Data Services, ACID, CAP-Theorem, Hochverfügbarkeit, Lastverteilung, Datenbankadministration
Häufig gestellte Fragen
Worum geht es in der Arbeit grundlegend?
Die Arbeit untersucht das Oracle-Feature „Sharding“ zur horizontalen Skalierung relationaler Datenbanken und analysiert dessen Potenzial und Einsatzszenarien im Vergleich zu anderen Technologien.
Was sind die zentralen Themenfelder?
Die zentralen Themen sind die Architektur verteilter Datenbanksysteme, die Implementierung von Sharding, der Vergleich mit Oracle RAC sowie der Abgleich mit NoSQL-Konzepten wie Cassandra und MongoDB.
Was ist das primäre Ziel der Arbeit?
Das Hauptziel ist die Erstellung einer Entscheidungsmatrix, die Entscheidern und Datenbankadministratoren hilft, die Einsatzmöglichkeiten von Oracle Sharding fundiert zu beurteilen.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit nutzt eine literaturbasierte Analyse und einen technischen Vergleich der Datenbankarchitekturen, ergänzt durch eine praktische Dokumentation des Aufbaus einer Sharding-Umgebung.
Was wird im Hauptteil behandelt?
Der Hauptteil befasst sich detailliert mit den Anforderungen an Applikationen und Hardware, der Schritt-für-Schritt-Installation und Konfiguration einer Sharded Database sowie einem umfassenden technologischen Vergleich.
Welche Schlüsselwörter charakterisieren die Arbeit?
Wichtige Begriffe sind Oracle Sharding, Skalierbarkeit, Hochverfügbarkeit, ACID, OLTP und der Vergleich zwischen relationalen und NoSQL-Datenbanken.
Warum ist das CAP-Theorem für diese Arbeit relevant?
Das CAP-Theorem dient als theoretischer Rahmen, um die Kompromisse zwischen Konsistenz, Verfügbarkeit und Partitionstoleranz bei den untersuchten verteilten Datenbanken einzuordnen.
Wie unterscheidet sich Oracle Sharding von Oracle RAC?
Während Oracle RAC auf einem Shared-Everything-Ansatz basiert, nutzt Oracle Sharding eine Shared-Nothing-Architektur, bei der die Datenbank horizontal in unabhängige, partitionierte Shards aufgeteilt wird.
- Quote paper
- Sven Falkenrich (Author), 2018, Analyse und Einsatzmöglichkeiten horizontaler Partitionierung in Oracle Datenbanken, Munich, GRIN Verlag, https://www.grin.com/document/462391