DE69807077T2 - Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten - Google Patents

Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten

Info

Publication number
DE69807077T2
DE69807077T2 DE69807077T DE69807077T DE69807077T2 DE 69807077 T2 DE69807077 T2 DE 69807077T2 DE 69807077 T DE69807077 T DE 69807077T DE 69807077 T DE69807077 T DE 69807077T DE 69807077 T2 DE69807077 T2 DE 69807077T2
Authority
DE
Germany
Prior art keywords
processing node
data
processing
database
node
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.)
Expired - Lifetime
Application number
DE69807077T
Other languages
English (en)
Other versions
DE69807077D1 (de
Inventor
Manuel Dias
Deep Jhingran
Pervin King
Christos Polyzois
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
Application granted granted Critical
Publication of DE69807077D1 publication Critical patent/DE69807077D1/de
Publication of DE69807077T2 publication Critical patent/DE69807077T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/2046Error 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 where the redundant components share persistent storage
    • 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/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

    Technisches Gebiet
  • Diese Erfindung betrifft Computerdatenbank- Verarbeitungssysteme. Insbesondere betrifft diese Erfindung das Beheben eines Fehlerzustands von einem Verarbeitungsknoten in einem Datenbankverarbeitungssystem mit nicht global erreichbaren Daten.
  • Grundlagen der Erfindung
  • Moderne Computersysteme beinhalten häufig mehrere einzelne Prozessoren, die über ein Kommunikationsnetz miteinander verbunden sind. In solchen System werden oftmals große Informationsmengen gespeichert und verarbeitet. Außer den Verarbeitungsvorrichtungen weist jeder Knoten normalerweise digitale Speichereinheiten (z. B. Magnetplatten) zum Speichern der Informationen auf. Die Informationen werden oftmals als Datenbank angeordnet, die den verfügbaren Speicherplatz in den verschiedenen Knoten im System belegt.
  • Die Verfahren, die zum Anordnen der benötigten Speicherung der Datenbank und zum Zugreifen auf die Datenbank verwendet werden, hängen in einem Computersystem mit mehreren Knoten von den Anforderungen an das spezifische System ab. Bestimmte Anforderungen haben jedoch die meisten Systeme gemeinsam. Alle Daten in der Datenbank müssen für den Zugriff von jedem Knoten im System aus verfügbar sein. Der Umfang von Speicherplatzbedarf und Verarbeitungsaufwand muss so gering wie möglich gehalten werden, um einen leistungsfähigen Betrieb des Systems zu ermöglichen, und die Speicher-/Zugriffsstrategie muss im Allgemeinen widerstandsfähig gegen Fehler sein, die an irgendeinem Knoten auftreten.
  • In modernen Systemen werden zwei allgemeine Verfahren zur Datenbankspeicherung oder -partitionierung verwendet. Das erste, die gemeinsame Nutzung von Daten, beinhaltet die Bereitstellung des physischen Zugriffs auf alle Platten von jedem Knoten im System aus. Zur Aufrechterhaltung einer Kohärenz der Datenbank sind jedoch globale Sperr- (locking) oder Änderungslisten notwendig, um sicherzustellen, dass nicht zwei Knoten einen Teil der Datenbank widersprüchlich ändern.
  • Das zweite Verfahren der Datenspeicherung beinhaltet das physische Partitionieren der Daten und das Verteilen der sich ergebenden Partitionen auf zuständige Knoten oder Eignerknoten im System, die für Transaktionen zuständig werden, die ihre eigenen entsprechenden Partitionen beinhalten.
  • Diese Architektur "mit nicht global erreichbaren Daten" ("shared nothing" architecture) erfordert einen zusätzlichen Kommunikationsaufwand, um allen Knoten einen Zugriff auf alle Daten anzubieten. Ein anfordernder Knoten muss Datenbankanforderungen an den Eignerknoten ausgeben. Der Eignerknoten führt sodann (i) die angeforderte Datenbankanforderung in Bezug auf seine entsprechende Partition aus (d. h. Funktionsverlagerung (function shipping)) oder (ii) überträgt die Daten selbst an den anfordernden Knoten (d. h. E/A-Verlagerung (I/O shipping)).
  • Ein Problem bei der Vorgehensweise mit nicht global erreichbaren Daten ist die Möglichkeit eines Fehlers in irgendeinem Knoten und die sich ergebende Unfähigkeit dieses Knotens zum Annehmen oder Verarbeiten von Datenbankanforderungen in Bezug auf seine Partition.
  • Gegenwärtig sind zwei grundsätzliche Verfahren zum Beheben eines Fehlerzustands eines Knotens in einem Datenbanksystem mit nicht global erreichbaren Daten bekannt: (i) die asynchrone Vervielfältigung (asynchronous replication), wobei Aktualisierungen an den Daten asynchron an eine Kopie übertragen werden (siehe z. B. "An Efficient Scheme for Providing High Availability", A. Bhide, A. Goyal, H. Hsaio und A. Jhingran, SIGMOD '92, Seiten 236 bis 245; und (ii) eine Wiederherstellung in einem Buddy-Knoten, mit dem Platten des fehlerhaften Knotens jeweils physisch verbunden sind. Die physische Verbindung (Twin-tailing) von Platteneinheiten mit Buddy-Verarbeitungsknoten ist nach dem Stand der Technik bekannt und beinhaltet eine physische Verbindung zwischen einer einzelnen Platte und mehr als einem Verarbeitungsknoten. In einem Modus der physischen Verbindung ist nur ein Knoten aktiv und greift zu irgendeinem Zeitpunkt auf die Platte zu. In einem anderen Modus der physischen Verbindung wird beiden Knoten der gleichzeitige Zugriff auf die Platte gestattet, und zur Verhinderung einer Datenverstümmelung werden Protokolle zur Konfliktvermeidung/-lösung verwendet.
  • Der Hauptvorteil des Verfahrens (i) ist, dass eine Behebung von Fehlerzuständen von Platten oder Knoten möglich ist, die Hauptnachteile dieses Verfahrens bestehen jedoch in der Spiegelung von Daten, wobei die doppelte Plattenkapazität verbraucht wird, und im Systemaufwand zur Weiterleitung von Daten an die Kopie während des normalen fehlerfreien Betriebs. Der Hauptvorteil des Verfahrens (ii) ist, dass während normaler Arbeitsgänge kein Systemaufwand nötig ist, der Hauptnachteil besteht jedoch darin, dass dem Buddy-Knoten nach einem Fehler die doppelte Belastung auferlegt wird und dies zu einer Halbierung des Durchsatzes für die gesamte Zuordnungseinheit (cluster) führen kann, da Anfrageabtastungen oder Transaktionsfunktionsaufrufe an den Buddy-Knoten des fehlerhaften Knotens zum Engpass für die gesamte Zuordnungseinheit werden.
  • Das Dokument EP-709779 zum Stand der Technik beschreibt ein Datenbanksystem mit physisch verbundenen Platten. Falls ein Fehler im primären Knoten auftritt, werden die Anwendungen, die er ausführte, zum sekundären Knoten übertragen, und alle Plattenanforderungen werden dementsprechend umgeleitet.
  • Daher wird ein Verfahren zum Beheben eines Fehlerzustands von einem Verarbeitungsknoten in einem Datenbankverarbeitungssystem mit nicht global erreichbaren Daten benötigt, das weder einen merklichen Verarbeitungsmehraufwand während des normalen Betriebs noch einen zusätzlichen Speicherplatzbedarf für die komplette Datenvervielfältigung mit sich bringt.
  • Zusammenfassung der Erfindung
  • Die Erfindung, wie sie durch die unabhängigen Ansprüche definiert wird, stellt ein Verfahren zum Beheben eines Fehlerzustands von einem Verarbeitungsknoten bereit, das unter einem Aspekt ein Verfahren und System zum Beheben eines Fehlerzustands eines ersten Verarbeitungsknotens in einem Datenbankverarbeitungssystem mit einer Vielzahl von Knoten bereitstellt. Im ersten Verarbeitungsknoten wird vor seinem Fehler eine erste Datenbankinstanz ausgeführt. Eine erste Speichereinheit zum Speichern von ersten Daten für die erste Datenbankinstanz ist jeweils mit dem ersten Verarbeitungsknoten und dem zweiten Verarbeitungsknoten verbunden. Nach dem Erkennen eines Fehlers des ersten Verarbeitungsknotens wird der Zugriff auf die ersten Daten für einen dritten Verarbeitungsknoten durch den zweiten Verarbeitungsknoten über ein Dienstprogramm bereitgestellt, von dem zumindest ein Teil im zweiten Verarbeitungsknoten ausgeführt wird. Die erste Datenbankinstanz wird sodann im dritten Verarbeitungsknoten ausgeführt, der durch den zweiten Verarbeitungsknoten auf die ersten Daten in der ersten Speichereinheit zugreift. Eine Behebung des Fehlerzustands des ersten Verarbeitungsknotens wird daher unter Verwendung von Reservekapazität des dritten Verarbeitungsknotens bereitgestellt.
  • In einer geänderten Ausführungsform werden die ersten Daten aus der ersten Speichereinheit in eine zweite Speichereinheit kopiert, die mit dem dritten Verarbeitungsknoten verbunden ist. Wenn die erste Datenbankinstanz im dritten Verarbeitungsknoten ausgeführt wird, können nachfolgende Aktualisierungen an der ersten Datenbankinstanz auf die erste Speichereinheit und die kopierten Daten in der zweiten Speichereinheit gespiegelt werden. Nach einem Neustart des ersten Verarbeitungsknotens kann dieser als Reserveverarbeitungsknoten im System für nachfolgende Knotenfehler bezeichnet werden.
  • Die erste Speichereinheit kann zwei Speichereinheiten umfassen, die jeweils mit dem ersten und zweiten Verarbeitungsknoten physisch verbunden sind.
  • Der Zugriff auf die ersten Daten durch den zweiten Verarbeitungsknoten beinhaltet vorzugsweise die Verwendung eines Dienstprogramms für gemeinsam genutzte virtuelle Platten mit einem Serverteil im zweiten Verarbeitungsknoten und einem Clientteil im dritten Verarbeitungsknoten.
  • Da im zweiten Verarbeitungsknoten außerdem eine eigene Datenbankinstanz ausgeführt werden kann, kann der Zugriff auf die zweiten Daten für die zweite Datenbankinstanz durch den zweiten Verarbeitungsknoten einem vierten Verarbeitungsknoten bereitgestellt werden. In diesem Fall kann die zweite Datenbankinstanz anschließend im vierten Verarbeitungsknoten ausgeführt werden, indem durch den zweiten Verarbeitungsknoten auf die zweiten Daten in der ersten Speichereinheit zugegriffen wird. Der zweite Verarbeitungsknoten würde daher nur benötigt, um einen darin befindlichen Serverteil zu unterstützen, und die Verarbeitung der Datenbankinstanz kann vollständig vom zweiten Verarbeitungsknoten zum dritten und vierten Verarbeitungsknoten ausgelagert werden, in denen entsprechende Clientteile des Dienstprogramms für gemeinsam genutzte virtuelle Platten ausgeführt werden.
  • Zusätzliche Ausführungsformen und Änderungen an diesen Verfahren werden hierin beschrieben, darunter die Wiederherstellung der ersten Datenbankinstanz im zweiten Verarbeitungsknoten, während der ein Versuch zum erneuten Starten des ersten Verarbeitungsknotens unternommen wird. Falls der Versuch zu einem erfolgreichen Neustart führt, wird die erste Datenbankinstanz im ersten Verarbeitungsknoten erneut gestartet. Falls der Versuch nicht zu einem erfolgreichen Neustart führt, wird die Datenbankinstanz im zweiten Verarbeitungsknoten oder einem Reserveverarbeitungsknoten gestartet, wie oben erläutert wird.
  • Die vorliegende Erfindung stellt daher ein leistungsfähiges Fehlerbehebungsverfahren in einem Datenbankverarbeitungssystem mit nichtglobal erreichbaren Daten bereit, das während des normalen Betriebs keinen merklichen Verarbeitungsmehraufwand oder zusätzlichen Speicherplatzbedarf für die vollständige Datenreplikation mit sich bringt.
  • Kurze Beschreibung der Zeichnungen
  • Die vorliegende Erfindung wird beispielhaft ausführlicher beschrieben, wobei auf die begleitenden Zeichnungen Bezug genommen wird, in denen:
  • Fig. 1 ein Datenbankverarbeitungssystem mit einer Vielzahl von Verarbeitungsknoten, zwei Reserveverarbeitungsknoten und Speichereinheiten darstellt, die mit mindestens einigen der Verarbeitungsknoten verbunden sind;
  • Fig. 2 eine erste Ausführungsform der vorliegenden Erfindung darstellt, wobei eine Datenbankinstanz nach einem Knotenfehler in einem der Reserveverarbeitungsknoten ausgeführt wird und auf Daten über ein Dienstprogramm für gemeinsam genutzte virtuelle Platten im Verarbeitungsknoten zugreift, mit dem eine Speichereinheit verbunden ist, die Daten für die Datenbankinstanz aufweist;
  • Fig. 3 ein Flussdiagramm der nach dem Fehler von einem der Knoten ausgeführten Fehlerbehebungsschritte ist;
  • Fig. 4 eine geänderte Ausführungsform der vorliegenden Erfindung ist, wobei zwei Datenbankinstanzen in zwei entsprechenden Reserveverarbeitungsknoten ausgeführt werden, von denen jeder auf einen Server für gemeinsam genutzte virtuelle Platten in einem anderen Verarbeitungsknoten zugreift, mit dem eine Speichereinheit mit Daten für die beiden Datenbankinstanzen verbunden ist;
  • Fig. 5 noch eine andere geänderte Ausführungsform der vorliegenden Erfindung ist, in der eine Kopie der Daten in Speichereinheiten in den früheren Reserveverarbeitungsknoten erstellt wird, um die Behebung künftiger Fehlerzustände von Knoten zu unterstützen;
  • Fig. 6 ein Flussdiagramm ist, das noch eine andere geänderte Ausführungsform der vorliegenden Erfindung darstellt, wobei ein Versuch zum Neustart des fehlerhaften Knotens von einer gleichzeitigen Wiederherstellung der Datenbankinstanz begleitet wird.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform(en)
  • Mit Bezugnahme auf Fig. 1 wird ein Datenbankverarbeitungssystem 10 mit einem Satz von Datenbankverarbeitungsknoten 20&sub1; bis 20n gezeigt, in denen jeweils eine entsprechende Datenbankinstanz DB&sub1; bis DBN normal ausgeführt wird. Ein geeignetes Netz (nicht gezeigt) stellt die Kommunikation zwischen den Knoten bereit. Die Platten 30k und 30k+1 sind unter Verwendung von Verbindungen 25 jeweils mit einem Buddy-Verarbeitungsknoten (buddy processing node) 20k und 20k+1 physisch verbunden. Hier wird eine beispielhafte Realisierung mit zwei physischen Verbindungen gezeigt, tatsächlich können die Platten jedoch mit mehreren Verarbeitungsknoten physisch verbunden werden. Fig. 1 zeigt daher den Knoten 20k als eine Datenbankinstanz DBk ausführend und seinen Buddy-Knoten 20k+1 als eine Datenbankinstanz DBk+1 ausführend.
  • Im Normalbetrieb werden die Platten logisch unter den Buddy- Knoten partitioniert, so dass einem Knoten ein Teil der physisch verbundenen Platten logisch zugeordnet wird und dem Buddy-Knoten der Rest. Es können einige zehn bis hin zu hunderten von Datenbankverarbeitungsknoten vorhanden sein. Außerdem wird ein Satz von Reserveverarbeitungsknoten 40&sub1;, 40&sub2; im System konfiguriert. Im System können mindestens ein, vorzugsweise zwei und möglicherweise mehr Reserveknoten vorhanden sein.
  • Das Verfahren der vorliegenden Erfindung zum Beheben eines Fehlerzustands von einem Verarbeitungsknoten wird in Fig. 2 dargestellt. Diese Figur veranschaulicht den Fall, wenn im Knoten 20k+1, in dem die Datenbankinstanz DBk+1 ausgeführt wurde, ein Fehler auftritt. Das Verfahren nach dem Stand der Technik (ii) (oben erläutert) würde die Datenbankinstanz DBk+1 im Buddy-Knoten 20k wiederherstellen, so dass der Knoten 20k nach einem Fehler beide Datenbankinstanzen DBk und DBk+1 ausführen würde. Wie oben erläutert wird, könnte dies zu einer doppelten Belastung im Knoten 20k mit einem sich ergebenden Leistungsverlust für das gesamte System führen. Fig. 2 veranschaulicht das beschriebene Verfahren zur Lösung dieses Problems: Nach einem Fehler wird die Datenbankinstanz DBk+1 in einem gesonderten Reserveverarbeitungsknoten 40&sub1; ausgeführt. Diese Datenbankinstanz muss noch immer auf dieselben Platten zugreifen können, die ihr vor dem Fehler logisch zugeordnet wurden. Wie in Fig. 2 dargestellt wird, werden die Platten, die sich in der logischen Partition des fehlerhaften Knotens 20k+1 befanden, nach einem Fehler mit Zugriff durch den Buddy- Knoten 20k über den Kommunikationspfad 50 über ein geeignetes Kommunikationsnetz (nicht gezeigt) neu konfiguriert. Dieser Zugriff wird beispielsweise durch ein (RVSD-) Dienstprogramm für wiederherstellbare gemeinsam genutzte virtuelle Platten bereitgestellt, das in der Patentanmeldung mit der Nummer 08/332157 mit dem Titel "Application-Transparent Recovery for Virtual Shared Disks" beschrieben wird. Bei einem Fehler eines Knotens schaltet RVSD transparent um, um über den Buddy-Knoten den Zugriff auf die Platten 30k und 30k+1 von einem beliebigen Knoten 20 im System aus bereitzustellen. Bei der Verfolgung der RVSD-Wiederherstellung wird die Datenbankinstanz DBk+1, die im fehlerhaften Knoten ausgeführt wurde, in einem der Ausweichknoten (backup nodes) 40&sub1; erneut gestartet. Der Instanz DBkel werden logisch dieselben Platten zugeordnet, und sie greift auf die Datenbankpartition der fehlerhaften Instanz zu, indem sie über einen RVSD-Clientteil im Knoten 40&sub1; Plattenlese/schreibanforderungen an einen Serverteil im Knoten 20k ausführt. Das RVSD-Dienstprogramm verlagert (ships) die Anforderungen transparent zum Knoten 20k und ruft die entsprechenden Daten ab.
  • Unter Verwendung des in Fig. 2 beschriebenen Verfahrens weist der Knoten 20k eine Belastung auf, die der Datenbankbelastung der Instanz DBk und der die Instanz DBk+1 im Knoten 40&sub1; unterstützenden VSI7-Serverbelastung entspricht. Diese Belastung wäre geringer als diejenige einer Wiederherstellung einer vollständigen Instanz von DB&sub1; im Knoten 20k nach einem Fehler. Mit dieser Möglichkeit wird der Durchsatz nach einem Fehler aufgrund der doppelten Zuständigkeiten des Knotens 20k folglich etwas verringert, dieser Durchsatz ist jedoch erheblich größer als in den oben erläuterten Vorgehensweisen nach dem Stand der Technik.
  • Fig. 3 ist ein Flussdiagramm der Schritte, die zum Ausführen des Fehlerbehebungsverfahrens von Fig. 2 notwendig sind. Nach einem Fehler des Knotens 20k+1 im Schritt 100 wird im Schritt 110 ein Reserveknoten 40&sub1; zum Ausführen der Instanz DBk+1 ausgewählt. Unter der Voraussetzung, dass die Platte 30k+1 die für die Instanz DBk+1 wichtigen Partitionen speichert, führt der Knoten 20k im Schritt 120 eine VSD-Übernahme (VSD takeover) der Platte 30k+1 aus. Ein entsprechender Clientteil von VSD wird im Schritt 130 im Knoten 40&sub1; konfiguriert. Im Schritt 140 werden sodann alle anderen Knoten (über eine Aktualisierung der entsprechenden Tabellen im System) benachrichtigt, dass die Instanz DBk+1 nun im Knoten 40&sub1; ausgeführt wird. Daher werden alle entsprechenden Anforderungen für die Datenbankinstanz DBk+1 zum Knoten 40&sub1; geleitet. Im Schritt 150 wird die Instanz DBk+1 schließlich im Knoten 40&sub1; gestartet.
  • Eine geänderte Ausführungsform der vorliegenden Erfindung wird in Fig. 4 dargestellt. Fig. 4 zeigt die Datenbankinstanz DBk, die ebenfalls in einem anderen Reserveknoten 40&sub2; mit einem fernen VSD-Zugriff auf ihre Daten über den Pfad 60 durch den Knoten 20k erneut gestartet wird. Durch das Ausführen der Datenbankinstanzen DBk und DBk+1 in den Reserveknoten 40&sub2; und 40&sub1; ist die Belastung im Knoten 20k nur diejenige, die zum Bearbeiten der VSD-Zugriffe von diesen beiden Instanzen benötigt wird. Messungen zeigen an, dass die VSD-Belastung bei dieser Konfiguration wahrscheinlich geringer als diejenige für den Normalbetrieb ist. Außerdem reicht der sequenzielle Zugriffsdurchsatz über VSD sehr dicht an den sequenziellen Zugriffsdurchsatz einer lokalen Platte heran, und der Durchsatz des wahlfreien Zugriffs kann ebenfalls durch VSD aufrechterhalten werden. Daher führt diese Konfiguration nach dem Fehler des Knotens 20k+1 zu einer Leistung, die sehr dicht an die normale Leistung heranreicht. Ein Nachteil ist jedoch, dass das Übertragen der Datenbankinstanz DBk das Herunterfahren (bringing down) dieser Instanz und das Neustarten im Reserveknoten nach sich ziehen kann. Die Auswirkung hiervon hängt von der Arbeitsbelastung ab. Zur Entscheidungsfindung sei gesagt, dass der Fehler des Knotens 20k+1 wahrscheinlich die meisten, wenn nicht alle laufenden Anfragen beeinflusst; folglich sind ein Herunterfahren und Neustarten von DBk wahrscheinlich annehmbar. Bei OLTP hängt diese Wahl vom Anteil der vom Fehler des Knotens 20k beeinflussten Arbeitsbelastung im Vergleich zur Beeinflussung, falls beide Knoten 20k und 20k+1 bei einem Fehler heruntergefahren werden.
  • Ein mögliches Problem bei diesem Verfahren ist die Bearbeitung der erneuten Integration (reintegration) nach dem Neustart des Knotens 20k+1. Im einfachsten Fall ist beim Knoten 20k+1 möglicherweise ein Fehler aufgrund eines Betriebssystemabsturzes aufgetreten, und ein reiner Neustart kann ihn wieder hochfahren. Idealerweise ist es wünschenswert, das System in eine Konfiguration wiederherzustellen, die einen nachfolgenden Fehler bearbeiten kann (d. h. in einen Modus, dem genügend Reserveknoten zugeordnet sind). Eine Alternative ist eine Rückübertragung der Datenbankinstanzen DBk und DBk+1 zu den Knoten 20k bzw. 20k+1. Normalerweise macht dies jedoch ein Herunterfahren und anschließendes Neustarten der Datenbankinstanzen in den ursprünglichen Knoten erforderlich. Eine Erweiterung zu dem hierin beschriebenen Verfahren, die eine erneute Integration ohne Herunterfahren der Datenbankinstanzen bearbeitet, beinhaltet das Kopieren der Daten von den Platten 30k und 30k+1 auf physisch verbundene (65) Platten 70&sub1; und 70&sub2; in die Reserveknoten. Dies kann gleichzeitig mit dem Datenbankbetrieb nach der Neukonfiguration nach dem Fehler erfolgen. Durch einen Zugriff durch VSD können die Daten auf physisch verbundene Platten in den Reserveknoten gespiegelt werden, und alle gleichzeitig ablaufenden Aktualisierungen an den Platten müssen auf den Knoten 20k und die früheren Reserveknoten 40&sub1; und 40&sub2; gespiegelt weiden. Fachleute werden problemlos verstehen, dass dies durch eine entsprechende Synchronisierung ausgeführt werden kann. Die Knoten 20k und 20k±1 können anschließend als Reserveknoten im System zum Beheben künftiger Fehlerzustände von anderen Knoten bestimmt werden.
  • Wie oben erwähnt wurde, kann ein reiner Neustart genügen, um den fehlerhaften Knoten 20k+1 wieder in den Arbeitszustand zu versetzen. In einem solchen Fall kann es wünschenswert sein, eine Übernahme gänzlich zu vermeiden. Dies erfordert jedoch ein Aufschieben der Übernahmeentscheidung, bis der fehlerhafte Knoten erneut gestartet wurde und einen Neustart versucht hat, wodurch die Wiederherstellungszeit entsprechend verlängert wird. Das folgende im Flussdiagramm von Fig. 6 dargestellte Verfahren kann verwendet werden, um Wiederherstellungsmaßnahmen mit dem versuchten Neustart des fehlerhaften Knotens zu überlagern. Wenn ein Fehler im Knoten 20k+1 auftritt (Schritt 200), übernimmt sein Buddy-Knoten 20k dessen Platten und leitet eine Wiederherstellung ein, d. h. führt eine Dateisystemwiederherstellung und eine protokollorientierte (log-based) Wiederherstellung der Datenbankinstanzen aus (Schritt 210). Während dieses Wiederherstellungszeitraumes kann der fehlerhafte Knoten 20k+1 einen Neustart versuchen (Schritt 220). Falls er erfolgreich ist (Entscheidung 230, "J"), nimmt er die Steuerung seiner ursprünglichen Platten wieder auf und startet eine Datenbankinstanz lokal neu (Schritt 250). Falls der Neustart fehlschlägt (Entscheidung 230, "N"), wird die Datenbankinstanz im Buddy-Knoten 20k oder in einem Reserveknoten gestartet, wie oben erläutert wird (Schritt 240). In jedem Fall erfolgt der Neustart der Datenbankinstanz unmittelbar, da eine Wiederherstellung der Platten bereits vom Buddy-Knoten 20k ausgeführt wurde.
  • Die Verfahren der vorliegenden Erfindung können auf Datenbankverarbeitungssysteme und insbesondere auf alle partitionierten Datenbanksysteme (mit nicht global erreichbaren Daten) angewandt werden.
  • Die vorliegende Erfindung kann in einem Fertigungsprodukt (z. B. einem oder mehreren Computerprogrammprodukten) mit beispielsweise in einem Computer verwendbaren Datenträgern enthalten sein. Die Datenträger weisen beispielsweise darin integrierte computerlesbare Programmcodemittel zum Bereitstellen und Erleichtern des Mechanismus der vorliegenden Erfindung auf. Das Fertigungsprodukt kann als Teil eines Computersystems enthalten sein oder gesondert vertrieben werden.
  • Obwohl die Erfindung insbesondere mit Bezugnahme auf bevorzugte Ausführungsformen davon gezeigt und beschrieben wurde, werden Fachleute verstehen, dass verschiedene Änderungen an der Form und an Einzelheiten vorgenommen werden können, ohne vom Anwendungsbereich der Erfindung abzuweichen.

Claims (29)

1. Verfahren zum Beheben eines Fehlerzustandes von einem ersten Verarbeitungsknoten (20k+1) in einem Datenbankverarbeitungssystem mit einer Vielzahl von Verarbeitungsknoten (20&sub1; bis 20n), das Folgendes umfasst:
Ausführen einer ersten Datenbankinstanz (DBK+1) im ersten Verarbeitungsknoten, wobei mindestens eine erste Speichereinheit (30k+1) mit dem ersten Verarbeitungsknoten und einem zweiten Verarbeitungsknoten (20k) verbunden ist, um erste Daten für die erste Datenbankinstanz zu speichern;
Erkennen eines Fehlers (100) des ersten Verarbeitungsknotens;
Bereitstellen des Zugriffs (120) auf die ersten Daten in der mindestens einen Speichereinheit für einen dritten Verarbeitungsknoten (40&sub1;) durch den zweiten Verarbeitungsknoten über ein Dienstprogramm, von dem mindestens ein Teil im zweiten Verarbeitungsknoten abläuft; und
Ausführen (150) der ersten Datenbankinstanz im dritten Verarbeitungsknoten, einschließlich des Zugreifens auf die ersten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten, wobei zur Behebung eines Fehlerzustandes des ersten Verarbeitungsknotens Reservekapazität des dritten Verarbeitungsknotens verwendet wird.
2. Verfahren nach Anspruch 1, das außerdem Folgendes umfasst:
Kopieren der ersten Daten aus der mindestens einen ersten Speichereinheit (30k+1) in mindestens eine zweite Speichereinheit (70&sub1;), die mit dem dritten Verarbeitungsknoten (40&sub1;) verbunden ist;
wobei das Ausführen (150) der ersten Datenbankinstanz (DBK+1) im dritten Verarbeitungsknoten das Spiegeln nachfolgender Aktualisierungen an der ersten Datenbankinstanz auf die ersten Daten in der mindesten einen ersten Speichereinheit und die kopierten ersten Daten in der mindestens einen zweiten Speichereinheit beinhaltet.
3. Verfahren nach Anspruch 1 oder Anspruch 2, das nach einem Neustart des ersten Verarbeitungsknotens (20k+1) außerdem Folgendes umfasst:
Kennzeichnen des ersten Verarbeitungsknotens als einen ersten Reserveverarbeitungsknoten im Datenbankverarbeitungssystem.
4. Verfahren nach irgendeinem der Ansprüche 1 bis 3, wobei die mindestens eine erste Speichereinheit zwei Speichereinheiten (30k, 30k+1) umfasst, von denen jede eine physische Verbindung sowohl mit dem ersten als auch dem zweiten Verarbeitungsknoten aufweist.
5. Verfahren nach irgendeinem der Ansprüche 1 bis 3, wobei die mindestens eine erste Speichereinheit mehrere Speichereinheiten umfasst, wobei jede eine physische Verbindung mit dem ersten, zweiten und anderen Verarbeitungsknoten im Datenbankverarbeitungssystem aufweist.
6. Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei die ersten Daten eine Partition einer partitionierten Datenbank mit nicht global erreichbaren Daten umfassen, die sich im Datenbankverarbeitungssystem befindet.
7. Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei das Bereitstellen des Zugriffs auf die ersten Daten für den dritten Verarbeitungsknoten die Verwendung eines Dienstprogramms für gemeinsam genutzte Platten mit einem Serverteil im zweiten Verarbeitungsknoten (20k) und einem Clientteil im dritten Verarbeitungsknoten (40&sub1;) beinhaltet.
8. Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei der dritte Verarbeitungsknoten (40&sub1;) ein zugeordneter Reserveverarbeitungsknoten im Datenbankverarbeitungssystem ist.
9. Verfahren nach irgendeinem der vorhergehenden Ansprüche, das außerdem Folgendes umfasst:
Ausführen einer zweiten Datenbankinstanz (DBk) im zweiten Verarbeitungsknoten (20k) vor dem Erkennen des Fehlers des ersten Verarbeitungsknotens, wobei die mindestens eine erste Speichereinheit (30k, 30k+1) darin gespeicherte zweite Daten für die zweite Datenbankinstanz aufweist; und
nach dem Erkennen des Fehlers (100) des ersten Verarbeitungsknotens:
Bereitstellen des Zugriffs auf die zweiten Daten in der mindestens einen ersten Speichereinheit für einen vierten Verarbeitungsknoten (40&sub2;) durch den zweiten Verarbeitungsknoten (20k) über ein Dienstprogramm, und
Ausführen der zweiten Datenbankinstanz im vierten Verarbeitungsknoten, das das Zugreifen auf die zweiten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten beinhaltet.
10. Verfahren nach Anspruch 9, das außerdem Folgendes umfasst:
Kopieren der ersten Daten und der zweiten Daten aus der mindestens einen ersten Speichereinheit in mindestens eine zweite Speichereinheit, die gemeinsam mit dem dritten und vierten Verarbeitungsknoten verbunden ist;
wobei das Ausführen der ersten Datenbankinstanz im dritten Verarbeitungsknoten das Spiegeln nachfolgender Aktualisierungen an der ersten Datenbankinstanz auf die ersten Daten in der mindestens einen ersten Speichereinheit und auf die kopierten ersten Daten in der mindestens einen zweiten Speichereinheit enthält;
wobei das Ausführen der zweiten Datenbankinstanz im vierten Verarbeitungsknoten das Spiegeln nachfolgender Aktualisierungen an der zweiten Datenbankinstanz auf die zweiten Daten in der mindestens einen ersten Speichereinheit und auf die kopierten zweiten Daten in der mindestens einen zweiten Speichereinheit enthält.
11. Verfahren nach Anspruch 9 oder 10, das nach einem Neustart des ersten Verarbeitungsknotens außerdem Folgendes umfasst:
Bezeichnen des ersten Verarbeitungsknotens (20k+1) als einen ersten Reserveverarbeitungsknoten im Datenbankverarbeitungssystem; und
Bezeichnen des zweiten Verarbeitungsknotens (20k) als einen zweiten Reserveverarbeitungsknoten im Datenbankverarbeitungssystem.
12. Verfahren nach irgendeinem der Ansprüche 9 bis 11, wobei die ersten und zweiten Daten jeweils entsprechende Partitionen einer partitionierten Datenbank mit nicht global erreichbaren Daten umfassen, die sich im Datenbankverarbeitungssystem befindet.
13. Verfahren nach irgendeinem der Ansprüche 9 bis 12, wobei das Bereitstellen des Zugriffs auf die zweiten Daten für den vierten Verarbeitungsknoten die Verwendung eines Dienstprogramms für gemeinsam genutzte Platten mit einem Serverteil im zweiten Verarbeitungsknoten und einem ersten Clientteil im vierten Verarbeitungsknoten enthält.
14. Verfahren nach Anspruch 13, wobei das Bereitstellen des Zugriffs auf die ersten Daten für den dritten Verarbeitungsknoten die Verwendung eines Dienstprogramms für gemeinsam genutzte Platten mit dem Serverteil im zweiten Verarbeitungsknoten und einem zweiten Clientteil im dritten Verarbeitungsknoten enthält.
15. Verfahren nach Anspruch 10, wobei der dritte Verarbeitungsknoten und der vierte Verarbeitungsknoten zugeordnete Reserveverarbeitungsknoten im Datenbankverarbeitungssystem sind.
16. Verfahren nach Anspruch 1, das Folgendes beinhaltet:
Ausführen eine r Datenbankwiederherstellung der ersten Datenbankinstanz im zweiten Verarbeitungsknoten (20k), das das Zugreifen auf die ersten Daten in der mindestens einen Speichereinheit (30k+1) durch den zweiten Verarbeitungsknoten über ein Dienstprogramm beinhaltet;
Versuchen, den ersten Verarbeitungsknoten (20k+1) während des Ausführens der Datenbankwiederherstellung erneut zu starten; und
falls das Versuchen zu einem erfolgreichen Neustart des ersten Verarbeitungsknotens führt, anschließend Neustarten der ersten Datenbankinstanz im ersten Verarbeitungsknoten, das das Zugreifen auf die ersten Daten in der mindestens einen Speichereinheit durch den ersten Verarbeitungsknoten beinhaltet, oder
falls das Versuchen nicht zu einem erfolgreichen Neustart des ersten Verarbeitungsknotens führt, anschließend Ausführen der folgenden Schritte:
Bereitstellen des Zugriffs auf die ersten Daten in der mindestens einen Speichereinheit für einen dritten Verarbeitungsknoten durch den zweiten Verarbeitungsknoten über ein Dienstprogramm; und Ausführen der ersten Datenbankinstanz im dritten Verarbeitungsknoten, das das Zugreifen auf die ersten Daten in der mindestens einen Speichereinheit durch den zweiten Verarbeitungsknoten beinhaltet.
17. Verfahren nach Anspruch 1 zur Behebung eines Fehlerzustandes eines ersten Verarbeitungsknotens von einem Paar von Verarbeitungsknoten mit jeweils einer physischen Verbindung mit mindestens einer Speichereinheit in einem partitionierten Datenbankverarbeitungssystem mit nicht global erreichbaren Daten, wobei der erste Verarbeitungsknoten eine in diesem ausgeführte erste Datenbankinstanz aufweist und auf eine erste Datenpartition in der mindestens einen Speichereinheit vor dem Fehler zugreift, wobei das Verfahren Folgendes umfasst:
Bereitstellen des Zugriffs auf die erste Datenpartition in der mindestens einen Speichereinheit für einen dritten Verarbeitungsknoten durch einen zweiten Verarbeitungsknoten von dem Paar von Verarbeitungsknoten über ein Dienstprogramm, von dem zumindest ein Teil im zweiten Verarbeitungsknoten abläuft; und
Ausführen einer ersten Ersatzdatenbankinstanz für die erste Datenbankinstanz, die vor dem Fehler des ersten Verarbeitungsknotens in diesem ausgeführt wurde, im dritten Verarbeitungsknoten, das das Zugreifen auf die erste Datenpartition in der mindestens einen Speichereinheit durch den zweiten Verarbeitungsknoten beinhaltet, wobei Reservekapazität des dritten Verarbeitungsknotens zur Wiederherstellung aus dem Fehler des ersten Verarbeitungsknotens verwendet wird.
18. System zum Beheben eines Fehlerzustandes eines ersten Verarbeitungsknotens (20k+1) in einem Datenbankverarbeitungssystem mit einer Vielzahl von Verarbeitungsknoten (20&sub1; bis 20n), das Folgendes umfasst:
Mittel zum Ausführen einer ersten Datenbankinstanz (DBk+1) im ersten Verarbeitungsknoten, wobei mindestens eine erste Speichereinheit (30k+1) zum Speichern von ersten Daten für die erste Datenbankinstanz gemeinsam mit dem ersten Verarbeitungsknoten und einem zweiten Verarbeitungsknoten (20k) verbunden ist;
Mittel zum Erkennen eines Fehlers des ersten Verarbeitungsknotens;
Mittel, um einem dritten Verarbeitungsknoten (40&sub1;) den Zugriff auf die ersten Daten in der mindestens einen Speichereinheit durch den zweiten Verarbeitungsknoten über ein Dienstprogramm bereitzustellen, von dem mindestens ein Teil im zweiten Verarbeitungsknoten abläuft; und
Mittel zum Ausführen der ersten Datenbankinstanz im dritten Verarbeitungsknoten, das Mittel zum Zugreifen auf die ersten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten enthält, wobei zur Behebung eines Fehlerzustandes des ersten Verarbeitungsknotens Reservekapazität des dritten Verarbeitungsknotens verwendet wird.
19. System nach Anspruch 18, wobei die mindestens eine erste Speichereinheit zwei Speichereinheiten umfasst, die jeweils mit dem ersten und zweiten Verarbeitungsknoten physisch verbunden sind.
20. System nach Anspruch 18, wobei die mindestens eine erste Speichereinheit mehrere Speichereinheiten umfasst, die eine physische Verbindung mit dem ersten, zweiten und anderen Verarbeitungsknoten im Datenbankverarbeitungssystem aufweisen.
21. System nach irgendeinem der Ansprüche 18 bis 20, wobei die ersten Daten eine Partition einer partitionierten Datenbank mit nicht global erreichbaren Daten umfassen, die sich im Datenbankverarbeitungssystem befindet.
22. System nach irgendeinem der Ansprüche 18 bis 21, wobei das Mittel zum Bereitstellen des Zugriffs auf die ersten Daten für einen dritten Verarbeitungsknoten ein Dienstprogramm für gemeinsam genutzte Platten mit einem Serverteil im zweiten Verarbeitungsknoten und einem Clientteil im dritten Verarbeitungsknoten enthält.
23. System nach irgendeinem der Ansprüche 18 bis 21, das außerdem Folgendes umfasst:
Mittel zum Ausführen einer zweiten Datenbankinstanz im zweiten Verarbeitungsknoten vor dem Erkennen des Fehlers des ersten Verarbeitungsknotens, wobei die mindestens eine erste Speichereinheit darin gespeicherte zweite Daten für die zweite Datenbankinstanz aufweist;
Mittel, um einem vierten Verarbeitungsknoten den Zugriff auf die zweiten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten über ein Dienstprogramm bereitzustellen, nachdem der Fehler des ersten Verarbeitungsknotens erkannt wurde; und
Mittel zum Ausführen der zweiten Datenbankinstanz im vierten Verarbeitungsknoten, das Mittel zum Zugreifen auf die zweiten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten enthält.
24. System nach Anspruch 18 zur Behebung eines Fehlerzustandes eines ersten Verarbeitungsknotens von einem Paar von Verarbeitungsknoten mit jeweils einer physischen Verbindung mit mindestens einer Speichereinheit in einem partitionierten Datenbankverarbeitungssystem mit nicht global erreichbaren Daten, wobei der erste Verarbeitungsknoten eine in diesem ausgeführte erste Datenbankinstanz aufweist und auf eine erste Datenpartition in der mindestens einen Speichereinheit vor dem Fehler zugreift, wobei das Verfahren Folgendes umfasst:
Mittel, um einem dritten Verarbeitungsknoten den Zugriff auf die erste Datenpartition in der mindestens einen Speichereinheit durch einen zweiten Verarbeitungsknoten von dem Paar von Verarbeitungsknoten über ein Dienstprogramm bereitzustellen, von dem zumindest ein Teil im zweiten Verarbeitungsknoten abläuft; und
Mittel, um im dritten Verarbeitungsknoten eine erste Ersatzdatenbankinstanz für die erste Datenbankinstanz auszuführen, die vor dem Fehler des ersten Verarbeitungsknotens in diesem ausgeführt wurde, das Mittel zum Zugreifen auf die erste Datenpartition in der mindestens einen Speichereinheit durch den zweiten Verarbeitungsknoten enthält, wobei zur Wiederherstellung aus dem Fehler des ersten Verarbeitungsknotens Reservekapazität des dritten Verarbeitungsknotens verwendet wird.
25. Computerprogramm, das einen computerlesbaren Programmcode zur Wiederherstellung aus einem Fehler eines ersten Verarbeitungsknotens (20k+1) in einem Datenbankverarbeitungssystem mit einer Vielzahl von Verarbeitungsknoten (20&sub1; bis 20n) umfasst, wobei der computerlesbare Programmcode Folgendes umfasst:
einen computerlesbaren Programmcode zum Ausführen einer ersten Datenbankinstanz (DBk+1) im ersten Verarbeitungsknoten, wobei mindestens eine erste Speichereinheit (30k+1) zum Speichern von ersten Daten für die erste Datenbankinstanz gemeinsam mit dem ersten Verarbeitungsknoten und einem zweiten Verarbeitungsknoten (20k) verbunden ist;
einen computerlesbaren Programmcode zum Erkennen eines Fehlers des ersten Verarbeitungsknotens;
einen computerlesbaren Programmcode, um einem dritten Verarbeitungsknoten (40&sub1;) den Zugriff auf die ersten Daten in der mindestens einen Speichereinheit durch den zweiten Verarbeitungsknoten über ein Dienstprogramm bereitzustellen, von dem mindestens ein Teil im zweiten Verarbeitungsknoten abläuft; und
einen computerlesbaren Programmcode zum Ausführen der ersten Datenbankinstanz im dritten Verarbeitungsknoten, der einen Programmcode zum Zugreifen auf die ersten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten enthält, wobei zur Wiederherstellung aus dem Fehler des ersten Verarbeitungsknotens Reservekapazität des dritten Verarbeitungsknotens verwendet wird.
26. Computerprogramm nach Anspruch 25, wobei die ersten Daten eine Partition einer partitionierten Datenbank mit nicht global erreichbaren Daten umfassen, die sich im Datenbankverarbeitungssystem befindet.
27. Computerprogramm nach Anspruch 25 oder Anspruch 26, wobei der Programmcode zum Bereitstellen des Zugriffs auf die ersten Daten für einen dritten Verarbeitungsknoten ein Dienstprogramm für gemeinsam genutzte Platten mit einem Serverteil im zweiten Verarbeitungsknoten und einem Clientteil im dritten Verarbeitungsknoten enthält.
28. Computerprogramm nach irgendeinem der Ansprüche 25 bis 27, das außerdem Folgendes umfasst:
einen computerlesbaren Programmcode zum Ausführen einer zweiten Datenbankinstanz im zweiten Verarbeitungsknoten vor dem Erkennen des Fehlers des ersten Verarbeitungsknotens, wobei die mindestens eine erste Speichereinheit darin gespeicherte zweite Daten für die zweite Datenbankinstanz aufweist;
einen computerlesbaren Programmcode, um einem vierten Verarbeitungsknoten den Zugriff auf die zweiten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten bereitzustellen, nachdem der Fehler des ersten Verarbeitungsknotens erkannt wurde; und
einen computerlesbaren Programmcode zum Ausführen der zweiten Datenbankinstanz im vierten Verarbeitungsknoten, der einen Programmcode zum Zugreifen auf die zweiten Daten in der mindestens einen ersten Speichereinheit durch den zweiten Verarbeitungsknoten enthält.
29. Computerprogramm nach Anspruch 25, das einen computerlesbaren Programmcode zur Behebung eines Fehlerzustandes eines ersten Verarbeitungsknotens von einem Paar von Verarbeitungsknoten mit jeweils einer physischen Verbindung mit mindestens einer Speichereinheit in einem partitionierten Datenbankverarbeitungssystem mit nicht global erreichbaren Daten umfasst, wobei der erste Verarbeitungsknoten eine in diesem ausgeführte erste Datenbankinstanz aufweist und vor dem Fehler auf eine erste Datenpartition in der mindestens einen Speichereinheit zugreift, wobei der computerlesbare Programmcode Folgendes umfasst:
einen computerlesbaren Programmcode, um einem dritten Verarbeitungsknoten den Zugriff auf die erste Datenpartition in der mindestens einen Speichereinheit durch einen zweiten Verarbeitungsknoten von dem Paar von Verarbeitungsknoten über ein Dienstprogramm bereitzustellen, von dem zumindest ein Teil im zweiten Verarbeitungsknoten abläuft; und
einen computerlesbaren Programmcode, um im dritten Verarbeitungsknoten eine erste Ersatzdatenbankinstanz für die erste Datenbankinstanz auszuführen, die vor dem Fehler des ersten Verarbeitungsknotens in diesem ausgeführt wurde, der einen Programmcode zum Zugreifen auf die erste Datenpartition in der mindestens einen Speichereinheit durch den zweiten Verarbeitungsknoten enthält, wobei zur Wiederherstellung aus dem Fehler des ersten Verarbeitungsknotens Reservekapazität des dritten Verarbeitungsknotens verwendet wird.
DE69807077T 1997-05-29 1998-05-27 Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten Expired - Lifetime DE69807077T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/865,156 US5907849A (en) 1997-05-29 1997-05-29 Method and system for recovery in a partitioned shared nothing database system using virtual share disks
PCT/GB1998/001548 WO1998054648A1 (en) 1997-05-29 1998-05-27 Method and system for recovery in a partitioned shared nothing database system using virtual shared disks

Publications (2)

Publication Number Publication Date
DE69807077D1 DE69807077D1 (de) 2002-09-12
DE69807077T2 true DE69807077T2 (de) 2003-04-30

Family

ID=25344860

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69807077T Expired - Lifetime DE69807077T2 (de) 1997-05-29 1998-05-27 Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten

Country Status (8)

Country Link
US (1) US5907849A (de)
EP (1) EP0988596B1 (de)
CA (1) CA2288016C (de)
DE (1) DE69807077T2 (de)
HU (1) HUP0003427A3 (de)
PL (1) PL337021A1 (de)
RU (1) RU2208834C2 (de)
WO (1) WO1998054648A1 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2756070B1 (fr) * 1996-11-18 1999-01-22 Bull Sa Systeme de gestion et de traitement de transactions distribuees d'objets et procede mis en oeuvre par ledit systeme
US6405198B1 (en) * 1998-09-04 2002-06-11 International Business Machines Corporation Complex data query support in a partitioned database system
US6321238B1 (en) * 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
US6873987B1 (en) * 2000-05-31 2005-03-29 International Business Machines Corporation Method, system and program products for recovering from failures within a shared nothing distributed computing environment
KR100471567B1 (ko) * 2000-07-29 2005-03-07 엘지전자 주식회사 이중화 시스템 환경에서 데이터 동기화를 위한 트랜잭션관리 방법
EP1521184A3 (de) * 2001-06-28 2006-02-22 Oracle International Corporation Aufteilung der Datenbankeigentümerschaft zwischen verschiedenen Datenbankservern um den Zugriff auf die Datenbank zu kontrollieren
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7730153B1 (en) * 2001-12-04 2010-06-01 Netapp, Inc. Efficient use of NVRAM during takeover in a node cluster
US8234517B2 (en) * 2003-08-01 2012-07-31 Oracle International Corporation Parallel recovery by non-failed nodes
JP2005056077A (ja) * 2003-08-01 2005-03-03 Hitachi Ltd データベース制御方法
CN100429622C (zh) * 2003-08-01 2008-10-29 甲骨文国际公司 数据管理方法
US7277897B2 (en) * 2003-08-01 2007-10-02 Oracle International Corporation Dynamic reassignment of data ownership
US7281023B2 (en) * 2003-12-15 2007-10-09 At&T Knowledge Ventures, L.P. Architecture of database application with robust online recoverability
US20050283658A1 (en) * 2004-05-21 2005-12-22 Clark Thomas K Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
JP4911940B2 (ja) 2005-09-30 2012-04-04 キヤノン株式会社 データ送信装置及びその制御方法と画像入出力装置
US8010485B1 (en) 2005-10-20 2011-08-30 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US8010829B1 (en) * 2005-10-20 2011-08-30 American Megatrends, Inc. Distributed hot-spare storage in a storage cluster
US7996608B1 (en) 2005-10-20 2011-08-09 American Megatrends, Inc. Providing redundancy in a storage system
US7778960B1 (en) 2005-10-20 2010-08-17 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US20070130303A1 (en) * 2005-11-17 2007-06-07 Gary Anna Apparatus, system, and method for recovering messages from a failed node
US7809892B1 (en) 2006-04-03 2010-10-05 American Megatrends Inc. Asynchronous data replication
US7702660B2 (en) 2006-12-12 2010-04-20 Oracle International Corporation I/O free recovery set determination
US8498967B1 (en) 2007-01-30 2013-07-30 American Megatrends, Inc. Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US8046548B1 (en) 2007-01-30 2011-10-25 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US7908448B1 (en) 2007-01-30 2011-03-15 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems with write-back cache
US8108580B1 (en) 2007-04-17 2012-01-31 American Megatrends, Inc. Low latency synchronous replication using an N-way router
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US8386431B2 (en) * 2010-06-14 2013-02-26 Sap Ag Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
US8224780B2 (en) * 2010-06-15 2012-07-17 Microsoft Corporation Checkpoints for a file system
CN101908064A (zh) * 2010-07-20 2010-12-08 中兴通讯股份有限公司 数据库备份恢复方法和装置
DE102011018878B3 (de) * 2011-04-28 2012-09-27 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Synchronisieren der Datenbestände von Datenbanken
RU2526753C1 (ru) * 2013-06-20 2014-08-27 Закрытое акционерное общество Научно-производственное предприятие "Реляционные экспертные системы" Способ восстановления данных в системе управления базами данных
CN103309713A (zh) * 2013-06-25 2013-09-18 北京小米科技有限责任公司 系统升级的方法、装置及设备
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
CN104636480B (zh) 2015-02-13 2018-09-28 华为技术有限公司 重建备机数据库的方法及其装置
US11030045B2 (en) * 2015-07-28 2021-06-08 Futurewei Technologies, Inc. Apparatus and method for utilizing different data storage types to store primary and replicated database directories
US11169982B2 (en) 2016-06-30 2021-11-09 Microsoft Technology Licensing, Llc Dynamic deactivation of cold database in database service
FR3082973B1 (fr) * 2018-06-22 2020-06-05 Bull Sas Procede de gestion de panne dans un reseau de noeuds base sur une strategie locale
FR3082974B1 (fr) * 2018-06-22 2020-06-05 Bull Sas Procede de gestion de panne dans un reseau de nœuds base sur une strategie globale
US12135623B2 (en) * 2020-11-13 2024-11-05 Oracle International Corporation Fault tolerance in scale-out distributed query processing appliance

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3702006A (en) * 1971-06-09 1972-10-31 Ibm Method for balancing the utilization of input/output devices
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
JPS62168497A (ja) * 1986-01-20 1987-07-24 Nec Corp 交換処理プログラムにおけるデ−タベ−ス処理方式
US4925311A (en) * 1986-02-10 1990-05-15 Teradata Corporation Dynamically partitionable parallel processors
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
JPH0293836A (ja) * 1988-09-30 1990-04-04 Toshiba Corp 分散型データベース管理装置
US4920487A (en) * 1988-12-12 1990-04-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method of up-front load balancing for local memory parallel processors
US5269013A (en) * 1991-03-20 1993-12-07 Digital Equipment Corporation Adaptive memory management method for coupled memory multiprocessor systems
US5440727A (en) * 1991-12-18 1995-08-08 International Business Machines Corporation Asynchronous replica management in shared nothing architectures
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
EP0709779B1 (de) * 1994-10-31 2001-05-30 International Business Machines Corporation Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung
US5696895A (en) * 1995-05-19 1997-12-09 Compaq Computer Corporation Fault tolerant multiple network servers
US5734896A (en) * 1996-04-30 1998-03-31 Oracle Corporation Recovery of a remotely initiated distributed prepared transaction by status report from a second database to an external coordinator
US5764905A (en) * 1996-09-09 1998-06-09 Ncr Corporation Method, system and computer program product for synchronizing the flushing of parallel nodes database segments through shared disk tokens

Also Published As

Publication number Publication date
US5907849A (en) 1999-05-25
EP0988596A1 (de) 2000-03-29
HUP0003427A3 (en) 2002-03-28
RU2208834C2 (ru) 2003-07-20
EP0988596B1 (de) 2002-08-07
DE69807077D1 (de) 2002-09-12
HUP0003427A2 (hu) 2001-02-28
WO1998054648A1 (en) 1998-12-03
CA2288016C (en) 2004-11-16
CA2288016A1 (en) 1998-12-03
PL337021A1 (en) 2000-07-31

Similar Documents

Publication Publication Date Title
DE69807077T2 (de) Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten
DE3779770T2 (de) Instandhaltung der verfuegbarkeit eines wiederanlauffaehigen datenbasissystems.
DE3853452T2 (de) Mehrfachverarbeitung mit hoher Verfügbarkeit.
DE69614383T2 (de) Kontinuierlich verfügbarer datenbankserver mit mehreren knotengruppen mit sich minimal überschneidenden sätzen von datenbankteilkopien
DE3781486T2 (de) Verfahren zur stossfreien umschaltung von aktiven einheiten zu ersatzeinheiten in datenverarbeitungsanlagen und datenverarbeitungsanlage zur durchfuehrung dieses verfahrens.
DE69128271T2 (de) Verfahren und System zur Erhöhung der Betriebsverfügbarkeit eines Systems von Rechnerprogrammen, wirkend in einem verteilten Rechnerssystem
DE69710578T2 (de) Verfahren zum unabhängigen und gleichzeitigen zugriff auf eine gemeinsame datensammlung
DE69629444T2 (de) Datenverarbeitungsgerät und Verfahren zur Ersetzung von ausgefallenen Speichereinheiten
DE69801418T2 (de) Datenaufteilung und -dupliziering in einem verteilten datenverarbeitungssystem
DE602004005344T2 (de) Verfahren, system und programm zur handhabung eines failover zu einem fernspeicherort
DE69410671T2 (de) Datensicherung in einer Datenverarbeitungsanlage
DE3781873T2 (de) Rekonfigurierbare rechenanordnung.
DE69227956T2 (de) Multiprozessorsystem mit gespiegeltem Speicher
DE69626947T2 (de) Reservekopie-Generierung in einem RAID-Untersystem
DE69502125T2 (de) Synchrone Datenfernduplizierung
DE69907818T2 (de) Verfahren und Vorrichtung zur Fehlererkennung und Wiederherstellung mit vorbestimmter Replikationsart für verteilte Anwendungen in einem Netzwerk
DE69614138T2 (de) Prüfpunkt-fernspeichersystem und -verfahren für ein fehlertolerantes system
DE60220263T2 (de) Server-duplexverfahren und geduplextes serversystem
DE69703574T2 (de) Vorrichtung zur Prüfpunkterfassungsbeschleunigung
DE69021712T2 (de) Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
DE69502651T2 (de) Asynchrone Datenfernduplizierung
DE69506404T2 (de) Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem
DE69817696T2 (de) Warmaustausch von gespiegeltem Nachschreib-Cachespeicher
DE69614623T2 (de) Fehlertolerantes multiples Netzwerkserver
DE69435090T2 (de) Rechnersystem mit Steuereinheiten und Rechnerelementen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7