-
HINTERGRUND
-
Die vorliegende Erfindung betrifft das Gebiet digitaler Computersysteme und insbesondere ein Verfahren zur Datensynchronisation in einem Datenanalysesystem.
-
Bei einer Replikation handelt es sich um einen Prozess, bei dem ein definierter Satz von Daten an mehr als einer Speicherposition aufbewahrt wird. Er kann ein Kopieren bestimmter Änderungen von einer Quellposition in eine Zielposition und ein Synchronisieren der Daten an beiden Positionen umfassen. Die Quelle und das Ziel können sich auf logischen Servern befinden, die sich auf demselben Rechner oder auf verschiedenen Rechnern in einem verteilten Netzwerk befinden. Es gibt mehrere Systeme zum Übertragen von Daten von einem System an ein anderes. Diese Systeme müssen jedoch möglicherweise weiter verbessert werden.
-
KURZDARSTELLUNG
-
Verschiedene Ausführungsformen stellen ein Verfahren zur Datensynchronisation in einem Datenanalysesystem, ein Computersystem und ein Computerprogrammprodukt bereit, wie es durch den Gegenstand der unabhängigen Ansprüche beschrieben wird. Vorteilhafte Ausführungsformen sind in den abhängigen Ansprüchen beschrieben. Ausführungsformen der vorliegenden Offenbarung können frei miteinander kombiniert werden, wenn sie sich nicht gegenseitig ausschließen.
-
Unter einem Aspekt wird ein durch einen Computer implementiertes Verfahren zur Datensynchronisation in einem Datenanalysesystem bereitgestellt. Das Verfahren weist ein Empfangen von mindestens einem Protokollsatz auf, wobei der Protokollsatz einen Vorgang beschreibt, der in einem Quelldatenbanksystem des Datenanalysesystems ausgeführt wird; ein Ermitteln eines Typs eines im Quelldatenbanksystem ausgeführten Vorgangs auf der Grundlage des Protokollsatzes; und ein Auswählen einer Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien auf der Grundlage des Typs von Vorgang, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um in dem mindestens einen Protokollsatz beschriebene Änderungen auf ein Zieldatenbanksystem des Datenanalysesystems anzuwenden.
-
Figurenliste
-
In Folgenden werden Ausführungsformen der Erfindung lediglich beispielhaft unter Bezugnahme auf die Zeichnungen ausführlicher beschrieben, in denen:
- 1 ein Blockschaubild eines Datenverarbeitungssystems gemäß einem Beispiel des vorliegenden Gegenstands ist.
- 2 ein Ablaufplan eines Verfahrens zum Ermöglichen eines Anwendens von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands ist.
- 3 ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands ist.
- 4 ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands ist.
- 5 eine Ausführungsform eines beispielhaften Computersystems darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung dienen der Veranschaulichung, sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Änderungen werden für Fachleute offensichtlich sein, ohne vom Schutzumfang und Gedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
-
Der vorliegende Gegenstand kann eine optimale Nutzung mehrerer Aktualisierungsstrategien ermöglichen. Dies kann ein Einsparen von Verarbeitungs-Ressourcen ermöglichen, da die Auswahl der Aktualisierungsstrategie auf der Leistungsfähigkeit einer Ressourcen-Nutzung beruhen kann. Die verschiedenen Aktualisierungsstrategien können je nach dem Kontext des Datenanalysesystems bereitgestellt werden. Beispielsweise kann eine Replikations-Software/Technologie zum inkrementellen Aktualisieren des Datenanalysesystems aus Gründen der Leistungsfähigkeit oder wegen eines Auslaufens der Code-Wartung für die Software auf eine völlig neue Technologie aufgerüstet werden. Dies kann zu mehreren Aktualisierungsstrategien führen, nämlich der ersten Replikations-Software zum inkrementellen Aktualisieren und einer zweiten Replikations-Software zum inkrementellen Aktualisieren, bei der es sich um eine Aufrüstung der ersten Software zum inkrementellen Aktualisieren handelt. Die erste Technologie kann jedoch ausgereift und erprobt sein, während die neue Technologie Unzulänglichkeiten bei unterstützten Datenänderungen aufweisen kann, die repliziert werden können. Der vorliegende Gegenstand kann Stabilität gewährleisten, wobei die Technologieumstellung in einem kontinuierlichen Liefermodell schrittweise erfolgt, indem eine der ersetzten und neuen Technologien ausgewählt wird. Außerdem können laufzeitspezifische Fehler auftreten, die kundenspezifische Systemkonfigurationen betreffen. Solche Bedingungen, die zu einem Ausfall der Replikationseinrichtung führen und manuelle Wartungsfenster zur Behebung erfordern würden, können vom Replikationssystem selbst bewältigt werden, ohne dass manuelle Eingriffe oder Kenntnisse über versionsspezifische Unzulänglichkeiten beim Einrichten des Replikationssystems erforderlich sind, indem entweder das erste oder das zweite Technologie-Paket gewählt wird.
-
Bei dem Datenanalysesystem kann es sich zum Beispiel um ein Data-Warehousing-System oder ein System zur Verwaltung von Stammdaten handeln. Das Datenanalysesystem kann Data Warehousing oder eine Stammdatenverwaltung oder eine andere Technik ermöglichen, die ein Quell- und ein Zieldatenbanksystem verwendet, wobei das Zieldatenbanksystem eine Zieldatenbank aufweist, die so konfiguriert ist, dass sie eine Kopie eines Inhalts einer entsprechenden Quelldatenbank des Quelldatenbanksystems empfängt/aufweist. Das Quelldatenbanksystem kann über eine Verbindung mit dem Zieldatenbanksystem verbunden sein. Bei der Verbindung kann es sich beispielsweise um eine TCP/IP-Verbindung oder eine andere Verbindung handeln, die den Austausch von Daten über die Verbindung zwischen dem Quelldatenbanksystem und dem Zieldatenbanksystem ermöglicht. Bei dem Quelldatenbanksystem kann es sich beispielsweise um eine Transaktionseinrichtung und bei dem Zieldatenbanksystem um eine analytische Einrichtung handeln. Beispielsweise kann es sich bei dem Quelldatenbanksystem um ein Online-Transaktionsverarbeitungssystem (online transaction processing, OLTP) und bei dem Zieldatenbanksystem um ein System zur analytischen Online-Verarbeitung (online analytical processing, OLAP) handeln. Das Quelldatenbanksystem kann einen Quelldatensatz und das Zieldatenbanksystem kann einen Zieldatensatz aufweisen. Der Quelldatensatz kann Teil einer Quelldatenbank sein, und der Zieldatensatz kann Teil einer Zieldatenbank sein. Die Quell- und Zieldatensätze können in demselben oder einem unterschiedlichen Format gespeichert werden. Die Formate können sich hinsichtlich Verschlüsselung, Komprimierung, zeilenorientierter oder spaltenorientierter Speicherung usw. unterscheiden. Beispielsweise kann der Quelldatensatz in einem zeilenorientierten Format und der Zieldatensatz in einem spaltenorientierten Format gespeichert werden. Mit anderen Worten, der Zieldatensatz kann spaltenweise und nicht zeilenweise gespeichert werden. Der Inhalt des Quelldatensatzes kann durch eine oder mehrere Datenbanktransaktionen geändert werden.
-
Eine Datenbanktransaktion kann sich auf eine Arbeitseinheit beziehen, die in einer Datenbank ausgeführt und unabhängig von anderen Transaktionen in kohärenter und zuverlässiger Weise behandelt wird. Eine Datenbanktransaktion kann im Allgemeinen jede Änderung in einer Datenbank darstellen. Beispielsweise kann eine Datenbanktransaktion in einer Sprache wie SQL, die in eine Transaktion verpackt ist, an das Datenbanksystem ausgegeben werden, wobei ein Muster ähnlich dem folgenden verwendet wird: s1) Starten der Transaktion, s2) Ausführen eines Satzes von Datenvorgängen und/oder Abfragen, s3) Wenn keine Fehler auftreten, Festschreiben und Beenden der Transaktion und s4) Wenn Fehler auftreten, Wiederholen der Transaktion und Beenden. Ein Vorgang des Festschreibens einer Transaktion übernimmt alle Datenbearbeitungen im Rahmen der Transaktion und speichert die Ergebnisse in der Datenbank. Der Verarbeitungsschritt der Datenbanktransaktion kann aus den Schritten s1) und s2) des Musters bestehen, während der Anwendungsschritt das Festschreiben der Transaktion sein kann, um diese zu beenden.
-
Eine Datenbank kann einen oder mehrere Tabellenbereiche und Tabellen mit zugehörigen Indizes haben. Bei dem Tabellenbereich kann es sich um einen Satz von Datenträgern auf Festplatten handeln, die die Datensätze zwischenspeichern, in denen Tabellen tatsächlich gespeichert sind. Jede Tabelle kann in einem Tabellenbereich gespeichert sein. Bei dem Datenvorgang kann es sich um einen Vorgang in der Datenbank handeln, d.h. um einen Vorgang in Bezug auf die Tabellen oder Tabellenbereiche oder Indizes. Die Vorgänge können verschiedenen Kategorien angehören, je nachdem, an welchem Typ von Daten der Datenvorgang ausgeführt wird, z.B. können Vorgänge, die auf der Ebene eines Tabellenbereichs ausgeführt werden, einer ersten Kategorie angehören und Vorgänge, die in an den Tabellen ausgeführt werden, einer zweiten Kategorie. Darüber hinaus kann jede Kategorie von Vorgängen eine oder mehrere Typen von Vorgängen aufweisen. Beispielsweise kann die zweite Kategorie von Vorgängen einen ersten Typ von Vorgängen wie etwa Einfüge-, Lösch- und Aktualisierungsvorgänge der Tabelle und einen zweiten Typ von Vorgängen aufweisen, die die Struktur der Tabelle verändern. Je nach Typ von Vorgängen können unterschiedliche Hilfsprogramme zum Ausführen der Vorgänge verwendet werden. Zum Beispiel können die Datenvorgänge unter Verwenden von SQL-Anweisungen oder Dienstprogrammen wie etwa DB2-Dienstprogrammen ausgeführt werden. Dienstprogramme können für die Vorgänge der ersten Kategorie und SQL-Anweisungen für die Vorgänge der zweiten Kategorie verwendet werden. Dienstprogramme können umfangreiche Vorgänge in einem oder mehreren Tabellenbereichen ausführen. Beispielsweise können Dienstprogramme Tausende oder sogar viele Millionen Zeilen in eine Datenbank laden oder Daten in einem Tabellenbereich neu organisieren. SQL-Anweisungen können zum Beispiel verwendet werden, um regelmäßige Vorgänge wie Einfüge-, Aktualisierungs- und Löschvorgänge auszuführen. Darüber hinaus können die SQL-Anweisungen dazu verwendet werden, die Struktur einer Tabelle zu ändern. Bei dem Typ von Vorgang kann es sich zum Beispiel um REGULÄR (REGULAR) handeln, was einen normalen Ablauf von Einfüge-, Aktualisierungs- und Löschvorgängen anzeigt, STRUKTURELLE_ÄNDERUNG (STRUCTURAL_CHANGE), was eine strukturelle Änderung anzeigt, DIENSTPROGRAMMAKTION_IN_AUSFÜHRUNG (UTILITY_ACTION_IN_EXECUTION), was anzeigt, dass eine Dienstprogrammaktion im Gange ist, oder DIENSTPROGRAMMAKTION_ERLEDIGT (UTILITY_ACTION_DONE), was anzeigt, dass die Dienstprogrammaktion an einer Tabelle beendet ist.
-
Daher ist ein Verwenden der gleichen Aktualisierungsstrategie für die verschiedenen Typen von Vorgängen möglicherweise nicht optimal, da eine Aktualisierungsstrategie möglicherweise nur für bestimmte Typen von Vorgängen, nicht aber für andere geeignet ist. Der vorliegende Gegenstand kann dieses Problem lösen, indem die geeignete Aktualisierungsstrategie auf der Grundlage des Typs von Vorgängen ausgewählt wird. Bei der Aktualisierungsstrategie kann es sich zum Beispiel um eine von vordefinierten Aktualisierungsstrategien handeln. Die vordefinierten Aktualisierungsstrategien können zum Beispiel eine erste Aktualisierungsstrategie unter Verwenden eines Massenladevorgangs (bulk load) und eine zweite Aktualisierungsstrategie unter Verwenden inkrementeller Ladevorgänge aufweisen, so dass die erste Aktualisierungsstrategie als eine auf einem Massenladevorgang beruhende Aktualisierungsstrategie und die zweite Aktualisierungsstrategie als eine auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie bezeichnet werden kann. Die erste und die zweite Aktualisierungsstrategie können jeweils auf unterschiedliche Weise implementiert werden, was zu unterschiedlichen Aktualisierungsstrategien führt. Die auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie kann ein inkrementelles Laden von Änderungen ermöglichen. Bei der auf inkrementellen Ladevorgängen beruhenden Aktualisierungsstrategie können nur Daten aktualisiert werden, die seit der letzten Aktualisierung geändert wurden. Da bei jeder Aktualisierung weniger Datenzeilen kopiert werden können, kann die inkrementelle Replikation effizienter sein als eine Massenreplikation. Bei der auf einem Massenladevorgang beruhenden Strategie können entweder ganze Tabellendaten oder ein Satz von Partitionen einer Tabelle zu einem bestimmten Zeitpunkt geladen werden. In einem Implementierungsbeispiel kann die auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie protokollierte Datenänderungen von EINFÜGEN-, AKTUALISIEREN- und LÖSCHEN-Anweisungen in Bezug auf Tabellen replizieren. In einem anderen Implementierungsbeispiel kann die auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie protokollierte Datenänderungen von EINFÜGEN-, AKTUALISIEREN-, LÖSCHEN- und ÄNDERN-Anweisungen in Bezug auf Tabellen replizieren.
-
Ein Protokollsatz bezieht sich auf Protokollinformationen, die eine Änderung beschreiben, die durch einen oder mehrere Vorgänge einer Datenbanktransaktion bewirkt wurde, die an einem oder mehreren Datensätzen einer Quelltabelle einer Datenbank ausgeführt wurden. Die Protokollinformationen werden beispielsweise so bereitgestellt, dass sie vom Zieldatenbanksystem verwendet werden können, um dieselbe Änderung auf eine Zieltabelle anzuwenden, die der Quelltabelle entspricht, z.B. wenn vor einem Anwenden der Änderung auf die Quelltabelle sowohl die Quell- als auch die Zieltabelle denselben Inhalt haben, können die Protokollinformationen so bereitgestellt werden, dass dieselbe Änderung auf die Zieltabelle angewendet werden kann und die sich ergebende Zieltabelle denselben Inhalt hat wie die durch die Änderung geänderte Quelltabelle. Die Protokollinformationen können zum Beispiel allgemeine Protokollattribute und andere Attribute aufweisen, die von dem Typ der dem Protokollsatz zugehörigen Änderung abhängen. Die allgemeinen Protokollattribute können beispielsweise eine laufende Nummer des Protokollsatzes (log record sequence number, LRSN) aufweisen, bei der es sich um eine eindeutige Kennung für einen Protokollsatz handelt, die die logische Reihenfolge der Änderung angibt, einen Zeitstempel, der die Zeit angibt, zu der der Protokollsatz erstellt wurde, und eine Transaktionskennungs-Nummer, die auf die Datenbanktransaktion verweist, die den Protokollsatz erzeugt. Die anderen Attribute können zum Beispiel für einen Änderungstyp einer Aktualisierung eine Seitenkennung, die die Seitenkennung der geänderten Seite angibt, eine Länge und einen Versatz (offset) der Seite, Vorher- und Nachher-Bilder aufweisen, die den Wert der Bytes der Seite vor und nach den Seitenänderungen umfassen. Die Seite kann einen oder mehrere Datensätze in der Datenbank umfassen. Die Vorher- und Nachher-Bilder können die Werte des einen oder der mehreren Datensätze vor bzw. nach Anwenden der Änderung aufweisen. Jeder Datensatz, auf den der Protokollsatz verweist, kann aus mehreren Attributen bestehen. Der Datensatz kann eindeutig gekennzeichnet sein, z.B. über ein Kennungsattribut, einen Satz von Schlüsselattributen in der entsprechenden Datenbanktabelle usw.
-
Gemäß einer Ausführungsform weist der mindestens eine Protokollsatz eine Folge von Protokollsätzen auf, die eine bestimmte Tabelle des Quelldatenbanksystems betreffen, wobei ein Ermitteln des Typs von Vorgang auf dieser Folge beruht. Wenn die Folge von Vorgängen beispielsweise einen normalen Ablauf von Einfüge-, Aktualisierungs- und Löschvorgängen darstellt, kann der Typ von Vorgang anzeigen, dass es sich um einen normalen Änderungsvorgang handelt, der an der Tabelle ausgeführt wird.
-
Gemäß einer Ausführungsform weist das Verfahren ein Anwenden der in dem mindestens einen Protokollsatz beschriebenen Änderung gemäß der ausgewählten Aktualisierungsstrategie (primäre Aktualisierungsstrategie) auf. Der vorliegende Gegenstand kann ein hybrides System zur Replikation von Datenbankänderungen ermöglichen, das mehrere Replikationsstrategien verwendet, um Daten zwischen einem Quell- und einem Zielsystem zu synchronisieren. Dadurch können die gleichen Daten in verschiedenen Systemen verfügbar gemacht werden. Indem Daten auf mehreren Systemen verfügbar gemacht werden, kann die gemeinsame Nutzung von Daten in großem Umfang zwischen Systemen ermöglicht und die Netzlast auf mehrere Systeme verteilt werden.
-
Gemäß einer Ausführungsform weist das Verfahren ein Erkennen auf, dass ein Anwenden der Änderung fehlgeschlagen ist. Als Reaktion auf das Erkennen kann eine sekundäre Aktualisierungsstrategie ausgewählt werden, und die Änderung kann auf der Grundlage der zweiten Aktualisierungsstrategie angewandt werden. Bei der sekundären Aktualisierungsstrategie kann es sich zum Beispiel um eine Strategie unter Verwenden eines Massenladevorgangs handeln. Diese Ausführungsform kann Verarbeitungs-Ressourcen einsparen, die andernfalls erforderlich wären, um zunächst das Problem der primären Aktualisierungsstrategie zu lösen und sie nach Durchführen der Korrektur erneut zu verwenden.
-
In einem Beispiel kann eine Aktualisierungsstrategie wie etwa die primäre Aktualisierungsstrategie als Standard-Aktualisierungsstrategie des Datenanalysesystems verwendet werden. Beispielsweise kann das Verfahren nach Anwenden der Änderung gemäß der sekundären Aktualisierungsstrategie einen Wechsel zurück zu der Standard-Aktualisierungsstrategie aufweisen.
-
Gemäß einer Ausführungsform umfasst der Typ von Vorgang eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur der Tabelle und/oder eine Aktivitätsmeldung in Bezug auf eine Dienstprogrammaktion, die im Quelldatenbanksystem ausgeführt wird. Bei der Dienstprogrammaktion kann es sich beispielsweise um eine DB2-Dienstprogrammaktion handeln, beispielsweise die folgenden DB2-Vorgänge: LADEN (LOAD), TABELLENBEREICH NEUORGANISIEREN (REORG TABLESPACE), LÖSCHEN AUS TABELLE (DISCARD FROM TABLE) usw. Der Protokollsatz stellt ein Mittel zum Erkennen einer solchen DB2-Dienstprogrammaktion bereit.
-
Gemäß einer Ausführungsform umfasst die Aktualisierungsstrategie einen regulären Vorgang zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen, einen Massenladevorgang des Zieldatenbanksystems mit aus dem Quelldatenbanksystem stammenden Daten und/oder einen Aussetzungsvorgang zum Aussetzen von Modifikationen einer bestimmten Tabelle des Zieldatenbanksystems. Das Aussetzen der Modifikationen der bestimmten Tabelle kann zum Beispiel ausgeführt werden, wenn eine Dienstprogrammaktion ausgeführt wird. Sobald die Dienstprogrammaktion beendet ist, kann die auf einem Massenladevorgang beruhende Aktualisierungsstrategie ausgewählt und angewendet werden.
-
1 ist ein Blockschaubild eines Datenverarbeitungssystems (oder Datenanalysesystems) 100 gemäß einem Beispiel des vorliegenden Gegenstands. Das Datenverarbeitungssystem 100 kann für eine Datensynchronisation zwischen einem Quelldatenbanksystem 101 und einem Zieldatenbanksystem 103 unter Verwenden eines Datensynchronisationssystems 102 gemäß einem Beispiel des vorliegenden Gegenstands konfiguriert sein. Beim Quelldatenbanksystem 101 kann es sich zum Beispiel um ein System zur Online-Transaktionsverarbeitung (OLTP) handeln. Bei dem Zieldatenbanksystem 103 kann es sich beispielsweise um ein System zur analytischen Online-Verarbeitung (OLAP) handeln. Der Datenaustausch zwischen dem Quelldatenbanksystem 101 und dem Zieldatenbanksystem 103 kann zum Beispiel über eine TCP/IP-Kommunikationsschicht ausgeführt werden.
-
Das Quelldatenbanksystem 101 weist eine oder mehrere Quelltabellen 105 einer Quelldatenbank 110 und ein Transaktionswiederherstellungsprotokoll (transaction recovery log) 106 auf. Bei Quelltabellen 105 kann es sich um relationale Tabellen in DB2® für z/OS®, in DB2 für Linux, UNIX und Windows sowie in Oracle handeln. Die Einträge oder Protokollsätze des Transaktionswiederherstellungsprotokolls 106 beschreiben Änderungen an Zeilen der Quelltabellen 105 im Quelldatenbanksystem 101. 1 zeigt ein Beispiel für den Inhalt eines Protokollsatzes 130. Der Protokollsatz 130 kann einen Zeitstempel, eine LRSN und Attributänderungen aufweisen. Insbesondere können die Protokollsätze im Transaktionswiederherstellungsprotokoll 106 beispielsweise Informationen enthalten, die (1) die geänderte Tabelle, (2) den Wert der Schlüsselspalte in der geänderten Zeile, (3) die alten und neuen Werte aller Spalten der geänderten Zeile und (4) die Transaktion (Arbeitseinheit), die die Änderung verursacht, definieren. Eine Einfügung ist definitionsgemäß ein neuer Datensatz und hat daher keine alten Werte. Bei Lösch-Änderungen gibt es definitionsgemäß keinen neuen Datensatz, sondern nur einen alten Datensatz. Daher können Transaktionsprotokollsätze für eingefügte Zeilen nur neue Spaltenwerte enthalten, während Transaktionsprotokollsätze für gelöschte Zeilen nur alte Spaltenwerte enthalten können. Transaktionsprotokollsätze für aktualisierte Zeilen können die neuen und alten Werte aller Zeilenspalten enthalten. Die Reihenfolge von Protokollsätzen im Transaktionswiederherstellungsprotokoll kann die Reihenfolge von Änderungsvorgängen der Transaktionen widerspiegeln, und die Reihenfolge von Transaktionsfestschreibungseinträgen kann die Reihenfolge widerspiegeln, in der die Transaktionen ausgeführt werden. Bei dem Typ von Zeilenvorgängen in Transaktionsprotokollsätzen kann es sich zum Beispiel um Löschen, Einfügen oder Aktualisieren handeln.
-
Das Datensynchronisationssystem 102 weist eine Protokollleseeinheit (log reader) 104 auf. Die Protokollleseeinheit 104 kann Protokollsätze des Transaktionswiederherstellungsprotokolls 106 lesen und sie an einen Klassifikator 120 für Änderungen an Datensätzen (change record classifier) übermitteln. Der Klassifikator 120 für Änderungen an Datensätzen kann die Protokollsätze auf der Grundlage ihrer Änderungen klassifizieren, so dass ein Auswahlmodul 121 auf der Grundlage der Klassifizierung der Protokollsätze eine Aktualisierungsstrategie auswählen kann und die Aktualisierung auf der Grundlage der ausgewählten Aktualisierungsstrategie ausgeführt werden kann. Die Auswahl der Aktualisierungsstrategie und die Anwendung der Änderung unter Verwenden der gewählten Strategie kann beispielsweise in regelmäßigen Abständen, z.B. stündlich, oder automatisch ausgeführt werden, sobald eine vordefinierte Menge von Protokollsätzen (z.B. 1000 Protokollsätze) im Transaktionswiederherstellungsprotokoll 106 gespeichert ist. Bei jeder Wiederholung können nur die neu hinzugefügten Protokollsätze in Bezug auf die zuvor bereitgestellten Protokollsätze verarbeitet werden. Die ausgewählte Aktualisierungsstrategie kann zum Beispiel eine auf einem Massenladevorgang beruhende Aktualisierungsstrategie oder eine oder mehrere inkrementelle Aktualisierungsstrategien aufweisen. Die Synchronisation kann bei der auf einem Massenladevorgang beruhenden Aktualisierungsstrategie und bei der inkrementellen Aktualisierungsstrategie auf unterschiedliche Weise ausgeführt werden.
-
Die Aktualisierung unter Verwenden einer der ausgewählten inkrementellen Aktualisierungsstrategien kann unter Verwenden eines entsprechenden Anwendungsalgorithmus wie folgt ausgeführt werden. Die Protokollleseeinheit 104 kann so konfiguriert sein, dass sie eine Protokollübertragung des Transaktionswiederherstellungsprotokolls 106 an das Zieldatenbanksystem 103 auf der Grundlage einer inkrementellen Aktualisierungsstrategie ausführt, die von dem Auswahlmodul 121 ausgewählt wird. Die Übertragung kann beispielsweise durch Übertragen eines Stroms (stream) von Protokollsätzen erfolgen, die aus Protokollsätzen des Transaktionswiederherstellungsprotokolls 106 gebildet werden. Dem übertragenen Protokollstrom kann zum Beispiel eine Stromkennung zugehörig sein. Der Strom von Protokollsätzen kann zum Beispiel ein Strom von zusammengeführten Protokollsätzen sein. Dies kann ein leistungsfähiges Verarbeiten der Protokollsätze im Zieldatenbanksystem ermöglichen. Das Zieldatenbanksystem 103 weist mehrere Anwendungsprogramme 108.1 und 108.2 auf, die jeweils einer entsprechenden inkrementellen Aktualisierungsstrategie zugehörig sind. 1 zeigt zur Veranschaulichung lediglich zwei Anwendungsalgorithmen, ist jedoch nicht auf nur zwei Anwendungsalgorithmen beschränkt. Das Zieldatenbanksystem 103 weist außerdem eine oder mehrere Kopien der Zieltabelle 113 der Zieldatenbank 111 auf. Das Zieldatenbanksystem weist eine Protokolldatenstrom-Schnittstelle zum Empfangen der Protokollströme aus dem Quelldatenbanksystem 101 auf. Jedes der Anwendungsprogramme 108.1 und 108.2 kann so konfiguriert sein, dass es Ströme von Protokollsätzen über die Protokolldatenstrom-Schnittstelle empfängt. Jedes der Anwendungsprogramme 108.1 und 108.2 kann die empfangenen Protokollsätze zwischenspeichern und die Änderungen zu Stapeln zusammenfassen, um die Leistungsfähigkeit beim Anwenden der Änderungen auf die Tabellen 113 der Zieldatenbank 111 zu verbessern, z.B. über eine Massenlade-Schnittstelle.
-
In einem anderen Beispiel kann ein Masseladevorgang (Aktualisierungen von Momentaufnahmen) zwischen dem Quelldatenbanksystem 101 und dem Zieldatenbanksystem 103 auf der Grundlage einer ausgewählten auf einem Massenladevorgang beruhenden Aktualisierungsstrategie ausgeführt werden. Bei dem Ladevorgang kann es sich um ein Laden ganzer Tabellendaten oder eines Satzes von Partitionen einer Tabelle zu einem bestimmten Zeitpunkt handeln, und er kann direkt vom Quelldatenbanksystem zum Zieldatenbanksystem ausgeführt werden. Daten im Zieldatenbanksystem können den Zustand des Quelldatenbanksystems zum Zeitpunkt des Ausführens des Ladevorgangs widerspiegeln.
-
Zwar wird das Datensynchronisationssystem 102 in Form von separaten Komponenten gezeigt, in einem anderen Beispiel kann es jedoch Teil des Quelldatenbanksystems 101 sein. In einem Beispiel können sich die Quell- und Zieldatenbanksysteme 101 und 103 auf demselben System oder auf verschiedenen Systemen in einem verteilten Netzwerk befinden. Darüber hinaus können das Datensynchronisationssystem 102, das Quelldatenbanksystem 101 und/oder das Zieldatenbanksystem 103 als ein Computersystem implementiert werden, beispielsweise das im Folgenden in Bezug auf 5 beschriebene System 600.
-
2 ist ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands. Zur Erläuterung kann das in 2 beschriebene Verfahren in dem in 1 veranschaulichten System implementiert werden, ohne jedoch auf eine solche Implementierung beschränkt zu sein. Das Verfahren von 2 kann beispielsweise durch das Datensynchronisationssystem 102 ausgeführt werden.
-
Im Block 201 kann mindestens ein Protokollsatz empfangen werden. Der Protokollsatz beschreibt mindestens einen Vorgang, der in einer oder mehreren Quelltabellen des Quelldatenbanksystems 101 ausgeführt wurde. Bei dem mindestens einen Protokollsatz kann es sich um einen Datensatz des Transaktionswiederherstellungsprotokolls 106 handeln. Beispielsweise kann die Protokollleseeinheit 104 den mindestens einen Protokollsatz aus dem Quelldatenbanksystem 101 lesen oder empfangen. In einem Beispiel weist der mindestens eine Protokollsatz eine Folge von Protokollsätzen auf, die zu einer bestimmten Tabelle 105 des Quelldatenbanksystems 101 gehören. Der mindestens eine Protokollsatz kann automatisch empfangen werden, z.B. wenn er im Transaktionswiederherstellungsprotokoll 106 erstellt wird. In einem anderen Beispiel kann der mindestens eine Protokollsatz als Reaktion auf ein Übertragen einer Anforderung an das Quelldatenbanksystem 101 empfangen werden.
-
Ein Typ von im Quelldatenbanksystem 101 ausgeführtem Vorgang kann im Block 203 auf der Grundlage des mindestens einen Protokollsatzes ermittelt werden. Der Typ von Vorgang kann beispielsweise unter Verwenden des Klassifikators 120 für Änderungen an Datensätzen ermittelt werden. Beispielsweise kann nach Lesen oder Empfangen des mindestens einen Protokollsatzes aus dem Transaktionswiederherstellungsprotokoll 106 des Quelldatenbanksystems der Änderungstyp unter Verwenden des Klassifikators 120 für Änderungen an Datensätzen decodiert und klassifiziert werden. Die Klassifizierung des Änderungstyps ist ein Anzeichen für den Typ von Vorgang. Der Typ von Vorgang kann beispielsweise eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur der Tabelle oder eine Aktivitätsmeldung umfassen, die eine Dienstprogrammaktion betrifft, die im Quelldatenbanksystem ausgeführt wird. Der Klassifikator 120 für Änderungen an Datensätzen kann beispielsweise mehrere Typen von Vorgängen ausgeben, beispielsweise eine reguläre Attributwertänderung in Quelltabellen 105, eine strukturelle Änderung der replizierten Quelltabellen oder Dienstprogrammaufrufe, die Quelltabellen 105 modifizieren.
-
Je nach dem Typ von Vorgang kann im Block 205 eine Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien ausgewählt werden. Die Aktualisierungsstrategie legt eine Folge von Replikationsvorgängen fest, die auszuführen sind, um in dem mindestens einen Protokollsatz beschriebene Änderungen auf das Zieldatenbanksystem 103 anzuwenden. Beispielsweise kann ein Abgleichen zwischen den Typen von Vorgängen und den Aktualisierungsstrategien bereitgestellt werden. Das Abgleichen kann zum automatischen Auswählen der Aktualisierungsstrategie verwendet werden.
-
3 ist ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands. Zur Erläuterung kann das in 3 beschriebene Verfahren in dem in 1 veranschaulichten System implementiert werden, jedoch ohne auf eine solche Implementierung beschränkt zu sein.
-
Die in dem mindestens einen Protokollsatz beschriebene (z.B. im Verfahren von 2 verarbeitete) Änderung kann im Block 301 gemäß der im Schritt 205 ausgewählten Aktualisierungsstrategie angewendet werden. Ein Fehler bei der Anwendung der Änderung kann im Block 303 erkannt werden. Beispielsweise kann das Datensynchronisationssystem 102 die Anwendung von Datenänderungen auf das Zieldatenbanksystem durch eine der implementierten Aktualisierungsstrategien beobachten und unerwartete Fehlerbedingungen erkennen, die ein Anwenden der replizierten Datenänderungen durch die ausgewählte Datenaktualisierungsstrategie verhindern. Als Reaktion auf das Erkennen kann im Block 305 eine sekundäre Aktualisierungsstrategie ausgewählt werden, und die Änderung kann im Block 307 auf der Grundlage der sekundären Aktualisierungsstrategie angewendet werden. Das Auswählen einer anderen Aktualisierungsstrategie als Fallback-Implementierung kann eine automatische Wiederherstellung nach diesen Laufzeitfehlern ohne Ausfallzeiten oder Benutzerinteraktion ermöglichen. Wenn beispielsweise eine inkrementelle Aktualisierungsstrategie beim Anwenden von Protokollsätzen fehlschlägt, die als REGULÄRER Vorgang klassifiziert wurden, wird das Auswahlmodul 121 mit einem Verweis auf die fehlgeschlagenen Protokollsätze ausgelöst. Das Auswahlmodul 121 wählt dann eine andere Implementierungstechnologie (und z.B. einen entsprechenden Anwendungsalgorithmus 108.1 oder 108.2), lädt die Implementierung und leitet Protokollsätze an die entsprechende Implementierung weiter. Das Auswahlmodul 121 kann so konfiguriert werden, dass es die Protokollsätze an einer Transaktionsgrenze, z.B. zu Beginn der Transaktion, weiterleitet. Auf diese Weise kann durch ein Zurücksetzen der fehlgeschlagenen Transaktion und ein Wiederholen mit einer anderen Technologie die Gesamtkonsistenz gewährleistet werden. Wenn das Abwickeln einer Transaktion über eine erste Strategie fehlschlägt, müssen die bisher ausgeführten Vorgänge möglicherweise rückgängig gemacht werden, und eine zweite Strategie kann verwendet werden, um alle Vorgänge erneut zu versuchen.
-
4 ist ein Ablaufplan eines Verfahrens zum Anwenden von an einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands. Zur Erläuterung kann das in 4 beschriebene Verfahren in dem in 1 veranschaulichten System implementiert werden, jedoch ohne auf diese Implementierung beschränkt zu sein. Das Verfahren von 4 kann zum Beispiel durch das Datensynchronisationssystem 102 ausgeführt werden.
-
Der Klassifikator 120 für Änderungen an Datensätzen kann im Block 401 auf der Grundlage einer Folge von einem oder mehreren Protokollsätzen für eine Tabelle entscheiden, zu welcher Klasse von vordefinierten Klassen die eingehenden Änderungen gehören. Zum Beispiel können die folgenden Klassen definiert werden: eine Klasse REGULÄR, die einen normalen Ablauf von Einfüge-, Aktualisierungs- und Löschvorgängen anzeigt, eine Klasse STRUKTURELLE_ÄNDERUNG, die eine strukturelle Änderung anzeigt (die strukturelle Änderung kann beispielsweise sichtbar sein, wenn Änderungen durch die Anweisung TABELLE ÄNDERN (ALTER TABLE) verursacht werden und die Änderungen festgeschrieben werden müssen), eine Klasse DIENSTPROGRAMMAKTION_IN_AUSFÜHRUNG, die anzeigt, dass eine Dienstprogrammaktion im Gange ist, und eine Klasse DIENSTPROGRAMMAKTION_BEENDET, die anzeigt, dass die Dienstprogrammaktion an der Tabelle beendet ist. Die Klassifizierung kann auf der Grundlage des Analyseergebnisses/der Zerlegung des jeweiligen Protokollsatzes vorgenommen werden.
-
Die Änderungskategorien werden im Block 403 vom Auswahlmodul 121 verwendet, um dynamisch zwischen den verfügbaren Datenreplikationsstrategien zu wechseln. Beispielsweise kann das Auswahlmodul 121 für jede Tabelle die Aktualisierungsstrategie auf der Grundlage der im Block 401 ermittelten Klasse auswählen. Wenn es sich um die Klasse REGULÄR handelt, kann die tatsächliche Auswahl auf der Grundlage von Leistungskennzahlen erfolgen. Wenn beispielsweise die Anzahl von regulären Vorgängen über einem Schwellenwert liegt, kann ein Massenladevorgang gewählt werden; andernfalls kann ein inkrementeller Ladevorgang verwendet werden. Im Falle einer Klassifizierung STRUKTURELLE_ÄNDERUNG wird sofort ein Massenladevorgang ausgelöst. Wenn DIENSTPROGRAMMAKTION_IN_AUSFÜHRUNG angezeigt wird, wird die Tabelle vorübergehend vom Synchronisierungsprozess ausgeschlossen. Folglich werden Änderungen nicht mehr aktiv übernommen. Wenn DIENSTPROGRAMMAKTlON_BEENDET angezeigt wird, wird ein Massenladevorgang ausgelöst. So kann das Auswahlmodul 121 eine Masselade-Strategie auswählen, wenn der Änderungsdatensatz eine Änderung codiert, die nicht inkrementell von Quelltabellen 105 auf Zieltabellen 113 angewendet werden kann, um die Momentaufnahme der Quelltabellen zu synchronisieren. Nach einem Synchronisieren der Tabellen mit einer Massenlade-Strategie kann das System wieder zu einer auf inkrementellen Ladevorgängen beruhenden Aktualisierungsstrategie wechseln, wobei der Zeitstempel der letzten festgeschriebenen Transaktion in der zuvor synchronisierten Momentaufnahme der Tabellen verwendet wird, um eine Verarbeitung wieder aufzunehmen.
-
5 stellt ein Computersystem 600 dar, das zum Implementieren von mindestens einer oder mehreren Funktionen der oben in Bezug auf 1, 2, 3 und/oder 4 beschriebenen Verfahren geeignet ist.
-
Es ist klar, dass die hierin beschriebenen Verfahren zumindest teilweise nicht interaktiv sind und durch computergestützte Systeme wie etwa Server oder eingebettete Systeme automatisiert werden. In beispielhaften Ausführungsformen können die hierin beschriebenen Verfahren jedoch in einem (teilweise) interaktiven System implementiert werden. Diese Verfahren können außerdem in Software 612, 622 (einschließlich Firmware 622), Hardware (Prozessor) 605 oder einer Kombination aus diesen implementiert werden. In beispielhaften Ausführungsformen werden die hierin beschriebenen Verfahren in Software, als ein ausführbares Programm, implementiert und durch einen digitalen Spezial- oder Universal-Computer wie etwa einen Personal Computer, eine Arbeitsstation, einen Minicomputer oder einen Großrechner ausgeführt. Das System 600 umfasst einen Universal-Computer 601.
-
Wie in 5 gezeigt wird, umfasst der Computer 601 in beispielhaften Ausführungsformen in Bezug auf die Hardware-Architektur einen Prozessor 605, einen Speicher (Hauptspeicher) 610, der mit einer Speichersteuereinheit 615 verbunden ist, und ein oder mehrere Eingabe- und/oder Ausgabe- (E/A-) Einheiten (oder periphere Einheiten) 10, 645, die zum Datenaustausch über eine lokale Ein/Ausgabe-Steuereinheit 635 verbunden sind. Bei der Ein/Ausgabe-Steuereinheit 635 kann es sich um eine oder mehrere Busse oder andere verdrahtete oder drahtlose Verbindungen handeln, wie sie in der Technik bekannt sind, jedoch ohne auf diese beschränkt zu sein. Die Eingabe/Ausgabe-Steuereinheit 635 kann zusätzliche Elemente enthalten, der der Einfachheit halber hier weggelassen wurden, z.B. Steuereinheiten, Puffer (Caches), Treiber, Verstärker und Empfänger, um einen Austausch von Daten zu ermöglichen. Die lokale Schnittstelle kann darüber hinaus Adress-, Steuerungs- und/oder Datenverbindungen umfassen, um einen geeigneten Austausch von Daten zwischen den zuvor genannten Komponenten zu ermöglichen. Wie hierin beschrieben, können die E/A-Einheiten 10, 645 im Allgemeinen jedwede generalisierte Verschlüsselungskarte oder Chipkarte enthalten, wie sie in der Technik bekannt sind.
-
Der Prozessor 605 ist eine Hardware-Einheit zum Ausführen von Software, insbesondere der im Speicher 610 gespeicherten Software. Bei dem Prozessor 605 kann es sich um einen beliebigen kundenspezifischen oder handelsüblichen Prozessor, eine Zentraleinheit (CPU), einen Zusatzprozessor unter mehreren dem Computer 601 zugehörigen Prozessoren, einen Mikroprozessor auf Halbleiterbasis (in Form eines Mikrochips oder Chipsatzes) oder allgemein eine Einheit zum Ausführen von Software-Befehlen handeln.
-
Der Speicher 610 kann beliebige oder eine Kombination von flüchtigen Speicherelementen (z B. Direktzugriffsspeicher (RAM) beispielsweise DRAM, SRAM, SDRAM usw.)) und nichtflüchtigen Speicherelementen (z.B. ROM, löschbarer programmierbarer Festspeicher (EPROM), elektronisch löschbarer programmierbarer Festspeicher (EEPROM), programmierbarer Festspeicher (PROM)) umfassen. Es sei darauf hingewiesen, dass der Speicher 610 eine verteilte Architektur haben kann, bei der verschiedene Komponenten voneinander entfernt angeordnet sind, auf die der Prozessor 605 jedoch zugreifen kann.
-
Die Software im Speicher 610 kann ein oder mehrere separate Programme umfassen, von denen jedes eine geordnete Auflistung von ausführbaren Anweisungen zum Implementieren logischer Funktionen aufweist, insbesondere von Funktionen, die in hierin beschriebenen Ausführungsformen enthalten sind. Im Beispiel von 5 umfasst die Software im Speicher 610 Anweisungen 612, z.B. Anweisungen zum Verwalten von Datenbanken, beispielsweise ein Datenbankverwaltungssystem.
-
Die Software im Speicher 610 umfasst in der Regel auch ein geeignetes Betriebssystem (BS) 611. Das Betriebssystem 611 steuert im Wesentlichen die Ausführung anderer Computerprogramme, wie möglicherweise die Software 612 zum Implementieren der hierin beschriebenen Verfahren.
-
Die hierin beschriebenen Verfahren können in Form eines Quellprogramms 612, eines ausführbaren Programms 612 (Objektcode), eines Skripts oder einer anderen Einheit vorliegen, die einen Satz von auszuführenden Anweisungen 612 aufweist. Wenn es sich um ein Quellprogramm handelt, muss das Programm mit Hilfe eines Compilers, Assemblers, Interpreters oder dergleichen übersetzt werden, der im Speicher 610 enthalten sein kann, damit es in Verbindung mit dem Betriebssystem 611 ordnungsgemäß funktioniert. Darüber hinaus können die Verfahren in einer objektorientierten Programmiersprache mit Daten- und Verfahrensklassen oder in einer prozeduralen Programmiersprache mit Routinen, Subroutinen und/oder Funktionen geschrieben sein.
-
In beispielhaften Ausführungsformen können eine herkömmliche Tastatur 650 und eine Maus 655 mit der Ein/Ausgabe-Steuereinheit 635 verbunden sein. Zu anderen Ausgabeeinheiten wie etwa die E/A-Einheiten 645 können Eingabeeinheiten gehören, beispielsweise ein Drucker, ein Scanner, ein Mikrofon und dergleichen, jedoch ohne auf diese beschränkt zu sein. Schließlich können die E/A-Einheiten 10, 645 außerdem Einheiten umfassen, die sowohl Eingaben als auch Ausgaben übertragen, zum Beispiel eine Netzwerkschnittstellenkarte (NIC) oder ein Modulator/Demodulator (zum Zugreifen auf andere Dateien, Einheiten, Systeme oder ein Netzwerk), ein Hochfrequenz- (HF-) oder sonstiger Sender-Empfänger, eine Telefonschnittstelle, eine Brücke, ein Router und dergleichen. Bei den E/A-Einheiten 10, 645 kann es sich um eine beliebige allgemeine Verschlüsselungskarte oder Chipkarte handeln, die in der Technik bekannt ist. Das System 600 kann außerdem eine Anzeigesteuereinheit 625 umfassen, die mit einer Anzeige 630 verbunden ist. In beispielhaften Ausführungsformen kann das System 600 außerdem eine Netzwerkschnittstelle zum Verbinden mit einem Netzwerk 665 umfassen. Das Netzwerk 665 kann ein auf IP beruhendes Netzwerk zum Datenaustausch zwischen dem Computer 601 und einem beliebigen externen Server, Client und dergleichen über eine Breitbandverbindung sein. Das Netzwerk 665 überträgt und empfängt Daten zwischen dem Computer 601 und externen Systemen 30, die am Ausführen eines Teils oder aller Funktionen der hierin beschriebenen Verfahren beteiligt sein können. In beispielhaften Ausführungsformen kann das Netzwerk 665 ein verwaltetes IP-Netzwerk sein, das von einem Diensteanbieter verwaltet wird. Das Netzwerk 665 kann drahtlos implementiert werden, z.B. unter Verwenden von drahtlosen Protokollen und Technologien wie etwa WLAN, WiMax, usw. Beim Netzwerk 665 kann es sich auch ein paketvermitteltes Netzwerk handeln, beispielsweise ein lokales Netz, ein Weitverkehrsnetz, ein Großraumnetz, ein Internet-Netz oder eine andere ähnliche Art von Netzwerkumgebung. Das Netzwerk 665 kann ein festes drahtloses Netzwerk, ein drahtloses lokales Netz (WLAN), ein drahtloses Weitverkehrsnetz (WWAN), ein Kurzstreckennetzwerk (PAN), ein virtuelles privates Netzwerk (VPN), ein Intranet oder ein anderes geeignetes Netzwerksystem sein und umfasst Geräte zum Empfangen und Übertragen von Signalen.
-
Wenn es sich bei dem Computer 601 um einen PC, eine Arbeitsstation, eine intelligente Einheit oder dergleichen handelt, kann die Software im Speicher 610 außerdem ein Basic Input/Output System (BIOS) 622 umfassen. Das BIOS ist ein Satz wesentlicher Software-Routinen, die die Hardware beim Start initialisieren und testen, das Betriebssystem 611 starten und die Datenübertragung zwischen den Hardware-Einheiten unterstützen. Das BIOS ist im ROM gespeichert, so dass das BIOS ausgeführt werden kann, wenn der Computer 601 aktiviert wird.
-
Wenn der Computer 601 in Betrieb ist, ist der Prozessor 605 so konfiguriert, dass er die im Speicher 610 gespeicherte Software 612 ausführt, um Daten in den und aus dem Speicher 610 zu übertragen und allgemein Verarbeitungsvorgänge des Computers 601 gemäß der Software zu steuern. Die hierin beschriebenen Verfahren und das Betriebssystem 611 werden ganz oder teilweise vom Prozessor 605 gelesen, möglicherweise im Prozessor 605 zwischengespeichert und dann ausgeführt.
-
Wenn die hierin beschriebenen Systeme und Verfahren in Software 612 implementiert werden, wie in 5 gezeigt wird, können die Verfahren zum Verwenden durch ein oder in Verbindung mit einem computergestützten System oder Verfahren auf einem beliebigen durch einen Computer lesbaren Medium wie etwa dem Speicher 620 gespeichert werden. Der Speicher 620 kann einen Plattenspeicher wie etwa einen HDD-Speicher aufweisen.
-
Der vorliegende Gegenstand kann die folgenden Klauseln aufweisen
-
Klausel 1: Durch einen Computer implementiertes Verfahren zur Datensynchronisation in einem Datenanalysesystem, wobei das Verfahren aufweist
Empfangen von mindestens einem Protokollsatz, wobei der Protokollsatz einen Vorgang beschreibt, der in einem Quelldatenbanksystem des Datenanalysesystems ausgeführt wird;
Ermitteln eines Typs von Vorgang, der im Quelldatenbanksystem ausgeführt wird, auf der Grundlage des Protokollsatzes; und
Auswählen einer Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien auf der Grundlage des Typs von Vorgang, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um Änderungen, die in dem mindestens einen Protokollsatz beschrieben werden, auf ein Zieldatenbanksystem des Datenanalysesystems anzuwenden.
-
Klausel 2: Verfahren nach Klausel 1, wobei der mindestens eine Protokollsatz eine Folge von Protokollsätzen aufweist, die zu einer bestimmten Tabelle des Quelldatenbanksystems gehören, wobei ein Ermitteln des Typs von Vorgang auf der Folge beruht.
-
Klausel 3: Verfahren nach Klausel 1 oder 2, wobei das Ermitteln des Typs von Vorgang ein Vergleichen der Anzahl von in dem mindestens einen Protokollsatz angezeigten Vorgängen mit einem vordefinierten Schwellenwert und ein Ermitteln des Typs von Vorgang auf der Grundlage des Ergebnisses des Vergleichs aufweist.
-
Klausel 4: Verfahren nach einer der vorhergehenden Klauseln 1 bis 3, wobei das Verfahren ein Anwenden der in dem mindestens einen Protokollsatz beschriebenen Änderung gemäß der ausgewählten Aktualisierungsstrategie aufweist.
-
Klausel 5: Verfahren nach Klausel 4, wobei das Verfahren ein Erkennen aufweist, dass das Anwenden der Änderung fehlgeschlagen ist; als Reaktion auf das Erkennen Auswählen einer sekundären Aktualisierungsstrategie; und Anwenden der Änderung auf der Grundlage der sekundären Aktualisierungsstrategie.
-
Klausel 6: Verfahren nach einer der vorhergehenden Klauseln 1 bis 5, wobei der Typ von Vorgang eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur einer Tabelle und/oder eine im Quelldatenbanksystem ausgeführte Dienstprogrammaktion umfasst.
-
Klausel 7: Verfahren nach einer der vorhergehenden Klauseln 1 bis 6, wobei die Aktualisierungsstrategie einen regulären Vorgang zum Hinzufügen, Löschen oder Aktualisieren eines Datensatzes, einen Massenladevorgang des Zieldatenbanksystems mit Daten, die aus dem Quelldatenbanksystem stammen, und/oder einen Aussetzungsvorgang zum Aussetzen von Modifikationen einer bestimmten Tabelle des Zieldatenbanksystems verwendet.
-
The Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit jedem möglichen technischen Integrationsgrad handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zum Verwenden durch ein System zum Ausführen von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zum Speichern in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Ausführen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit in einem einzigen Schritt ausgeführt werden, der gleichzeitig, im Wesentlichen gleichzeitig, teilweise oder vollständig zeitlich überlappend erfolgt, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.