DE102013201174A1 - Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand - Google Patents

Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand Download PDF

Info

Publication number
DE102013201174A1
DE102013201174A1 DE102013201174A DE102013201174A DE102013201174A1 DE 102013201174 A1 DE102013201174 A1 DE 102013201174A1 DE 102013201174 A DE102013201174 A DE 102013201174A DE 102013201174 A DE102013201174 A DE 102013201174A DE 102013201174 A1 DE102013201174 A1 DE 102013201174A1
Authority
DE
Germany
Prior art keywords
database
pages
page
computer
transaction log
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102013201174A
Other languages
English (en)
Inventor
Prasadarao Akulavenkatavara
Aaron I. Henner
Gary N. Jin
Steven R. Pearson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102013201174A1 publication Critical patent/DE102013201174A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2066Optimisation of the communication load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover

Abstract

Es werden Techniken zum Durchführen einer Operation zum Ermitteln, ob eine Standby-Datenbank mit einer Primärdatenbank in einer physischen Datenbank-Replikationsumgebung mit Protokollversand synchronisiert ist, offenbart. In einer Ausführungsform kann die Operation ein Empfangen eines Transaktionsprotokolls von der Primärdatenbank durch die Standby-Datenbank beinhalten. Das Transaktionsprotokoll kann einen oder mehrere erste Prüfsummenwerte für einen ersten Satz von Seiten in der Primärdatenbank angeben. Die Operation kann zudem ein Berechnen eines oder mehrerer zweiter Prüfsummenwerte für einen zweiten Satz von Seiten in der Primärdatenbank beinhalten. Die Operation kann zudem ein Ermitteln beinhalten, ob die Standby-Datenbank mit der Primärdatenbank synchronisiert ist, indem der eine oder die mehreren ersten Prüfsummenwerte mit dem einen oder den mehreren zweiten Prüfsummenwerten verglichen werden.

