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 plattenInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 42
- 238000011084 recovery Methods 0.000 title claims description 18
- 238000012545 processing Methods 0.000 claims description 231
- 238000005192 partition Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 5
- 230000010076 replication Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006833 reintegration Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2046—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2038—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data 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
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
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
- Diese Erfindung betrifft Computerdatenbank- Verarbeitungssysteme. Insbesondere betrifft diese Erfindung das Beheben eines Fehlerzustands von einem Verarbeitungsknoten in einem Datenbankverarbeitungssystem mit nicht global erreichbaren Daten.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1997
- 1997-05-29 US US08/865,156 patent/US5907849A/en not_active Expired - Lifetime
-
1998
- 1998-05-27 CA CA002288016A patent/CA2288016C/en not_active Expired - Fee Related
- 1998-05-27 WO PCT/GB1998/001548 patent/WO1998054648A1/en not_active Application Discontinuation
- 1998-05-27 PL PL98337021A patent/PL337021A1/xx not_active IP Right Cessation
- 1998-05-27 RU RU99127432/09A patent/RU2208834C2/ru not_active IP Right Cessation
- 1998-05-27 EP EP98924454A patent/EP0988596B1/de not_active Expired - Lifetime
- 1998-05-27 DE DE69807077T patent/DE69807077T2/de not_active Expired - Lifetime
- 1998-05-27 HU HU0003427A patent/HUP0003427A3/hu unknown
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 |