Begriffsklärung: Replikation

Werbung
Replikation in
Datenbanken
Ronny Dathe, 05 IN-D, Matrikel 38630
Inhalt
Inhalt........................................................................................................................................... 2
Begriffsklärung: Replikation ...................................................................................................... 3
Allgemeine Definition: ........................................................................................................... 3
Definition nach Oracle: .......................................................................................................... 3
Nutzung von Replikation in Datenbanken ................................................................................. 3
Anwendungsbeispiele................................................................................................................. 4
Beispiel 1: Geografisch verteilte Datenbank .......................................................................... 4
Beispiel 2: Webapplikation in einem Rechenzentrum ........................................................... 5
Klassifizierung der Replikationsarten ........................................................................................ 6
Synchron (oder Aktiv) ............................................................................................................ 6
Asynchron (oder Passiv) ........................................................................................................ 6
Asynchrone Replikations Architekturen .................................................................................... 6
Master – Slave Replikation .................................................................................................... 6
Multi Master ........................................................................................................................... 6
Replikationskonflikte ................................................................................................................. 7
Datenkonflikte ........................................................................................................................ 7
Update Konflikt .................................................................................................................. 7
Einmaligkeitskonflikt ......................................................................................................... 7
Löschkonflikt ..................................................................................................................... 7
Transaction Ordering Konflikte ............................................................................................. 7
Auflösung von Replikationskonflikten .................................................................................. 8
Auflösungsmethoden für Uniqueness Konflikte ................................................................ 8
Auflösungsmethoden für Löschkonflikte ........................................................................... 8
Auflösungsmethoden für Update Daten-Konflikte ............................................................ 9
Replizierbare Objektklassen in Oracle 10g .............................................................................. 10
Replikationshierarchie .............................................................................................................. 10
Replikation Object............................................................................................................ 10
Replikation Group ............................................................................................................ 10
Replication Site ................................................................................................................ 10
Betriebsarten der Replikation in Oracle 10g ............................................................................ 11
Multimaster Replication ....................................................................................................... 11
Materialized View Replication............................................................................................. 12
Hybrid – Konfigurationen .................................................................................................... 13
Replikationswerkzeuge in Oracle 10g ...................................................................................... 14
Replication Management Tool ......................................................................................... 14
Replication Management API .......................................................................................... 14
Zusammenfassung .................................................................................................................... 15
Vorteile von Replikationssystemen .................................................................................. 15
Nachteile von Replikationssystemen ............................................................................... 15
Quellenverzeichnis ................................................................................................................... 16
Begriffsklärung: Replikation
Allgemeine Definition:
Replikation ist der Prozess Informationen konsistent zwischen redundanten Quellen zu
teilen.
Definition nach Oracle:
Replikation ist der Prozess, Datenbankobjekte zwischen multiplen Datenbanken,
welche ein verteiltes Datenbanksystem bilden, zu kopieren und zu verwalten.
Nutzung von Replikation in Datenbanken
Replikation in Datenbanken kann zu Unterschiedlichen Zwecken eingesetzt werden.
Durch Replikation lässt sich die Ausfallsicherheit und die Verfügbarkeit des Gesamtsystems
steigern. Des Weiteren wird die Performanz des Gesamtsystems erhöht.
Ebenso schützt Replikation durch aktive Backups vor vollständigem Datenverlust durch
physische Zerstörung.
Darüber hinaus kann Replikation zur Reduktion von Kosten, vor allem des Internet Traffic,
eingesetzt werden, in dem in unterschiedlichen Standorten eigene Replikationsserver
eingesetzt werden, welche mit hoher Bandbreite angebunden sind.
Zu guter Letzt ist Replikation auch eine bequeme Möglichkeit die Datensätze eines
Datenbankservers komplett auf ein oder mehrere Systeme zu duplizieren.
Die verschiedenen Einsatzzwecke sollen in den folgenden zwei Anwendungsbeispielen näher
erläutert werden.
Anwendungsbeispiele
Beispiel 1: Geografisch verteilte Datenbank
Eine Weltweit operierende Firma mit Standorten über alle Kontinent verteilt kann sich der
Replikation ihres Datenbanksystems zu bedienen um unabhängige Standorte mit eigenen,
lokalen Datenbankservern zu versorgen.
Bei der Initialisierung dieses Vorgangs kann mittels Massen Datenverteilung von der
zentralen Datenbank ein global verteiltes Datenbanksystem geschaffen werden in dem die
Mitarbeiter einzelner Standorte Anfragen nur noch über ihren lokalen Server über das LAN
ausführen.
Dadurch wird ein kostengünstiger lokaler Zugriff durch Clients erreicht und Internettraffic
vermieden.
Nur der lokale Server selbst muss mit dem zentralen Datenbankserver kommunizieren.
Des Weiteren tritt automatisch der Effekt einer globalen Lastverteilung der Anfragen ein, da
nicht mehr jeder Client weltweit auf dem zentralen Server arbeitet.
Beispiel 2: Webapplikation in einem Rechenzentrum
Clients
Load Balancer
Webserver
Load Balancer
Datenbankserver
In einem Rechenzentrum wird für eine sehr Lastintensive Webapplikation mehrstufiges Load
Balancing eingerichtet.
Eingehende Sitzungen werden auf mehrere Webserver verteilt, die ihrerseits ihre Anfragen
balanciert auf ein Repliziertes Datenbanksystem verteilen.
Diese Strukturierung bietet eine sehr hohe Verfügbarkeit und hohe Ausfallsicherheit, gepaart
mir optimale Lastverteilung und sehr guter Skalierbarkeit.
Klassifizierung der Replikationsarten
Synchron (oder Aktiv)
Im Synchronen betrieb wird eine Anfrage wird auf allen Replikationssystemen verarbeitet.
Ein Schreibvorgang ist nur dann gültig, wenn er auf allen Replikationssystemen erfolgreich
ausgeführt wurde. Diese Methode stellt zwar sicher, dass die Daten stets synchron sind,
jedoch multipliziert sich die Fehleranfälligkeit der Einzelsysteme für das Gesamtsystem auf.
Asynchron (oder Passiv)
Eine Anfrage wird auf einem System verarbeitet und später synchronisiert. Dies erlaubt
Latenzen zwischen den Synchronisierungen, lässt jedoch Konflikte zu, welche später erkannt
und aufgelöst werden müssen.
Asynchrone Replikationsysteme sind nicht echtzeitfähig und können unter Anderem nicht für
Anwendungen wie z.B. Platzreservierungen eingesetzt werden, da die Konfliktauflösung ein
zurückrollen des Geschäftsprozesses bedeuten würde.
Asynchrone Replikations Architekturen
Master – Slave Replikation
Ein Master verarbeitet alle schreibenden Anfragen und synchronisiert seine Daten auf die
Slave Systeme.
Die Slave Systeme erhalten nur materialisierte Sichten und erlauben lediglich Schreibzugriff.
Aufgrund der Tatsache, das alle Schreibenden Anfragen an den Master gesendet werden
müssen, wird keine Konfliktauflösung benötigt, da keine Konflikte durch die Replikation
entstehen können.
Es kann lediglich vorkommen das Clients von den Slave-Systemen Alte, noch nicht replizierte
Daten lesen.
Multi Master
Jedes Master System verarbeitet Anfragen individuell und synchronisiert den neuen Zustand
hinterher mit den anderen Master Systemen.
Multi Master Systeme benötigt eine Art verteiltes Concurrency Control System um
Anomalien zu vermeiden und Konflikte Aufzulösen
Replikationskonflikte
Replikationskonflikte entstehen wenn auf verschiedenen Mastern nahezu zeitgleich
Transaktionen mit denselben oder ähnlichen Zieldatensätzen ausgeführt werden
Datenkonflikte
Update Konflikt
Update Konflikte entstehen wenn zwei zeitnahe, unabhängige Operationen auf zwei
unterschiedlichen Master Systemen auf demselben Datensatz stattfinden.
Einmaligkeitskonflikt
Einmaligkeitskonflikte entstehen, wenn auf zwei Master Systemen Zeitnah Operationen
erfolgen die einen neuen (von den Daten ähnlichen) Datensatz anlegen und dadurch im
Gesamtsystem die Einmaligkeit, definiert durch einen Primärschlüssel oder ein Unique
Constraint, verletzen.
Löschkonflikt
Der Löschkonflikt ist eine Sonderform des Update Konflikts. Wird auf zwei Mastern zeitnah
versucht denselben Datensatz zu löschen so wird das System, welches die Anfrage zuerst
erhält dieses Update propagieren. Auf dem zweiten Master System kann, abhängig von der
Reihenfolge des Empfangs, die Löschoperation oder das Replication Update nicht ausgeführt
werden, da der Datensatz nicht mehr existiert.
Transaction Ordering Konflikte
Transaction Ordering Konflikte entstehen nur wenn mehr als 2 Multimaster Sites vorhanden
sind in einem Gesamtsystem vorhanden sind. Ist die Kommunikation zu einem Master so wird
die Kommunikation zwischen den verbleibenden aktiven Mastersystemen fortgeführt.
Nachdem die gestörte Kommunikation wiederhergestellt worden ist, wird der
Replikationsvorgang auf den wieder erreichbaren Master fortgesetzt, wobei die übrigen
Master Systeme ihre Updates unabhängig voneinander versenden.
Somit ist die zeitliche Reihenfolge des Eintreffens der Updates nicht gewährleistet.
Hierdurch können Konflikte in Daten und der referentiellen Integrität entstehen.
Auflösung von Replikationskonflikten
Die Erkennung von Konflikten in Replikationssystemen erfolgt automatisch durch die Master
Sites.
Spalten können eindeutigen Gruppen zugeordnet werden, denen wiederum eine spezifische
Konfliktauflösungsmethode zugeordnet wird.
Nicht zugeordnete Gruppen sind per default der Shadow Column Group zugeordnet.
Auflösungsmethoden für Uniqueness Konflikte
Append Site Name
 Der globale Sitename wird an den Wert der Konfliktspalte angehängt
 Nur für Alphanumerische Werte
 Bereinigt den Konflikt technisch, Konfliktauflösung von Hand