Description

  • Hintergrund
  • Bei Datenbanken handelt es sich um Computersysteme zum Speichern und Abrufen von Daten. Datenbanken werden durch Datenbankverwaltungssysteme (database management systems (DBMS)) betrieben, die vielfältige Techniken zum Speichern, Abrufen und Sichern (backing up) von Daten realisieren. Bei Datenbanken kann physische Replikation verwendet werden, um eine Sicherungs(Standby)-Kopie aktuell zu halten. Dies stellt sicher, dass im Falle eines Problems mit der ursprünglichen (primären) Kopie die Standby-Kopie die Funktion der primären annehmen (Übernahme) und alle Datenbankoperationen mit aktuellen Daten durchführen kann. Üblicherweise benötigen Benutzer kontinuierlichen Zugang zu ihren Daten, und die Replikation ermöglicht minimale Unterbrechungen. Um diesen Schutz sicherzustellen, muss die Standby-Kopie jedoch aktiv sowie bereit sein, binnen eines Augenblicks zu übernehmen.
  • Die physische Replikation beruht auf dem anfänglichen Vorhandensein zweier identischer Datenbanken (entweder durch eine festplattengestützte Replikation oder ein Sichern und Wiederherstellen einer Datenbank). Von diesem Punkt an, werden die Datenbanken durch einen kontinuierlichen Versand von Transaktionsprotokolldaten von der Primär- zur Standby-Kopie synchron gehalten. Die Standby-Kopie verarbeitet dann die Protokolldaten und schreibt die Veränderungen auf Festplatte. Dies erfolgt kontinuierlich während die Standby-Kopie aktiv ist, so dass sie jederzeit übernehmen kann.
  • In solch einer physischen Replikationsumgebung ist für Kunden die Gewissheit äußerst wichtig, dass die Standby-Kopie Daten besitzt, die mit denen der Primärkopie identisch sind, so dass im Falle einer Übernahme kein Datenverlust auftritt. Die Standby-Daten können jedoch aufgrund von Fehlern inkorrekt sein, zu denen beispielsweise, ohne darauf beschränkt zu sein, Festplattenfehler, Netzwerkfehler oder Fehler beim Replikationsverfahren gehören. Derzeitige Verfahren für die vollständige Überprüfung der Standby-Kopie leiden unter einem Verlust der Verfügbarkeit und der Fähigkeiten der Notfallwiederherstellung auf dem Standby-System. Einige aktuelle Überprüfungsverfahren decken keine gesamte Datenbank ohne erhebliche Anstrengungen seitens des Benutzers ab und können in keinem Fall Metadatenseiten abdecken. Die aktuelle Erfindung offenbart ein Verfahren zum Sicherstellen, dass eine Standby-Datenbank mit der primären identisch ist, während der Replikationsprozess läuft.
  • Kurzdarstellung
  • Ausführungsformen stellen ein Verfahren, ein Produkt und ein System zum Durchführen einer Operation zum Ermitteln, ob eine Standby-Datenbank mit einer Primärdatenbank in einer physischen Datenbank-Replikationsumgebung mit Protokollversand mit einer Primärdatenbank synchronisiert ist, bereit. Die Operation beinhaltet ein Empfangen eines Transaktionsprotokolls von der Primärdatenbank durch die Standby-Datenbank. Das Transaktionsprotokoll gibt einen oder mehrere erste Prüfsummenwerte für einen ersten Satz von Seiten (engl. pages) in der Primärdatenbank an. Die Operation beinhaltet zudem ein Berechnen eines oder mehrerer zweiter Prüfsummenwerte für einen zweiten Satz von Seiten in der Standby-Datenbank. Die Operation beinhaltet zudem ein Ermitteln, ob die Standby-Datenbank mit der Primärdatenbank synchronisiert ist, indem der eine oder die mehreren ersten Prüfsummenwerte mit dem einen oder den mehreren zweiten Prüfsummenwerten verglichen wird.
  • Kurze Beschreibung der Zeichnungen
  • Damit die Art und Weise, in der die vorstehend wiedergegebenen Aspekte erreicht werden, detailliert verstanden werden kann, ist eine genauere Beschreibung von Ausführungsformen der vorstehend kurz dargestellten Erfindung unter Bezugnahme auf die angehängten Zeichnungen vorhanden.
  • Es ist jedoch festzuhalten, dass die angehängten Zeichnungen nur typische Ausführungsformen dieser Erfindung veranschaulichen und daher nicht als deren Umfang einschränkend anzusehen sind, da die Erfindung andere, gleichermaßen wirksame Ausführungsformen zulassen kann.
  • 1 zeigt ein Blockschaubild, das ein System für die Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 2 zeigt einen Ablaufplan, der ein Verfahren für die Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand gemäß einer Ausführungsform der Erfindung darstellt.
  • 3 zeigt einen Ablaufplan, der ein Verfahren zum Erzeugen eines Transaktionsprotokolls in einer Primärdatenbank gemäß einer Ausführungsform der Erfindung darstellt.
  • 4 zeigt einen Ablaufplan, der ein Verfahren zum Prüfen von Prüfsummen einer Primärdatenbank gegen eine Standby-Datenbank veranschaulicht.
  • 5 zeigt ein Blockschaubild, das Komponenten eines Datenbankverwaltungssystems (DBMS) gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 6 veranschaulicht in einem Transaktionsprotokoll gespeicherte Datensätze gemäß einer Ausführungsform der Erfindung.
  • Detaillierte Beschreibung
  • Ausführungsformen der Erfindung stellen Techniken zum Überprüfen einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand bereit, während die Datenbank online ist. In einer Ausführungsform prüft eine Anwendung die Standby-Datenbank gegen die Primärdatenbank. In manchen Ausführungsformen ist die Anwendung Teil eines Datenbankverwaltungssystems (DBMS). Weiterhin kann die Anwendung so eingerichtet sein, dass sie ein Transaktionsprotokoll für Seiten in einem Tabellenbereich (engl.: table space) der Primärdatenbank erzeugen kann. Das Transaktionsprotokoll enthält Prüfsummenwerte der physischen Daten auf der Speichereinheit, die für jede Seite der Datenbank stehen. Nach Erzeugen des Protokolls für alle Seiten im Tabellenbereich sendet die Anwendung das Transaktionsprotokoll an die Standby-Datenbank. Wie dem Fachmann bekannt ist, kann die Standby-Datenbank durch dasselbe DBMS wie die Primärdatenbank verwaltet werden, ein unterschiedliches DBMS wie die Primärdatenbank verwaltet werden, und sie kann innerhalb desselben physischen Computers wie die Primärdatenbank angeordnet sein oder in einem anderen Computer als die Primärdatenbank angeordnet sein. Dann berechnet die Anwendung eine Prüfsumme für jede Seite in der Standby-Datenbank und vergleicht die entsprechenden Prüfsummenwerte von der Primär- und der Standby-Datenbank. Die Anwendung warnt einen Benutzer, wenn die Werte nicht gleich sind, da dies bedeutet, dass die Seitendaten in der Standby-Datenbank keine identische Kopie der Seitendaten in der Primärdatenbank darstellen.
  • Nachfolgend wird Bezug auf Ausführungsformen der Erfindung genommen. Es ist jedoch zu beachten, dass die Erfindung nicht auf bestimmte beschriebene Ausführungsformen beschränkt ist. Stattdessen wird jede beliebige Kombination der folgenden Merkmale und Elemente betrachtet, um die Erfindung auszubilden und auszuführen, wobei es unerheblich ist, ob sie unterschiedlichen Ausführungsformen angehören. Obwohl weiterhin Ausführungsformen der Erfindung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erzielen können, wird die Erfindung nicht dadurch eingeschränkt, ob ein bestimmter Vorteil durch eine gegebene Ausführungsform erzielt wird. Somit sind die folgenden Aspekte, Merkmale, Ausführungsformen und Vorteile lediglich veranschaulichend und nicht als Elemente oder Einschränkungen der angehängten Ansprüche anzusehen, außer wo dies ausdrücklich in einem oder mehreren Ansprüchen angegeben ist. Gleichfalls ist die Bezugnahme auf „die Erfindung” nicht als Verallgemeinerung jeglichen hierin offenbarten Gegenstands der Erfindung und nicht als Element oder Einschränkung der angehängten Ansprüche zu betrachten, außer wo dies ausdrücklich in einem oder mehreren Ansprüchen angegeben ist.
  • Wie für den Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren, oder Computerprogrammprodukt ausgebildet werden. Dementsprechend können Aspekte der vorliegenden Erfindung in Form einer vollständigen Hardwareausführungsform, einer vollständigen Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder in einer Ausführungsform ausgebildet werden, die Software- und Hardwareaspekte kombiniert, was hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das in einem oder mehreren computerlesbaren Medien mit darauf befindlichem computerlesbarem Programmcode enthalten sein kann.
  • Jede beliebige Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art sowie eine beliebige geeignete Kombination des Vorgenannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium kann Folgendes gehören (Liste ohne Anspruch auf Vollständigkeit): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorgenannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen beinhalten oder speichern kann.
  • Zu einem computerlesbaren Signalmedium kann ein zum Beispiel im Basisband oder als Teil einer Trägerwelle verbreitetes Datensignal mit darin ausgebildetem computerlesbarem Programmcode zählen. Solch ein verbreitetes Signal kann in jeder beliebigen einer Vielfalt von Formen ausgebildet werden, darunter, ohne darauf beschränkt zu sein, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann.
  • Der in einem computerlesbaren Medium enthaltene Programmcode kann mittels eines beliebigen geeigneten Mediums übertragen werden, darunter, jedoch nicht beschränkt auf, kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw., oder einer beliebigen geeigneten Kombination des Vorgenannten.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination einer oder mehrerer Programmiersprachen, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen, geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, darunter ein Nahbereichsnetzwerk (local area network (LAN)) oder ein Weitbereichsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung ausführen.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen auf dem Computer realisierten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen bereitstellen.
  • Ausführungsformen der Erfindung können Endbenutzern durch eine Cloud-Computing-Infrastruktur bereitgestellt werden. Cloud-Computing betrifft allgemein die Bereitstellung skalierbarer Datenverarbeitungsressourcen als ein Dienst über ein Netzwerk. Formaler kann Cloud-Computing als eine Datenverarbeitungsfähigkeit definiert werden, die eine Abstraktion zwischen der Datenverarbeitungsressource und deren zugrundeliegender technischer Architektur (z. B. Server, Speicherung, Netzwerke) bereitstellt, was den bequemen Netzwerkzugriff auf Abruf auf einen gemeinsamen Bestand konfigurierbarer Datenverarbeitungsressourcen ermöglicht, die bei minimalem Verwaltungsaufwand oder Interaktion des Serveranbieters rasch bereitgestellt und freigegeben werden können. Somit wird es einem Benutzer durch Cloud-Computing ermöglicht, auf virtuelle Datenverarbeitungsressourcen (z. B. Speicherung, Daten, Anwendungen und sogar komplette virtualisierte Computersysteme) in „der Cloud” zuzugreifen, ungeachtet der zugrundeliegenden physischen Systeme (oder der Standorte dieser Systeme), mittels derer die Datenverarbeitungsressourcen bereitgestellt werden.
  • Üblicherweise werden Cloud-Computing-Ressourcen einem Benutzer auf der Grundlage der Bezahlung pro Nutzung (pay-per-use) bereitgestellt, wobei Benutzern nur die tatsächlich genutzten Datenverarbeitungsressourcen in Rechnung gestellt werden (z. B. eine durch einen Benutzer in Anspruch genommene Menge an Speicher oder eine Anzahl durch den Benutzer instanziierter virtualisierter Systeme). Ein Benutzer kann zu jeder Zeit und von überall im Internet auf jede der in der Cloud befindlichen Ressourcen zugreifen. Im Kontext der vorliegenden Erfindung kann ein Benutzer auf Anwendungen oder zugehörige Daten zugreifen, die in der Cloud verfügbar sind. Zum Beispiel könnte die Anwendung zur Online-Überprüfung von Datenbanken auf einem Computersystem in der Cloud ausgeführt werden und überprüfen, ob die Standby-Datenbank mit der Primärdatenbank synchronisiert ist (die selbst als durch einen Cloud-Anbieter beherbergter Dienst gespeichert sein könnte). In solch einem Fall könnte die Anwendung zur Online-Überprüfung von Datenbanken ein Transaktionsprotokoll in der Primärdatenbank erzeugen und Transaktionsprotokolldaten an einem Speicherort in der Cloud speichern. Dadurch wird einem Benutzer das Zugreifen auf diese Daten von jedem in ein mit der Cloud verbundenes Netzwerk (z. B. dem Internet) eingebundenem Computersystem aus ermöglicht.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaubildern für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder der Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
  • 1 zeigt ein Blockschaubild, das ein System 100 zum Überprüfen einer Standby-Datenbank in einer physischen Datenbank-Replikationsumgebung mit Protokollversand, während die Standby-Datenbank online ist, gemäß einer Ausführungsform der Erfindung veranschaulicht. Das Netzwerksystem 100 beinhaltet einen Server 102. Der Server 102 kann auch über ein Netzwerk 130 mit anderen Computern und Servern verbunden sein. Im Allgemeinen kann es sich bei dem Netzwerk 130 um ein Telekommunikationsnetzwerk und oder ein Weitbereichsnetzwerk (WAN) handeln. In einer speziellen Ausführungsform handelt es sich bei dem Netzwerk 130 um das Internet.
  • Der Server 102 enthält allgemein einen Prozessor 104, der über einen Bus 120 mit einem Arbeitsspeicher 106, einer Netzwerkschnittstelleneinheit 118, einem Speicherung 114, einer Eingabeeinheit 122 und einer Ausgabeeinheit 124 verbunden ist. Der Server 102 wird allgemein von einem Betriebssystem 108 gesteuert. Zu Beispielen für Betriebssysteme zählen UNIX, Versionen des Betriebssystems „Microsoft Windows®” und Verbreitungen des Betriebssystems „Linux®”. Allgemeiner kann jedes beliebige Betriebssystem verwendet werden, das die hierin offenbarten Funktionen unterstützt. Der Prozessor 104 ist als Stellvertreter einer einzelnen Zentraleinheit (CPU), mehrerer CPUs, einer einzelnen CPU mit mehreren Verarbeitungskernen und dergleichen enthalten. Gleichermaßen kann es sich bei dem Arbeitsspeicher 106 um einen Speicher mit wahlfreiem Zugriff handeln. Obwohl der Arbeitsspeicher 106 als einzelne Einheit abgebildet ist, ist zu beachten, dass der Arbeitsspeicher 106 eine Vielzahl von Modulen aufweisen kann, und dass der Arbeitsspeicher 106 in mehreren Stufen vorhanden sein kann, von Hochgeschwindigkeitsregisterspeicher und Cachespeicher bis hin zu DRAM-Chips mit höherer Zugriffszeit, jedoch größerer Kapazität. Bei der Netzwerkschnittstelleneinheit 118 kann es sich um jede beliebige Art von Netzwerkdatenübertragungseinheit handeln, mit welcher der Server 102 mit anderen Computern über das Netzwerk 130 Daten austauschen kann.
  • Beim Speicher 114 kann es sich um eine Permanentspeichereinheit handeln. Obwohl der Speicher 114 als einzelne Einheit gezeigt ist, kann es sich bei dem Speicher 114 um eine Kombination aus fest eingebauten und/oder Wechsel-Speichereinheiten, wie beispielsweise fest eingebaute Festplattenlaufwerke, Halbleiterlaufwerke (solid state drives), Diskettenlaufwerke (floppy disc drives), Bandlaufwerke, Wechsel-Speicherkarten oder optischen Speicher, handeln. Der Arbeitsspeicher 106 und der Speicher 114 können Teil eines virtuellen Adressraums sein, der mehrere primäre und sekundäre Speichereinheiten umfasst.
  • Bei der Eingabeeinheit 122 kann es sich um jede beliebige Einheit handeln, die dem Server 102 eine Eingabe bereitstellen kann. Zum Beispiel kann eine Tastatur und/oder eine Maus verwendet werden. Bei der Ausgabeeinheit 124 kann es sich um jede beliebige Einheit handeln, die einem Benutzer des Servers 102 eine Ausgabe bereitstellen kann. Zum Beispiel kann es sich bei der Ausgabeeinheit 116 um jeden herkömmlichen Anzeigebildschirm oder Satz von Lautsprechern handeln. Obwohl die Ausgabeeinheit 124 von der Eingabeeinheit 122 getrennt abgebildet ist, können die Ausgabeeinheit 124 und die Eingabeeinheit 122 kombiniert werden. Zum Beispiel kann ein Anzeigebildschirm mit einem integrierten berührungsempfindlichen Bildschirm verwendet werden.
  • Wie gezeigt, enthält der Arbeitsspeicher 106 des Servers 102 ein Datenbankverwaltungssystem (DBMS) 110, das so eingerichtet ist, dass es die Primärdatenbank 115 und die Standby-Datenbank 117 verwalten kann, die in der Speicherung 114 des Servers 102 enthalten sind. Wie vorstehend ausgeführt, erkennt der Fachmann, dass die Standby-Datenbank 117 auf einem anderen Server, einer anderen Speichereinheit desselben Servers gespeichert sein und durch ein separates DBMS verwaltet werden kann. Wie gezeigt, enthält der Arbeitsspeicher 106 des Servers 102 zudem ein Transaktionsprotokoll 112. In einer Ausführungsform enthält das Transaktionsprotokoll 112 einen Datenbankseitenkennzeichner, einen entsprechenden Prüfsummenwert und einen Zeitstempelwert. In manchen Ausführungsformen kann das Transaktionsprotokoll 112 einen Wert enthalten, der dieses selbst als „Überprüfungsprotokoll” kennzeichnet, so dass es durch das DBMS 110 nur für Überprüfungszwecke verwendet wird. Ausführungsformen der Erfindung können anstelle eines Zeittempels jeden Mechanismus zum Unterhalten der Zeiterfassung und Sequenzierung beinhalten. Bei einem Prüfsummenwert handelt es sich um eine Prüfsumme der physischen Daten auf einem Speichermedium, die für eine Seite der Datenbank steht. Die besondere Beschreibung in 1 dient lediglich veranschaulichenden Zwecken; es versteht sich, dass die Erfindung nicht auf spezielle beschriebene Ausführungsformen beschränkt ist, und jede Kombination berücksichtigt ist, mit der die Erfindung realisiert und ausgeführt werden kann.
  • 2 zeigt einen Ablaufplan, der ein Verfahren zum Überprüfen einer Standby-Datenbank gemäß einer Ausführungsform der Erfindung darstellt. Wie gezeigt, beginnt das Verfahren mit Schritt 210, in dem das DBMS 110 ein Transaktionsprotokoll 112 für jede Seite in der Primärdatenbank 115 erzeugt. Bei Datenbankseiten handelt es sich um die grundlegende interne Struktur, mittels derer die Daten in den Datenbankdateien organisiert sind. In manchen Ausführungsformen kann das DBMS 110 Transaktionsprotokolle für einen Teilsatz von Seiten in der Primärdatenbank 115 erzeugen. In manchen Ausführungsformen kann ein einziges Transaktionsprotokoll Prüfsummenwerte für mehrere Seiten enthalten. In manchen anderen Ausführungsformen kann für jede Seite ein eigenes Transaktionsprotokoll erzeugt werden, wobei das Transaktionsprotokoll einen Kennzeichner und einen Prüfsummenwert für eine einzige Seite enthält. Es sollte ersichtlich sein, dass jede mögliche Kombination von Transaktionsprotokollen und Seitenkennzeichnern berücksichtigt ist und nicht als Einschränkung der Offenbarung anzusehen ist. In Schritt 220 wird das in Schritt 210 erzeugte Transaktionsprotokoll 112 zur weiteren Verarbeitung an die Standby-Datenbank 117 gesendet. In Schritt 230 verwendet das DBMS 110 die im Transaktionsprotokoll 112 enthaltenen Prüfsummendaten, um jede Seite in der Standby-Datenbank 117 gegen die Primärdatenbank 115 zu prüfen. Durch Ausführen dieses Verfahrens wird eine Warnung an einen Benutzer gesendet, wenn das DBMS 110 feststellt, dass die Primärdatenbank 115 und die Standby-Datenbank 117 nicht synchronisiert sind.
  • 3 zeigt einen Ablaufplan, der ein Verfahren 300 darstellt, das dem Schritt 210 zum Erzeugen eines Transaktionsprotokolls 112 für die Primärdatenbank 115 gemäß einer Ausführungsform der Erfindung entspricht. Wie gezeigt, beginnt das Verfahren 300 mit Schritt 310, in dem ein Tabellenbereich der Primärdatenbank 115 durch das DBMS 110 ausgewählt wird. Bei einem Tabellenbereich handelt es sich um eine logische Gruppe von Datendateien (z. B. Seiten) in einer Datenbank. Ein Tabellenbereich kennzeichnet einen Speicherort, an dem die den Datenbankobjekten zugrundeliegenden Daten gespeichert sein können In Schritt 320 wählt das DBMS 110 jede der Seiten in dem in Schritt 310 ausgewählten Tabellenbereich aus. In einer Ausführungsform wählt das DBMS 110 die Seiten sequenziell aus. In einer weiteren Ausführungsform wählt das DBMS 110 die Seiten zufällig aus. In noch einer weiteren Ausführungsformen wählt das DBMS die Seiten abhängig von den Zugriffsmustern der Arbeitslast auf die Primärdatenbank 115 aus, so dass die Gleichzeitigkeit verbessert wird, da das zeitweilige Sperren des Schreibzugriffs erforderlich ist. Allgemein kann das DBMS 110 jedes geeignete Verfahren zum Auswählen jeder Seite im Tabellenbereich verwenden. Wie vorstehend ausgeführt, kann in manchen Ausführungsformen in Schritt 320 ein Teilsatz für die Prüfsummenoperation ausgewählt werden. In manchen Ausführungsformen kann der Teilsatz von in Schritt 320 für die Prüfsummenoperation ausgewählten Seiten nur eine einzige Seite enthalten.
  • In Schritt 330 beginnt das DBMS 110 mit dem Ausführen einer die Schritte 340 bis 370 beinhaltenden Schleife für das Berechnen einer Prüfsumme für jede ausgewählte Seite im Tabellenbereich. Entscheidend ist das Erfordernis, Modifikationen an jeder Seite während der Prüfsummenberechnung zu verhindern, da Modifikationen an den physischen Daten zu einem anderen Prüfsummenwert für die Seite führen. Dementsprechend sperrt das DBMS 110 in Schritt 340 den Schreibzugriff auf die Seite. Dies verhindert wiederum, dass die Inhalte der Seite modifiziert werden, während die Prüfsumme berechnet wird. Der Schreibzugriff kann durch jedes Verfahren gesperrt werden, dass zeitweiligen ausschließlichen Zugriff auf die Seite bereitstellt, was Sperren (sein locks), Semaphore oder Verriegelungen einschließt, ohne darauf beschränkt zu sein. Nach Sperren des Schreibzugriffs auf die Seite berechnet das DBMS 110 in Schritt 350 eine Prüfsumme der Seite in der Primärdatenbank 115. Jeder geeignete Prüfsummenalgorithmus kann realisiert werden, um die Prüfsumme zu berechnen. Bei einer Prüfsumme handelt es sich um ein Datenobjekt fester Größe, das aus einem definierten Segment physischer Speicherdaten zum Zwecke des Erkennens von Fehlern berechnet wird, die während der Übermittlung oder Speicherung eingebracht worden sein könnten. Die Integrität von Daten kann durch Neuberechnen einer Prüfsumme und deren Vergleichen mit der Originalprüfsumme überprüft werden. Wenn die Prüfsummen übereinstimmen, ist es nahezu sicher, dass die Daten identisch sind. Somit kann das DBMS 110 durch Ermitteln einer Prüfsumme für jede ausgewählte Seite im Tabellenbereich der Primärdatenbank 115 zusammen mit einer Prüfsumme für jede entsprechende Seite im Tabellenbereich der Standby-Datenbank 117 sowie Vergleichen der entsprechenden Prüfsummenwerte überprüfen, ob die Standby-Datenbank 117 eine exakte Kopie der Primärdatenbank 115 darstellt.
  • Dementsprechend stellt das DBMS 110 in Schritt 360 den Schreibzugriff auf die Seite wieder her. Das heißt, nach Berechnen der Prüfsummenwerte wird der Schreibzugriff wiederhergestellt, was es nachfolgenden Datenbanktransaktionen erlaubt, die Seiten zu modifizieren. In Schritt 370 schreibt das DBMS 110 Prüfsummenwerte, Seitenkennzeichnerdaten und einen Transaktionskennzeichner in das Transaktionsprotokoll 112. Der Transaktionskennzeichner kann einen Zeitstempel oder einen Protokollsequenzkennzeichner beinhalten, mit denen die Integrität der Zeiterfassung innerhalb des Systems aufrechterhalten wird. Durch Einbeziehen des Transaktionskennzeichners wird der Punkt, bis zu dem die Überprüfung durchgeführt wurde, als ein bestimmter Zeitpunkt oder eine bestimmte Sequenznummer angegeben. Der Transaktionskennzeichner stellt zudem sicher, dass bei den Prüfsummen- und Vergleichsoperationen die richtigen Transaktionsprotokolle verwendet werden. In manchen Ausführungsformen kann für einen Satz von Seiten, deren Prüfsummen berechnet wurden, ein einziges Transaktionsprotokoll erzeugt werden, wobei jeder Seitenkennzeichner zusammen mit der berechneten Prüfsumme in das Transaktionsprotokoll geschrieben wird. In manchen anderen Ausführungsformen kann für jede Seite, deren Prüfsumme berechnet wurde, ein eigenes Transaktionsprotokoll erzeugt werden. In Schritt 380 ermittelt das DBMS 110, ob für weitere aus dem Tabellenbereich ausgewählte Seiten eine Prüfsummenoperation durchgeführt werden muss. Falls ja, kehrt das Verfahren zu Schritt 330 zurück, um eine Prüfsumme für eine weitere Seite zu berechnen. Nach Abschluss endet Schritt 210.
  • 4 veranschaulicht gemäß einer Ausführungsform der Erfindung ein dem Schritt 230 entsprechendes Verfahren 400 zum Prüfen von Prüfsummen der Seiten in einem Tabellenbereich der Standby-Datenbank 117 gegen die in dem in Schritt 210 erzeugten Transaktionsprotokoll 112 gespeicherten Prüfsummen. Wie gezeigt, beginnt das Verfahren 400 mit Schritt 410, in dem das in Schritt 210 erzeugte Transaktionsprotokoll 112 durch die Standby-Datenbank 117 empfangen wird. Wiederum kann das Transaktionsprotokoll 112 einen Satz von Seitenkennzeichnern bereitstellen, die mit für jede Seite berechneten Prüfsummen in Beziehung stehen. 4 stellt Ausführungsformen dar, in denen ein einziges Transaktionsprotokoll für das Speichern von Prüfsummen für mehrere Seiten erzeugt wurde. Wie vorstehend erläutert, können in anderen Ausführungsformen separate Transaktionsprotokolle verwendet werden, wobei jedes Transaktionsprotokoll Prüfsummen für eine einzige Seite speichert. In diesen Ausführungsformen muss jedes separate Transaktionsprotokoll verarbeitet werden, um die darin enthaltenen Prüfsummenwerte zu vergleichen. In manchen Ausführungsformen kann das DBMS 110 überprüfen, ob für das Transaktionsprotokoll 112 im Gegensatz zu einer anderen Datenbankoperation ein Durchführen einer Überprüfung eines Satzes von Seiten vorgesehen ist. Nach dem Empfangen führt das DBMS 110 in Schritt 420 eine Prüfsummen-Überprüfung für jeden im Transaktionsprotokoll 112 enthaltenen Seitenkennzeichner durch. In Schritt 430 beginnt das DBMS 110 mit dem Ausführen einer die Schritte 430 bis 490 beinhaltenden Schleife zum Vergleichen der Prüfsummenwerte für jeden Seitenkennzeichner im Transaktionsprotokoll 112 mit der entsprechenden Seite in der Standby-Datenbank 117. In Schritt 430 sperrt das DBMS 110 den Schreibzugriff auf die entsprechende Seite in der Standby-Datenbank 117. Dann wird das Verfahren mit Schritt 440 fortgesetzt, in dem das DBMS 110 eine Prüfsumme der Seite in der Standby-Datenbank 117 berechnet. Nachdem die Prüfsumme berechnet wurde, stellt das DBMS 110 den Schreibzugriff auf die Seite in der Standby-Datenbank 117 wieder her. In Schritt 460 vergleicht das DBMS 110 die in Schritt 440 erzeugte Prüfsumme mit der Prüfsumme im Transaktionsprotokoll 112. Das Verfahren wird mit Schritt 470 fortgesetzt, in dem für den Fall, dass das DBMS 110 feststellt, dass die Prüfsummen gleich sind, das Verfahren mit Schritt 490 fortgesetzt wird. Falls die Prüfsummen nicht gleich sind, wird das Verfahren mit Schritt 480 fortgesetzt, in dem das DBMS 110 den Benutzer bezüglich einer Inkonsistenz zwischen den Seitendaten in der Primärdatenbank 115 und der Standby-Datenbank 117 warnt. Die Warnung kann jedes Format besitzen, das ausreicht, um den Benutzer zu benachrichtigen, dass während der Überprüfung eine mögliche Beeinträchtigung von Daten in der Standby-Kopie gefunden wurde, zusammen mit Einzelheiten der Beeinträchtigung. Zu Beispielen für Warnungen zählen E-Mail-Nachrichten, Popup-Nachrichten und Töne. Dann wird das Verfahren mit Schritt 490 fortgesetzt, in dem das Verfahren mit Schritt 420 fortgesetzt wird, wenn zusätzliche im Transaktionsprotokoll 112 angegebene Seiten gegen die Standby-Datenbank geprüft werden müssen. Nachdem die im Transaktionsprotokoll 112 identifizierten Seiten überprüft wurden, endet das Verfahren 400.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren 400 zudem Selbstkonsistenzprüfungen an der Standby-Datenbank 117. Allgemein handelt es sich bei den Selbstkonsistenzprüfungen um bekannte Dateisystemprüfungen und Prüfungen der Integrität von Daten. Zum Beispiel kann eine Selbstkonsistenzprüfung beinhalten, dass das DBMS 110 den Lesezugriff auf die Standby-Datenbank überprüft, Datenträgerfehler erkennt, sicherstellt, dass Zeiger korrekt verweisen, und andere Maßzahlen der Systemzustands überwacht. Die Selbstkonsistenzprüfungen können so geplant werden, dass sie in variierenden Intervallen ausgeführt werden, wie beispielsweise jede n-te Iteration des Verfahrens 400 oder in einem festgelegten Zeitintervall, und sie können auf eine bestimmte Anzahl von Seiten begrenzt sein oder alle Seiten einer Spanne umfassen.
  • 5 zeigt ein Blockschaubild, das Komponenten 500 des DBMS 110 gemäß einer Ausführungsform der Erfindung veranschaulicht. Wie gezeigt, beinhaltet das DBMS 110 ohne Einschränkung eine Datenbank-Engine 500 und einen Replikationsverwalter 510. Die Datenbank-Engine 500 steuert die Standard-Datenbankfunktionalität, wie beispielsweise Lesevorgänge, Schreibvorgänge, Abfragen und andere Werkzeuge zur Datenbankverwaltung. Obwohl 5 das DBMS 110 als die Primärdatenbank 115 und die Standby-Datenbank 117 verwaltend darstellt, schließen Ausführungsformen der Erfindung auch ein eigenes DBMS für die Primärdatenbank 115 und die Standby-Datenbank 117 ein, wobei jedes DBMS seine eigene Instanz einer Datenbank-Engine 500 und eines Replikationsverwalters 510 besitzt. Bei dem Replikationsverwalter 510 handelt es sich um eine Anwendung, die so eingerichtet ist, dass sie überprüfen kann, ob eine Standby-Datenbank mit einer Primärdatenbank in einer physischen Datenbank-Replikationsumgebung mit Protokollversand synchronisiert ist, während die Standby-Datenbank online ist. In einer Ausführungsform ist beabsichtigt, dass der Überprüfungsprozess des Replikationsverwalters 510 als Teil einer bereits vorhandenen Protokollwiedergabekomponente (log replay component) des DBMS 110 durchgeführt wird, um wie vorstehend beschrieben Protokollwiedergaben (Replikation) über Protokollversand durchzuführen. In solch einer Ausführungsform verbessert der Replikationsverwalter 510 das DBMS 110 durch Hinzufügen von Logik zum Verarbeiten neuer überprüfungs-Protokolldatensätze, indem sichergestellt wird, dass frühere Wiedergaben für die betreffenden Seiten beendet wurden und dann die nachstehend beschriebene Validierung durchgeführt wird.
  • In einer Ausführungsform ist der Replikationsverwalter 510 so eingerichtet, dass er eine Reihe der vorstehend detailliert beschriebenen Operationen durchführen kann, um eine Standby-Datenbank in einer physischen Datenbank-Replikationsumgebung mit Protokollversand zu überprüfen, während die Standby-Datenbank online ist. In einer Ausführungsform wählt der Replikationsverwalter 510 einen Satz von Seiten in der Primärdatenbank aus und erzeugt ein Transaktionsprotokoll, das für jede ausgewählte Seite zu einem bestimmten Zeitpunkt oder in einer bestimmten Folge berechnete Prüfsummenwerte enthält. Dann verwendet der Replikationsverwalter 510 die Daten im Transaktionsprotokoll, um die Standby-Datenbank zu überprüfen. In einer Ausführungsform berechnet der Replikationsverwalter 510 einen Prüfsummenwert für jede Seite in der Standby-Datenbank und vergleicht ihn mit dem entsprechenden Wert im Transaktionsprotokoll, um die Standby-Datenbank zu überprüfen. In einer Ausführungsform wird ein Benutzer durch den Replikationsverwalter 510 gewarnt, wenn für Seiten in der Standby-Datenbank berechnete Prüfsummenwerte nicht mit den entsprechenden Werten in der Primärdatenbank übereinstimmen. In einer Ausführungsform überprüft der Replikationsverwalter 510, ob die Standby-Datenbank mit der Primärdatenbank synchronisiert ist, wenn der für jede Seite der Standby-Datenbank berechnete Prüfsummenwert mit dem entsprechenden Prüfsummenwert für jede Seite der Primärdatenbank übereinstimmt. In manchen Ausführungsformen führt der Replikationsverwalter während des Überprüfens der Standby-Datenbank Selbstkonsistenzprüfungen an der Standby-Datenbank durch.
  • 6 zeigt ein Blockschaubild, das in dem in Schritt 210 von 2 erzeugten Transaktionsprotokoll enthaltene Datensätze gemäß einer Ausführungsform der Erfindung veranschaulicht. Wie gezeigt, enthält jeder Datensatz 6101 bis N einen Seitenkennzeichner 620, einen Prüfsummenwert 630 und einen Zeitstempel 640. Wie vorstehend angegeben, kann jeder interne Mechanismus zum Unterhalten der Zeiterfassung/Sequenzierung anstelle des Zeitstempels 640 realisiert werden. Für jeden Datensatz 6101 bis N im Transaktionsprotokoll wird für die P1 bis N entsprechende Seite in der Standby-Datenbank 117 eine Prüfsumme berechnet, die dann mit einem Prüfsummenwert C1 bis N verglichen wird, was ein T1 bis N entsprechendes Prüfergebnis erzeugt.
  • Somit erlauben Ausführungsformen der Erfindung ein Vergleichen und Validieren der Standby-Datenbank, während diese online ist. Dieser Ansatz macht das Erfordernis, die Primärdatenbank (auch nur zeitweise) ruhen zu lassen und/oder einen datenbankweiten Konsistenzpunkt in der Primär- oder Standby-Datenbank zu erzwingen, überflüssig. Weiterhin erfordert dieser Ansatz nicht, die Standby-Datenbank offline zu nehmen, die Standby-Datenbank in eine Primärdatenbank umzuwandeln oder einen Schnappschuss der Standby-Datenbank anzufertigen, um eine vollständige Validierung und einen vollständigen Vergleich zwischen der Primär- und der Standby-Kopie der Datenbank durchzuführen. Durch Verwenden des Datenbankprotokolls wie hierin beschrieben kann solch ein Vergleich trotz der Tatsache, dass die Primär- und die Standby-Kopie der Datenbank niemals gleichzeitig exakt denselben Zeitpunkt wiedergeben, online durchgeführt werden. Stattdessen stellt das Datenbankprotokoll einen gleitenden Prozess zum Überprüfen der Synchronisation bereit, wenn Transaktionen auftreten und durch die Primär- und Standby-Kopie verarbeitet werden. Das heißt, der Standby-Synchronisationszustand wird in der Reihenfolge des Datenbankprotokolls bewertet, so dass die Bewertung exakt dann auftritt, wenn die Inhalte der Standby-Datenbank mit den Inhalten übereinstimmt, welche die Primärdatenbank zu dem Zeitpunkt aufwies, zu dem der Protokolldatensatz (und die Prüfsummenoperation) in der Primärdatenbank auftraten. Dies kann hinsichtlich der realen Prozesslaufzeit Sekundenbruchteile bis Stunden auseinander liegen, ist jedoch im Hinblick auf die Datenbankverlaufszeit, wie sie das in der Primärdatenbank erzeugte Datenbankprotokoll wiedergibt, gleichzeitig.
  • Während das Vorhergehende auf Ausführungsformen der vorliegenden Erfindung gerichtet ist, können andere und weitere Ausführungsformen der Erfindung entwickelt werden, ohne von deren grundlegendem Umfang abzuweichen, wobei deren Umfang durch die folgenden Ansprüche bestimmt wird.

Claims (15)

  1. Computer implementiertes Verfahren, aufweisend: durch Betrieb eines oder mehrerer Computerprozessoren ermitteln, ob eine Standby-Datenbank mit einer Primärdatenbank in einer physischen Datenbank-Replikationsumgebung synchronisiert ist, aufweisend: Empfangen eines Transaktionsprotokolls von der Primärdatenbank durch die Standby-Datenbank, wobei das Transaktionsprotokoll einen oder mehrere erste Prüfsummenwerte für einen ersten Satz von Seiten in der Primärdatenbank angibt; Berechnen eines oder mehrerer zweiter Prüfsummenwerte für einen zweiten Satz von Seiten in der Standby-Datenbank, wobei jede Seite des zweiten Satzes von Seiten von der Standby-Datenbank einer Seite in der Primärdatenbank entspricht, und Vergleichen jedes des einen oder der mehreren ersten Prüfsummenwerte mit jedem des einen oder der mehreren zweiten Prüfsummenwerte, um zu ermitteln, ob die Standby-Datenbank mit der Primärdatenbank synchronisiert ist.
  2. Computer implementiertes Verfahren nach Anspruch 1, wobei die Standby-Datenbank mit der Primärdatenbank synchronisiert ist, wenn der Prüfsummenwert für jede der Seiten in der Primärdatenbank mit dem Prüfsummenwert für jede entsprechende Seite in der Standby-Datenbank übereinstimmt.
  3. Computer implementiertes Verfahren nach Anspruch 2, weiterhin aufweisend: Erzeugen einer Warnung bei Ermitteln, dass die Standby-Datenbank nicht mit der Primärdatenbank synchronisiert ist.
  4. Computer implementiertes Verfahren nach Anspruch 1, weiterhin aufweisend ein Durchführen mindestens einer Selbstkonsistenzprüfung an der Standby-Datenbank in Verbindung mit dem Berechnen der einen oder mehreren zweiten Prüfsummenwerte.
  5. Computer implementiertes Verfahren nach Anspruch 1, weiterhin aufweisend: Auswählen eines Tabellenbereiches der Primärdatenbank; Auswählen einer oder mehrerer Seiten im Tabellenbereich; Sperren des Schreibzugriffs auf die eine oder mehreren Seiten; Berechnen eines Prüfsummenwerts für jede der einen oder mehreren Seiten; Wiederherstellen des Schreibzugriffs auf die eine oder mehreren Seiten; und Schreiben eines Seitenkennzeichners für jede ausgewählte Seite im Primärtabellenbereich, des entsprechenden Prüfsummenwertes und eines Transaktionsprotokollkennzeichners in das Transaktionsprotokoll.
  6. Computer implementiertes Verfahren nach Anspruch 1, wobei das Erzeugen des einen oder der mehreren zweiten Prüfsummenwerte aufweist: Lesen jedes Seitenkennzeichners im Transaktionsprotokoll; Auswählen von Seiten im Tabellenbereich der Standby-Datenbank, die den Seitenkennzeichnern im Transaktionsprotokoll entsprechen; Sperren eines Schreibzugriffs auf die ausgewählten Seiten; Berechnen eines Prüfsummenwertes für jede ausgewählte Seite; und Wiederherstellen des Schreibzugriffs auf die ausgewählten Seiten;
  7. Computerprogrammprodukt, aufweisend: ein computerlesbares Speichermedium, mit darauf ausgebildetem computerlesbarem Programmcode, wobei der computerlesbare Programmcode aufweist: computerlesbaren Programmcode, der so eingerichtet ist, dass ein Transaktionsprotokoll von der Primärdatenbank durch die Standby-Datenbank empfangbar ist, wobei das Transaktionsprotokoll einen oder mehrere erste Prüfsummenwerte für einen ersten Satz von Seiten in der Primärdatenbank angibt; computerlesbaren Programmcode, der so eingerichtet ist, dass ein oder mehrere zweite Prüfsummenwerte für einen zweiten Satz von Seiten in der Primärdatenbank berechenbar sind; und computerlesbaren Programmcode, der so eingerichtet ist, dass jeder des einen oder der mehreren ersten Prüfsummenwerte mit jedem des einen oder der mehreren zweiten Prüfsummenwerte vergleichbar ist, um zu ermitteln, ob die Standby-Datenbank mit der Primärdatenbank synchronisiert ist.
  8. Computerprogrammprodukt nach Anspruch 7, wobei die Standby-Datenbank mit der Primärdatenbank synchronisiert ist, wenn der Prüfsummenwert für jede der Seiten in der Primärdatenbank mit dem Prüfsummenwert für jede entsprechende Seite in der Standby-Datenbank übereinstimmt, und/oder wobei das Computerprogrammprodukt weiterhin ein Durchführen mindestens einer Selbstkonsistenzprüfung an der Standby-Datenbank in Verbindung mit dem Berechnen des einen oder der mehreren zweiten Prüfsummenwerte aufweist, und/oder wobei das Computerprogrammprodukt weiterhin aufweist: computerlesbaren Programmcode, der so eingerichtet ist, dass ein Transaktionsprotokoll für die Primardatenbank erstellbar ist, aufweisend: computerlesbaren Programmcode, der so eingerichtet ist, dass ein Tabellenbereich der Primardatenbank auswählbar ist; computerlesbaren Programmcode, der so eingerichtet ist, dass eine oder mehrere Seiten im Tabellenbereich auswählbar sind; computerlesbaren Programmcode, der so eingerichtet ist, dass der Schreibzugriff auf die eine oder mehreren Seiten sperrbar ist; computerlesbaren Programmcode, der so eingerichtet ist, dass ein Prüfsummenwert für jede der einen oder mehreren Seiten berechenbar ist; computerlesbaren Programmcode, der so eingerichtet ist, dass der Schreibzugriff auf die eine oder mehreren Seiten wiederherstellbar ist; und computerlesbaren Programmcode, der so eingerichtet ist, dass ein Seitenkennzeichner für jede ausgewählte Seite im Primärtabellenbereich, der entsprechende Prüfsummenwert und ein Transaktionsprotokollkennzeichner in das Transaktionsprotokoll schreibbar sind, und/oder wobei das Computerprogrammprodukt weiterhin aufweist: computerlesbaren Programmcode, der so eingerichtet ist, dass ein oder mehrere zweite Prüfsummenwerte berechenbar sind, aufweisend: computerlesbaren Programmcode, der so eingerichtet ist, dass jeder Seitenkennzeichner im Transaktionsprotokoll lesbar ist; computerlesbaren Programmcode, der so eingerichtet ist, dass den Seitenkennzeichnern im Transaktionsprotokoll entsprechende Seiten im Tabellenbereich der Standby-Datenbank auswählbar sind; computerlesbaren Programmcode, der so eingerichtet ist, dass der Schreibzugriff auf die ausgewählten Seiten sperrbar ist; computerlesbaren Programmcode, der so eingerichtet ist, dass ein Prüfsummenwert für jede der ausgewählten Seiten berechenbar ist; computerlesbaren Programmcode, der so eingerichtet ist, dass der Schreibzugriff auf die ausgewählten Seiten wiederherstellbar ist;
  9. Computerprogrammprodukt nach Anspruch 8, weiterhin aufweisend: Erzeugen einer Warnung bei Ermitteln, dass die Standby-Datenbank nicht mit der Primärdatenbank synchronisiert ist.
  10. System, aufweisend: einen oder mehrere Computerprozessoren; und einen Speicher, der ein Programm enthält, das bei Ausführen durch den einen oder die mehreren Computerprozessoren so eingerichtet ist, dass eine Operation durchführbar ist, aufweisend: Empfangen eines Transaktionsprotokolls von der Primärdatenbank durch die Standby-Datenbank, wobei das Transaktionsprotokoll einen oder mehrere erste Prüfsummenwerte für einen ersten Satz von Seiten in der Primärdatenbank angibt; Berechnen eines oder mehrerer zweiter Prüfsummenwerte für einen zweiten Satz von Seiten in der Standby-Datenbank, wobei jede Seite des zweiten Satzes von Seiten von der Standby-Datenbank einer Seite in der Primärdatenbank entspricht; und Vergleichen jedes des einen oder der mehreren ersten Prüfsummenwerte mit jedem des einen oder der mehreren zweiten Prüfsummenwerte, um zu ermitteln, ob die Standby-Datenbank mit der Primärdatenbank synchronisiert ist.
  11. System nach Anspruch 10, wobei die Standby-Datenbank mit der Primärdatenbank synchronisiert ist, wenn der Prüfsummenwert für jede der Seiten in der Primärdatenbank mit dem Prüfsummenwert für jede entsprechende Seite in der Standby-Datenbank übereinstimmt.
  12. System nach Anspruch 11, weiterhin aufweisend: Erzeugen einer Warnung bei Ermitteln, dass die Standby-Datenbank nicht mit der Primärdatenbank synchronisiert ist.
  13. System nach Anspruch 10, weiterhin aufweisend ein Durchführen mindestens einer Selbstkonsistenzprüfung an der Standby-Datenbank in Verbindung mit dem Berechnen des einen oder mehreren zweiten Prüfsummenwerte.
  14. System nach Anspruch 10, wobei die Operation weiterhin aufweist: Auswählen eines Tabellenbereiches der Primärdatenbank; Auswählen einer oder mehrerer Seiten im Tabellenbereich; Sperren des Schreibzugriffs auf die eine oder mehreren Seiten; Berechnen eines Prüfsummenwerts für jede der einen oder mehreren Seiten; Wiederherstellen des Schreibzugriffs auf die eine oder mehreren Seiten; und Schreiben eines Seitenkennzeichners für jede ausgewählte Seite im Primärtabellenbereich, des entsprechenden Prüfsummenwertes und eines Transaktionsprotokollkennzeichners in das Transaktionsprotokoll.
  15. System nach Anspruch 10, wobei das Erzeugen des einen oder der mehreren zweiten Prüfsummenwerte aufweist: Lesen jedes Seitenkennzeichners im Transaktionsprotokoll; Auswählen von Seiten im Tabellenbereich der Standby-Datenbank, die den Seitenkennzeichnern im Transaktionsprotokoll entsprechen; Sperren des Schreibzugriffs auf die ausgewählten Seiten; Berechnen eines Prüfsummenwertes für jede ausgewählte Seite; und Wiederherstellen des Schreibzugriffs auf die ausgewählten Seiten.