Append Sequence
 Eine generierte Zahlenfolge wird an den Wert der Konfliktspalte angehängt
 Nur für Alphanumerische Werte
 Bereinigt den Konflikt technisch, Konfliktauflösung von Hand
Discard
 Das Replikationsupdate wird bei Konflikten ignoriert, lokale Datenbevorzugt
Auflösungsmethoden für Löschkonflikte
Oracle bietet keine Auflösungsmethoden für Lösch Konflikte.
Die Auflösung solcher Konflikte ist, da die Entsprechenden Datensätze bereits gelöscht
worden sind auch nicht notwendig.
Auflösungsmethoden für Update Daten-Konflikte
Overwrite
 Das letzte Replikationsupdate überschreibt existierende Daten
 Methode konvergiert in Multimaster Systemen nicht
Discard
 Das Replikationsupdate wird bei Konflikten ignoriert, lokale Datenbevorzugt
 Methode konvergiert in Multimaster Systemen nicht
Latest Timestamp
 Die Anfrage mit dem jüngsten Zeitstempel wird ausgeführt
 Methode konvergiert in Multimaster Systemen
Earliest Timestamp
 Die Anfrage mit dem ältesten Zeitstempel wird ausgeführt
 Methode konvergiert in Multimaster Systemen nicht
Minimum
 Der numerisch kleinste Wert wird verwendet
 Methode konvergiert in Multimaster Systemen, falls Daten stets immer kleiner werden
Maximum
 Der numerisch größte Wert wird verwendet
 Methode konvergiert in Multimaster Systemen, falls Daten stets immer größer werden
Additive
 Numerische Konfliktdatensätze werden addiert
 Methode konvergiert in Multimaster Systemen, falls sich die Daten aufsummieren
Average
 Der numerische Durchschnitt der Konfliktwerte wird verwendet.
 Methode konvergiert in Multimaster Systemen nicht
Priority Group
 Werte einer Spalte sind vordefiniert und mit Prioritäten versehen
 Im Konfliktfall wird der Wert mit der höchsten Priorität verwendet
 Methode konvergiert in Multimaster Systemen mit geordneten Update Werten
Site Priority
 Die Daten von einer festgelegten priorisierten Site werden bei Konflikten verwendet
 Methode konvergiert in Multimaster Systemen nicht
Replizierbare Objektklassen in Oracle 10g
Die in Oracle 10g replizierbaren Objekte sind:










Tabellen
Indexe
Views and Object Views
Packages und Package Bodies
Prozeduren und Funktionen
Nutzer-Definierte Typen und Type Bodies
Trigger
Synonyme
Indextypen
Nutzer-Definierte Operatoren
Replikationshierarchie
Replikation Object
Ein Replikation Object ist das unterste Element der Hierarchie und kann eines der oben
genannten Objekte darstellen.
Replikation Group
Eine Replication Group fasst mehrere beliebige Replikation Objects zusammen.
Replikation Groups dienen als logische Einheit um zusammengehörige Elemente sinnvoll zu
Replikationstasks zu gruppieren.
Jede Replication Group kann in multiplen Replication Sites vorhanden sein.
Replication Site
Die Replication Site repräsentiert den Standort / Server. Eine Replication Site verwqaltet
mehrere Replication Groups.
Für jede Replication Group kann sich die Site entweder Master Site oder als Materialized
View verhalten. Beides gleichzeitig hingegen ist ausgeschlossen.
Betriebsarten der Replikation in Oracle 10g
Multimaster Replication
In der reinen Multimaster Replication in Oracle teilen sich 2 oder mehr Server dieselbe
Replication Group als Master.
Anfragen aller Art entsprechend können auf allen Systemen ausgeführt werden, jedoch
müssen Konflikte zwischen den Mastern erkannt und aufgelöste werden.
Materialized View Replication
Die Materialized View Replication in Oracle entspricht der Master Slave Replikation.
Hierbei sind einem Master ein oder mehrere Slave - Server bzw. Materialized View Sites
zugeordnet.
Die Materiealized View Sites werden durch den Master aktuell gehalten.
Clients können ihre Leseanfragen günstig über den lokalen Slave Server ausführen, müssen
jedoch für schreibende Anfragen eine Verbindung zur Master Datenbank herstellen.
Hybrid – Konfigurationen
In Hybriden Konfigurationen gibt es sowohl mehrere Master Sites als auch Materialized View
Sites auf verschiedenen physischen Servern.
Hierbei kann ein und der Selbe Server für unterschiedliche Replikation Groups verschiedenen
Rollen einnehmen.
Durch diese differenzierte Aufteilung, ist es nach der Erstellung eines Lastprofils möglich,
Tabellen mit stark überwiegenden Leseanfragen als Gruppe zusammenzufassen und als
Materialized View Replication aufgesetzt werden, während die wenigen Tabellen welchen
vermehrt Schreibzugriff erfahren, im Multimaster Modus gruppiert werden können.
Replikationswerkzeuge in Oracle 10g
Replication Management Tool
Das Replication Management Tool ist eingebettet in der Oracle Enterprise Manager Console
Sie besitzt ein grafisches Frontend mit Wizard und greift ihrerseits auf die Replication
Management API zu.
Replication Management API
Die Replication Management API stellt eine Programmierschnittstelle in PL/SQL bereit, über
welche einzelnen Replikationsfunktionen direkt aufgerufen werden können. Diese Varriante
eignet sich besonders zur engen Verzahnung der Replikation mit eigenen Applikationen.
Zusammenfassung
Vorteile von Replikationssystemen
Die Vorteile eines Replikationssystems sind vielfältig.
Zum einen wird eine erhöhten Verfügbarkeit und Ausfallsicherheit erreicht, zum anderen
dienen Replikationsysteme gleichzeitig als aktives Backup und reduzieren die
Wahrscheinlichkeit von komplettem Datenverlust.
Durch Replikation kann die Performanz des Gesamtsystems durch Parallelität der
Lastverteilung über jene Grenzen hinaus steigern, denen Einzelsysteme unterliegen und dabei
kostengünster sein als Einzelsysteme gleicher Performanz.
Weiterhin können Replikationsysteme zur Verringerung des Internet Traffic und somit zur
Kosteneinsparung genutzt werden.
Die geschieht, in dem den Clients unterschiedlicher Standorte jeweils ein lokales
Replikationsystem mit schneller Andbindung zur Verfügung gestellt wird.
Über diese Methode ist auch Offline Computing auf read-only Daten möglich während die
Verbindung zum zentralen Datenbankserver gestört ist.
Nachteile von Replikationssystemen
Die Nachteile eines Replikationssystems liegen in den zusätzlich aufzuwendenden
Hardwarekosten.
Weiterhin steigen bei Replizierten Systemen die Anforderungen an die Zuverlässigkeit der
Netzwerkanbindung welches ebenfalls erhöhte Kosten zur Gewährleisung dieser verursachen
kann.
Darüber hinaus fällt zusätzlicher Aufwand für Synchronisierung und Konfliktauflösung der
einzelnen Systeme an und der Administrationsaufwand erhöht sich.
Quellenverzeichnis
Diese Ausarbeitung entstand unter Nutzung der folgenden Informationsquellen:

http://download.oracle.com/docs/cd/B14117_01/server.101/b10733/toc.htm

http://download.oracle.com/docs/cd/B14117_01/server.101/b10732/repoverv.htm#197
15

http://download.oracle.com/docs/cd/B14117_01/server.101/b10732/repconfl.htm#223
36

http://en.wikipedia.org/wiki/Replication_%28computer_science%29

http://de.wikipedia.org/wiki/Replikation_%28Datenverarbeitung%29
Herunterladen