DE102013201174A 2012-01-30 2013-01-24 Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand Pending DE102013201174A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/360,962 2012-01-30
US13/360,962 US20130198134A1 (en) 2012-01-30 2012-01-30 Online verification of a standby database in log shipping physical replication environments

Publications (1)

Publication Number Publication Date
DE102013201174A1 true DE102013201174A1 (de) 2013-08-01

Family

ID=47748066

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013201174A Pending DE102013201174A1 (de) 2012-01-30 2013-01-24 Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand

Country Status (4)

Country Link
US (2) US20130198134A1 (de)
CN (1) CN103294752B (de)
DE (1) DE102013201174A1 (de)
GB (1) GB2500085B (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101352959B1 (ko) * 2011-12-09 2014-01-21 주식회사 알티베이스 메인메모리 데이터베이스 관리 시스템의 액티브 노드 및 스탠바이 노드의 데이터베이스 관리 장치 및 방법
US10108496B2 (en) * 2014-06-30 2018-10-23 International Business Machines Corporation Use of replicated copies to improve database backup performance
US20170193004A1 (en) * 2014-07-22 2017-07-06 Hewlett Packard Enterprise Development Lp Ensuring data integrity of a retained file upon replication
US9678799B2 (en) 2015-02-12 2017-06-13 International Business Machines Corporation Dynamic correlated operation management for a distributed computing system
CN105138441B (zh) * 2015-06-30 2018-05-08 中标软件有限公司 高可用集群系统及基于该系统的告警方法、告警系统
US10162721B2 (en) * 2016-11-28 2018-12-25 Sap Se Workload shifting in a database system using hint-based routing
CN108920563B (zh) * 2018-06-21 2021-07-30 创新先进技术有限公司 一种数据库切换方法及装置
CN109254998B (zh) * 2018-09-04 2021-06-15 中国联合网络通信集团有限公司 数据管理方法、物联网设备、数据库服务器及系统
US11044312B2 (en) * 2018-09-21 2021-06-22 Microsoft Technology Licensing, Llc Storage segment server covered cache
CN112114839A (zh) * 2019-06-20 2020-12-22 上海安吉星信息服务有限公司 一种备用环境快速升级的方法和系统
US11321354B2 (en) * 2019-10-01 2022-05-03 Huawei Technologies Co., Ltd. System, computing node and method for processing write requests
CN112699177A (zh) * 2019-10-22 2021-04-23 中国移动通信集团安徽有限公司 一种流量话单数据同步方法、系统、计算设备和存储介质
US20240070167A1 (en) * 2022-08-23 2024-02-29 International Business Machines Corporation Tracing data in complex replication system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765172A (en) * 1996-01-23 1998-06-09 Dsc Communications Corporation System and method for verifying integrity of replicated databases
JP4295326B2 (ja) * 2007-01-10 2009-07-15 株式会社日立製作所 計算機システム
US7895501B2 (en) * 2007-02-06 2011-02-22 Vision Solutions, Inc. Method for auditing data integrity in a high availability database
US8504517B2 (en) * 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8762336B2 (en) * 2011-05-23 2014-06-24 Microsoft Corporation Geo-verification and repair
US9600513B2 (en) * 2011-06-09 2017-03-21 International Business Machines Corporation Database table comparison

Also Published As

Publication number Publication date
CN103294752A (zh) 2013-09-11
GB2500085B (en) 2014-07-30
GB2500085A (en) 2013-09-11
CN103294752B (zh) 2017-04-26
GB201300237D0 (en) 2013-02-20
US20130246358A1 (en) 2013-09-19
US20130198134A1 (en) 2013-08-01

Similar Documents

Publication Publication Date Title
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE102013208930B4 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE112017007224T5 (de) Momentaufnahmen-Verwaltung in einer Blockchain
DE102016103769A1 (de) Inkrementelle Replikation eines Quellen-Datasets
DE202012013462U1 (de) Datenverarbeitung in einem Mapreduce-Framework
DE112014001873T5 (de) Replikation für Hot-Standby-Online-Datenbank
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE112010004931T5 (de) Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten(
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE112014002275T5 (de) Datenbankverwaltungssystem und -verfahren
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112019000143T5 (de) Versionierungsvalidierung für die datenübertragung zwischen heterogenen datenspeichern
DE112008004014T5 (de) Analysieren von Serverkopien von Clientdateien
DE112013000713T5 (de) Verfolgen von Änderungen in Zusammenhang mit einer Sammlung von Dokumenten
DE102007046947B4 (de) System und Verfahren zum Verwalten von Systemmanagement-Interrupts in einem Mehrprozessor-Computersystem
DE112015000384T5 (de) Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem
DE112019006676T5 (de) Blockchaintechnologie zur Regelung der Datenintegrität und zum Existenzbeweis bei Datenschutzsystemen
DE112011103367T5 (de) Replizieren von Daten
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien
DE102004025264A1 (de) Datenverarbeitungseinrichtung und Verfahren zur Wiederherstellung eines Betriebszustandes
DE112018005620T5 (de) Auftragsverwaltung in einem datenverarbeitungssystem
US9015116B2 (en) Consistent replication of transactional updates
DE112012000780B4 (de) Verarbeiten von Berechtigungsprüfungsdaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE

Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELL, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R084 Declaration of willingness to licence