DE112022000767T5 - ASYNCHRONOUS PERSISTENCE OF REPLICATED DATA CHANGES IN A DATABASE ACCELERATOR - Google Patents
ASYNCHRONOUS PERSISTENCE OF REPLICATED DATA CHANGES IN A DATABASE ACCELERATOR Download PDFInfo
- Publication number
- DE112022000767T5 DE112022000767T5 DE112022000767.2T DE112022000767T DE112022000767T5 DE 112022000767 T5 DE112022000767 T5 DE 112022000767T5 DE 112022000767 T DE112022000767 T DE 112022000767T DE 112022000767 T5 DE112022000767 T5 DE 112022000767T5
- Authority
- DE
- Germany
- Prior art keywords
- database
- target database
- target
- tables
- recovery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002688 persistence Effects 0.000 title description 6
- 238000011084 recovery Methods 0.000 claims abstract description 167
- 238000000034 method Methods 0.000 claims abstract description 91
- 230000002085 persistent effect Effects 0.000 claims abstract description 66
- 238000003860 storage Methods 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 22
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 31
- 230000008859 change Effects 0.000 description 15
- 230000000903 blocking effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 239000002253 acid Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- TZCXTZWJZNENPQ-UHFFFAOYSA-L barium sulfate Chemical compound [Ba+2].[O-]S([O-])(=O)=O TZCXTZWJZNENPQ-UHFFFAOYSA-L 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
Abstract
Ein durch einen Computer ausgeführtes Verfahren für eine Wiederherstellung nach einem Absturz für verknüpfte Datenbanken kann bereitgestellt werden. Die verknüpften Datenbanken weisen eine Quellen- und eine zugehörige Zieldatenbank auf. Ausgewählte Abfragen der Quellendatenbank werden an die Zieldatenbank übertragen. Das Verfahren umfasst ein Synchronisieren von ausgewählten Teilen der Quellendatenbank mit Tabellen eines speicherinternen Teils einer Zieldatenbank und ein asynchrones und persistentes Speichern von persistent angewandten Änderungen an dem speicherinternen Zieldatenbankteil. Nach einem Datenbankabsturz des Zieldatenbanksystems umfasst das Verfahren auch ein Wiederherstellen des speicherinternen Zieldatenbankteils mit der verfügbaren aktuellsten Momentaufnahme und ein Anwenden von Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicher des speicherinternen Zieldatenbankteils verfügbare aktuellste Momentaufnahme haben.A computer-executed crash recovery method for linked databases can be provided. The linked databases have a source database and an associated target database. Selected queries from the source database are transferred to the target database. The method includes synchronizing selected portions of the source database with tables of an in-memory portion of a target database and asynchronously and persistently storing persistently applied changes to the in-memory target database portion. After a database crash of the target database system, the method also includes restoring the target database in-memory portion with the most recent snapshot available and applying changes from the source database recovery log file that have a later timestamp than the most recent snapshot available in the target database persistent database portion of the target database in-memory portion.
Description
HINTERGRUNDBACKGROUND
Gebiet der ErfindungField of invention
Die Erfindung betrifft allgemein eine Wiederherstellung nach einem Absturz für eine Datenbank und genauer gesagt ein durch einen Computer ausgeführtes Verfahren für eine Wiederherstellung nach einem Absturz für verknüpfte Datenbanken. Die Erfindung betrifft des Weiteren ein verknüpftes Datenbanksystem mit Wiederherstellung nach einem Absturz für verknüpfte Datenbanken und ein Computerprogrammprodukt.The invention relates generally to crash recovery for a database, and more particularly to a computer-executed method for crash recovery for linked databases. The invention further relates to a linked database system with crash recovery for linked databases and a computer program product.
Verwandte TechnikRelated technology
Das Verwalten von großen Datenmengen bleibt ein dauerhaftes Problem für IT-(Informationstechnologie-)Organisationen von Unternehmen. Dies ist (i) auf die immer größer werdende Menge an Daten und (ii) auch auf die Vielfalt der Daten zurückzuführen. Zusätzlich zu herkömmlichen strukturierten Daten werden auch semistrukturierte und sogenannte unstrukturierte Daten in großen Mengen in IT-Systemen von Unternehmen gespeichert. Darüber hinaus wurden zusätzlich zu herkömmlichen transaktionsorientierten Datenbanken spezielle Datenbanksysteme, die für eine Analyseverarbeitung optimiert sind, eingeführt, um dem Bedarf der Industrie an immer mehr Datenanalysen gerecht zu werden. Auf der anderen Seite wurden Versuche unternommen, die gesamte Analyseverarbeitung in einer herkömmlichen Transaktionsdatenbank vorzunehmen. Jedoch stellte sich heraus, dass die Analyseverarbeitung einen zu starken und unvorhersehbaren Einfluss auf die Leistungsfähigkeit der Onlinetransaktionsverarbeitung hat.Managing large amounts of data remains a persistent problem for enterprise IT (information technology) organizations. This is due to (i) the ever-increasing amount of data and (ii) also to the diversity of data. In addition to traditional structured data, semi-structured and so-called unstructured data are also stored in large quantities in company IT systems. Furthermore, in addition to traditional transaction-oriented databases, special database systems optimized for analytical processing have been introduced to meet the industry's need for more and more data analysis. On the other hand, attempts have been made to do all analytical processing in a traditional transactional database. However, it turned out that analytical processing has too strong and unpredictable an impact on the performance of online transaction processing.
Folglich wurden intelligente Kombinationen von transaktionsorientierten Datenbankverwaltungssystemen mit analyseoptimierten Datenbankverwaltungssystemen eingeführt. Ein Beispiel für solch kombinierte Produkte beruht auf der Architektur des IBM DB2 Analytics Accelerator (IDAA).Consequently, intelligent combinations of transaction-oriented database management systems with analytics-optimized database management systems have been introduced. An example of such combined products is based on the IBM DB2 Analytics Accelerator (IDAA) architecture.
Einerseits kann ein vollständiges, zeilenbasiertes Datenbankverwaltungssystem (DBMS) als ein Anwendungsendpunkt für Data-Manipulation-Language-(DML-)Operationen und Ausführungen von Abfragen dienen. Unter Verwendung von heuristischen Entscheidungskriterien und Regeln kann das Abfrageoptimierungsprogramm transparent entscheiden, ob eine Abfrage auf dem Quellen-DBMS - vor allem für eine Online-Transaktionsverarbeitung - ausgeführt oder an ein Ziel-DBMS - vor allem für eine Online-Analyseverarbeitung - ausgelagert werden soll.On the one hand, a complete, row-based database management system (DBMS) can serve as an application endpoint for data manipulation language (DML) operations and query executions. Using heuristic decision criteria and rules, the query optimizer can transparently decide whether a query should be executed on the source DBMS - primarily for online transaction processing - or offloaded to a target DBMS - primarily for online analytical processing.
Das Ziel-DBMS kann ein vollständiges, spaltenbasiertes Datenbankverwaltungssystem sein, das eine Schattenkopie eines ausgewählten Satzes der Tabellen des Quellen-DBMS hält. Strategien für ein Erstellen von Schattenkopien des Ziel-DBMS können ein Übertragen von in einer oder mehreren Tabellen des Quellen-DBMS gespeicherten Daten an das Ziel-DBMS zu einem gegebenen Zeitpunkt aufweisen. Jedoch könnten Abfragedaten in dem Ziel-DBMS veraltet sein, wenn das Laden vor einiger Zeit durchgeführt und die entsprechende Quellentabelle in der Zwischenzeit geändert wurde. Daher werden die Inhalte der Tabellen in der Regel inkrementell angepasst, wenn Änderungen in den entsprechenden Tabellen der Quellendatenbank aufgezeichnet werden.The target DBMS may be a complete column-based database management system that maintains a shadow copy of a selected set of the source DBMS's tables. Strategies for creating shadow copies of the target DBMS may include transferring data stored in one or more tables of the source DBMS to the target DBMS at a given time. However, query data in the target DBMS may be stale if the load was performed some time ago and the corresponding source table was changed in the meantime. Therefore, the contents of the tables are typically adjusted incrementally as changes are recorded in the corresponding tables in the source database.
Beide Datenbanksysteme führen Transaktionsmechanismen aus, um ACID-Eigenschaften (ACID = Atomizität, Konsistenz, Isolation, Dauerhaftigkeit) der jeweiligen Datenbank zu gewährleisten. D.h., gleichzeitige Änderungen werden über Sperrtechniken ordnungsgemäß isoliert und Konsistenzprüfungen können gewährleisten, dass der Datenbankzustand aus einem konsistenten Zustand in einen anderen überführt wird, und Protokollierungstechniken wie beispielsweise Write-ahead-Protokollierung können ausgeführt werden, um Atomizität und Dauerhaftigkeit für Transaktionsänderungen zu gewährleisten.Both database systems implement transaction mechanisms to ensure ACID properties (ACID = Atomicity, Consistency, Isolation, Durability) of the respective database. That is, concurrent changes are properly isolated via locking techniques, consistency checks can ensure that the database state is transitioned from one consistent state to another, and logging techniques such as write-ahead logging can be performed to ensure atomicity and durability for transaction changes.
Jedoch kann ein Gewährleisten von ACID-Eigenschaften erheblichen Aufwand verursachen, wenn die Quellendatenbank durch aktuelle Transaktionen geändert wird. Insbesondere verlangsamt ein Protokollieren die Verarbeitung von Einfüge-/ Aktualisierungs-/Lösch-(IUD-, Insert/Update/Delete-)Anweisungen, da Änderungsdatensätze in ein persistentes Speichermedium geschrieben werden müssen, bevor Transaktionen fortgesetzt werden können. Im Vergleich zu der häufig verwendeten speicherinternen Verarbeitung von Änderungen am Inhalt der Datenbanktabelle ist ein Hinzufügen dieser Persistenzebene unter Verwendung von Transaktionsprotokollen vergleichsweise langsam. Auf der anderen Seite ist eine Wiederherstellung nach einem Absturz erforderlich, um den aktuellsten konsistenten Zustand der jeweiligen Datenbank im Falle eines Ausfalls wiederherzustellen.However, ensuring ACID properties can incur significant overhead if the source database is changed by current transactions. In particular, logging slows down the processing of insert/update/delete (IUD) statements because change records must be written to a persistent storage medium before transactions can proceed. Compared to the commonly used in-memory processing of changes to the contents of the database table, adding this level of persistence using transaction logs is comparatively slow. On the other hand, crash recovery is required to restore the latest consistent state of the respective database in the event of a failure.
Im Kontext des Datenbankbeschleunigers, wie IDAA, spiegelt die Zielbeschleunigerdatenbank einfach eine Momentaufnahme der Quellendatenbank. D.h., die Quellendatenbank kann als der Master der Daten agieren oder Datenmanipulationen über IUDs können durch das Quellendatenbank-Verwaltungssystem verarbeitet werden, und Änderungen werden über eine Aktualisierungstechnik in die Zieldatenbank repliziert. Die Beschleunigerdatenbank kann daher als ein Cache zum Speichern von Partitionen der Quellendatenbank dienen, die gegebenenfalls schnelle Analyseoperationen benötigen.In the context of the database accelerator, such as IDAA, the target accelerator database simply mirrors a snapshot of the source database. That is, the source database can act as the master of the data or data manipulations via IUDs can be processed by the source database management system and changes are replicated to the target database via an update technique. The accelerator database can therefore act as a cache for storing Partitions of the source database that may require fast analysis operations.
Es gibt bereits mehrere Offenbarungen in diesem Kontext. Das Schriftstück US 2015 / 0 205 853 A1 beschreibt ein Verfahren zum Replizieren von Datenbankdaten und zum Erzeugen von schreibgeschützten Kopien der replizierten Daten in einem ordnungsgemäß heruntergefahrenen Zustand. Ein zugehöriges System kann ein Überwachungsmodul umfassen, das erste Transaktionen von einer Datenbankanwendung an eine Quellenspeichereinheit überwacht, um Protokolleinträge zu erzeugen, die über mindestens einen Marker verfügen, der einen als gut bekannten Zustand der Anwendung anzeigt. Das System umfasst des Weiteren einen Computer, der mit einer Zielspeichereinheit verbunden ist, die eine Datenbank und Protokolldateien aufweist. Der Computer verarbeitet die Transaktionen auf der Grundlage der Protokolleinträge, um Daten auf der Zielspeichereinheit zu replizieren, er führt eine erste Momentaufnahme durch und spielt in den Protokolldateien gespeicherte Daten wieder in die Datenbank ein.There are already several revelations in this context. The document US 2015 / 0 205 853 A1 describes a method for replicating database data and creating read-only copies of the replicated data in a properly shut down state. An associated system may include a monitoring module that monitors initial transactions from a database application to a source storage device to produce log entries that have at least one marker indicating a known good state of the application. The system further includes a computer connected to a target storage device having a database and log files. The computer processes the transactions based on the log entries to replicate data to the target storage device, takes an initial snapshot, and returns data stored in the log files to the database.
Zudem beschreibt das Schriftstück US 2014 / 0 279 930 A1 ein verteiltes Datenbanksystem, das eine schnelle Wiederherstellung nach einem Absturz ausführt. Nach der Wiederherstellung nach einem Ausfall eines Datenbank-Kopfknotens kann eine Verbindung mit einem oder mehreren Speicherknoten eines verteilten Speichersystems, das Daten für eine durch den Datenbank-Kopfknoten ausgeführte Datenbank speichert, hergestellt werden. Nach der Herstellung der Verbindung mit einem Speicherknoten kann diese Datenbank für einen Zugriff zur Verfügung gestellt werden, wie beispielsweise für verschiedene Zugriffsanforderungen.In addition, the document US 2014 / 0 279 930 A1 describes a distributed database system that performs rapid recovery after a crash. After recovering from a failure of a database head node, a connection may be established to one or more storage nodes of a distributed storage system that stores data for a database executed by the database head node. Once connected to a storage node, this database can be made available for access, such as for various access requests.
Jedoch können alle der herkömmlichen, verbundenen Datenbanken, die einerseits für Transaktionen und andererseits für eine Analyseverarbeitung optimiert sind, den bekannten Aufwand zum Verwalten von persistenten Wiederherstellungsprotokollen erforderlich machen, was zusätzlich zu einer nicht optimierten Nutzung der Änderungen aus der Quellendatenbank in der Zieldatenbank die Verarbeitung der kombinierten Datenbanken erheblich verlangsamen kann. Daher kann es notwendig sein, den erforderlichen Aufwand zu verringern, um höhere Leistungswerte für ein kombiniertes Transaktions-/ Analysedatenbank-Verwaltungssystem zu erzielen und gleichzeitig das Wiederherstellungsproblem der Zieldatenbank elegant zu lösen.However, all of the traditional connected databases that are optimized for transactions and analytical processing can require the known overhead of maintaining persistent recovery logs, in addition to unoptimized utilization of the changes from the source database in the target database combined databases can slow down considerably. Therefore, it may be necessary to reduce the effort required to achieve higher performance levels for a combined transactional/analytical database management system while elegantly solving the target database recovery problem.
KURZDARSTELLUNGSHORT PRESENTATION
Gemäß einem Aspekt der vorliegenden Erfindung kann ein durch einen Computer ausgeführtes Verfahren zur Wiederherstellung nach einem Absturz für verknüpfte Datenbanken bereitgestellt werden. Die verknüpften Datenbanken können eine Quellendatenbank und eine zugehörige Zieldatenbank aufweisen und ausgewählte, an ein Datenbankverwaltungssystem gerichtete Abfragen, welches die Quellendatenbank aufweist, können zur Verarbeitung an ein Datenbankverwaltungssystem übertragen werden, das die Zieldatenbank aufweist. Das Verfahren kann ein Synchronisieren von ausgewählten Teilen vom Inhalt von Tabellen der Quellendatenbank mit jeweiligen Teilen vom Inhalt von Tabellen der Zieldatenbank, ein Anwenden, während des Synchronisierens, von Änderungen an der Quellendatenbank auf einen speicherinternen Zieldatenbankteil des die Zieldatenbank aufweisenden Datenbankverwaltungssystems unter Verwendung einer Wiederherstellungsprotokolldatei der Quellendatenbank und ein asynchrones Speichern von auf den speicherinternen Zieldatenbankteil persistent angewandten Änderungen in einem persistenten Zieldatenbankspeicher umfassen.According to one aspect of the present invention, a computer-executed crash recovery method for linked databases may be provided. The linked databases may include a source database and an associated target database, and selected queries directed to a database management system comprising the source database may be transferred to a database management system comprising the target database for processing. The method may include synchronizing selected portions of the contents of tables of the source database with respective portions of the contents of tables of the target database, applying, during synchronization, changes to the source database to an in-memory target database portion of the database management system having the target database using a recovery log file of the source database and asynchronously storing changes persistently applied to the in-memory target database part in a persistent target database store.
Nach einem Datenbankabsturz des Zieldatenbanksystems kann das Verfahren ein Wiederherstellen des speicherinternen Zieldatenbankteils mit der in dem persistenten Zieldatenbankspeicher verfügbaren aktuellsten Momentaufnahme und ein Anwenden, nach dem Datenbankabsturz auf dem Zieldatenbanksystem, von Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicher verfügbare aktuellste Momentaufnahme haben, auf den speicherinternen Zieldatenbankteil umfassen.After a database crash of the target database system, the method may include restoring the in-memory target database portion with the most recent snapshot available in the target database persistent storage and applying, after the database crash on the target database system, changes from the source database recovery log file that have a later timestamp than those in the persistent Target database storage has the most recent snapshot available, to the in-memory target database portion.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann ein verknüpftes Datenbanksystem mit Wiederherstellung nach einem Absturz für verknüpfte Datenbanken bereitgestellt werden. Die verknüpften Datenbanken können eine Quellendatenbank und eine zugehörige Zieldatenbank aufweisen, und ausgewählte Teile vom Inhalt von Tabellen der Quellendatenbank können mit jeweiligen Teilen des Inhalts der Tabellen der Zieldatenbank synchronisiert werden. Das verknüpfte Datenbanksystem kann einen Prozessor und einen per Datenaustausch mit dem Prozessor verbundenen Hauptspeicher aufweisen, wobei der Hauptspeicher Programmcodeteile speichern kann, die wenn sie ausgeführt werden, es dem Prozessor ermöglichen, ausgewählte Teile vom Inhalt von Tabellen der Quellendatenbank mit jeweiligen Teilen vom Inhalt von Tabellen der Zieldatenbank zu synchronisieren, während des Synchronisierens Änderungen an der Quellendatenbank auf einen speicherinternen Zieldatenbankteil des die Zieldatenbank aufweisenden Datenbankverwaltungssystems unter Verwendung einer Wiederherstellungsprotokolldatei der Quellendatenbank anzuwenden und persistent angewandte Änderungen an dem speicherinternen Zieldatenbankteil in einem persistenten Zieldatenbankspeicher asynchron zu speichern.According to another aspect of the present invention, a linked database system with crash recovery for linked databases may be provided. The linked databases may include a source database and an associated target database, and selected portions of the contents of tables of the source database may be synchronized with respective portions of the contents of the tables of the target database. The linked database system may include a processor and a main memory coupled to the processor via communication, the main memory being able to store portions of program code that, when executed, enable the processor to match selected portions of the contents of tables of the source database with respective portions of the contents of tables to synchronize the target database, while synchronizing, to apply changes to the source database to an in-memory target database portion of the database management system having the target database using a recovery log file of the source database, and persistently applied changes to the in-memory target data Asynchronously store the bank part in a persistent target database storage.
Der Hauptspeicher kann auch Programmcodeteile speichern, die, wenn sie ausgeführt werden, es dem Prozessor ermöglichen, nach einem Datenbankabsturz auf dem Zieldatenbanksystem den speicherinternen Zieldatenbankteil mit der in dem persistenten Zieldatenbankspeicher verfügbaren aktuellsten Momentaufnahme wiederherzustellen und nach dem Datenbankabsturz auf dem Zieldatenbanksystem Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicher verfügbare aktuellste Momentaufnahme haben, auf den speicherinternen Zieldatenbankteil anzuwenden.Main memory may also store portions of program code that, when executed, enable the processor to restore the in-memory target database portion to the most recent snapshot available in the target database persistent memory after a database crash on the target database system and to recover changes from the recovery log file of the target database system after the database crash Source databases that have a later timestamp than the most recent snapshot available in the target database persistent storage to the in-memory target database part.
Das vorgeschlagene, durch einen Computer ausgeführte Verfahren für eine Wiederherstellung nach einem Absturz für verknüpfte Datenbanken kann mehrere Vorteile, technische Wirkungen, Beiträge und/oder Verbesserungen bieten:The proposed computer-executed crash recovery method for linked databases may provide several advantages, technical effects, contributions and/or improvements:
Die Aktualisierung und die Änderung sowie die Abfragen an den speicherinternen Teil können ohne Verlangsamung fortgesetzt werden, indem auch die Änderungen an der Zieldatenbank persistent gespeichert werden. Somit kann das Protokollieren und die Zustandsspeicherung von Datenstrukturen einer physischen Datenbank von der Verarbeitung von IUDs in Datenbanktransaktionen entkoppelt werden. Das heißt, dass die Persistenzphase übersprungen wird, wenn Änderungen an der Zieldatenbank durchgeführt werden - insbesondere in dem speicherinternen Teil - und Aktualisierungsoperationen ohne zusätzliche Verzögerung fortgesetzt werden können. Daher können Datensätze, die für eine Wiederherstellung der Zieldatenbank nach einem Absturz benötigt würden, durch einen zugeordneten asynchronen Datenpersistenzservice asynchron geschrieben werden. Durch IUD-Transaktionen vorgenommene Änderungen werden lediglich auf die speicherinterne Darstellung der Daten angewandt, wo sie durch an die Zieldatenbank, d.h. den Beschleuniger, ausgelagerte Datenbankabfragen ungeachtet dessen, ob sie bereits auf persistenten Datenträgern gespeichert sind oder nicht, unmittelbar verarbeitet werden können. Dies kann auch als ein Aufheben der Bedingung der Dauerhaftigkeit von ACID-Eigenschaften der Datenbank interpretiert werden.The update and change as well as the queries to the in-memory part can continue without slowdown by also persisting the changes to the target database. Thus, the logging and state storage of data structures of a physical database can be decoupled from the processing of IUDs in database transactions. This means that the persistence phase is skipped when changes are made to the target database - especially in the in-memory part - and update operations can continue without additional delay. Therefore, records that would be required for crash recovery of the target database can be written asynchronously by an associated asynchronous data persistence service. Changes made by IUD transactions are applied only to the in-memory representation of the data, where it can be immediately processed by database queries offloaded to the target database, i.e. the accelerator, regardless of whether or not it is already stored on persistent disks. This can also be interpreted as removing the persistence condition of database ACID properties.
Aufgrund des asynchronen Schreibens von festgeschriebenen Änderungen aus speicherinternen Datenstrukturen in ihre persistenten Pendants könnten einige von ihnen im Falle eines Datenbankabsturzes im Zieldatenbanksystem fehlen. Die Wiederherstellung nach einem Absturz muss daher gegebenenfalls die möglicherweise unvollständige Momentaufnahme mit dem Quellendatenbanksystem synchronisieren, indem fehlende Änderungen wieder eingespielt werden. Im Unterschied zu anderen Lösungen, bei denen ausgelagerte Tabellen nicht mit einem Mechanismus zum Laden von Massendaten vollständig neu geladen werden, können die fehlenden Teile inkrementell wiederhergestellt werden. Das heißt, der Zustand der Zieldatenbank kann aus der aktuellsten, asynchron persistenten Momentaufnahme der Zieldatenbank wiederhergestellt werden, und mit Hilfe von Wiederherstellungsmetadaten ermittelt er, welche zusätzlichen Änderungen möglicherweise immer noch fehlen. D.h., welche Änderungen aus der Quellendatenbank durch die Zieldatenbanken aus der Transaktions- oder Wiederherstellungsprotokolldatei des Quellendatenbanksystems wieder eingespielt werden müssen, um den aktuellen konsistenten Zustand der Zieldatenbank schließlich wiederherzustellen.Due to the asynchronous writing of committed changes from in-memory data structures to their persistent counterparts, some of them may be missing from the target database system in the event of a database crash. Crash recovery may therefore need to synchronize the potentially incomplete snapshot with the source database system by restoring missing changes. Unlike other solutions that do not fully reload paged tables with a bulk data loading mechanism, the missing parts can be restored incrementally. That is, the state of the target database can be restored from the most recent, asynchronously persistent snapshot of the target database and uses restore metadata to determine what additional changes may still be missing. That is, what changes from the source database must be restored by the target databases from the transaction or recovery log file of the source database system in order to ultimately restore the current consistent state of the target database.
Dadurch können eingehende Abfragen in der Zieldatenbank verzögert werden, während die Wiederherstellungsprozesse aktiv sind, bis in dem speicherinternen Teil der Zieldatenbank wieder ein konsistenter und aktualisierter Zustand hergestellt wurde. Die durch die Wiederherstellung verursachte Verzögerung kann im Vergleich zu bekannten Lösungen deutlich geringer sein, jedoch können Verarbeitungs- und Speicherkosten für ein asynchrones Verwalten der Datenbank-Momentaufnahme in dem Zieldatenbanksystem etwas höher sein. Dies ist jedoch nur ein geringer Preis für eine höhere Verfügbarkeit und kurzfristige Wiederherstellungszeiten des Zieldatenbanksystems.This allows incoming queries on the target database to be delayed while the recovery processes are active until the in-memory portion of the target database is restored to a consistent and updated state. The delay caused by the restore can be significantly lower compared to known solutions, but processing and storage costs for asynchronously maintaining the database snapshot in the target database system may be slightly higher. However, this is a small price to pay for increased availability and short-term recovery times of the target database system.
Die asynchrone persistente Speicherung von Änderungen an der Zieldatenbank kann auch dazu beitragen, die Protokollierung effizienter auszuführen, E/A-Operationen können effizienter ausgeführt werden - z.B. durch einen Batchprozess - oder selbstkompensierende Änderungen können ganz gelöscht werden. Das heißt, ein Zieldatensatz, der auf eine Weise geändert wurde, die vor einem nächsten persistenten Speicherschritt von Änderungen der Zieldatenbank zurückgesetzt werden kann, kann in einem Puffer zwischen der Zieldatenbank und dem persistenten Speichermedium gelöscht werden.Asynchronously persisting changes to the target database can also help logging to be performed more efficiently, I/O operations can be performed more efficiently - for example through a batch process - or self-compensating changes can be deleted entirely. That is, a target record that has been changed in a way that can be rolled back from changes to the target database before a next persistent storage step can be deleted in a buffer between the target database and the persistent storage medium.
Im Folgenden werden zusätzliche Ausführungsformen des erfindungsgemäßen Konzepts - die sowohl auf das Verfahren als auch das System anwendbar sind - beschrieben.Additional embodiments of the concept according to the invention - which are applicable to both the method and the system - are described below.
Gemäß einer interessanten Ausführungsform des Verfahrens kann das Synchronisieren ein Lesen von Einträgen einer Wiederherstellungsprotokolldatei, die sich auf die Quellendatenbank bezieht, und ein Anwenden der gelesenen Einträge auf die Zieldatenbank aufweisen. Dies kann durch den Verwaltungsteil des Zieldatenbank-Verwaltungssystems durchgeführt werden. Jedoch können auch andere Techniken zur Synchronisierung verwendet werden, die z.B. auf SQL (Structured Query Language) oder Q, d.h. einer für spaltenbasierte Datenbanken optimierten Abfragesprache, beruhen.According to an interesting embodiment of the method, synchronizing may include reading entries of a recovery log file related to the source database and applying the read entries to the target database. This can be done through the management part of the target database management system be performed. However, other synchronization techniques can also be used, for example based on SQL (Structured Query Language) or Q, ie a query language optimized for column-based databases.
Gemäß einer einzelnen nützlichen Ausführungsform des Verfahrens kann die Quellendatenbank für Transaktionen - d.h. für eine Online-Transaktionsverarbeitung (OLTP, online transaction processing) - optimiert sein, und/oder wobei die Quellendatenbank ein zeilenorientiertes relationales DBMS ist. Dies kann das operative Rückgrat von IT-(Informationstechnologie-)Operationen eines Unternehmens darstellen und effizient unterstützen. Eine zeilenorientierte Datenbank kann für symmetrische, schnelle Lese-, Schreib- und Änderungsoperationen an den Daten in der Datenbank optimiert sein. Sie kann auch für ein Erzeugen von Berichten geeignet sein. Jedoch ist dieser Typ von Datenbank oftmals nicht optimal für Analyseoperationen.According to a single useful embodiment of the method, the source database may be optimized for transactions - i.e., online transaction processing (OLTP) - and/or wherein the source database is a row-oriented relational DBMS. This can represent and efficiently support the operational backbone of a company's IT (information technology) operations. A row-oriented database can be optimized for symmetric, fast read, write, and modify operations on the data in the database. It can also be suitable for generating reports. However, this type of database is often not optimal for analytical operations.
Gemäß einer einzelnen zulässigen Ausführungsform des Verfahrens kann die Zieldatenbank für Analyseoperationen - d.h. für eine Online-Analyseverarbeitung (OLAP, online analytical processing) - optimiert und/oder die Zieldatenbank kann eine spaltenorientierte Datenbank sein. Bei diesem Typ von Datenbank - gemäß einer weiteren Ausführungsform - kann es sich um eine spaltenorientierte Datenbank handeln. Sie kann Abfragen mit vielen Abhängigkeiten und Kreuzkorrelationen viel besser als OLTP-optimierte Datenbanksysteme unterstützen.According to a single acceptable embodiment of the method, the target database may be optimized for analytical operations - i.e. for online analytical processing (OLAP) - and/or the target database may be a column-oriented database. This type of database - according to a further embodiment - can be a column-oriented database. It can support queries with many dependencies and cross-correlations much better than OLTP-optimized database systems.
Gemäß einer vorteilhaften Ausführungsform kann das Verfahren auch ein Verzögern, im Falle eines Absturzes der Zieldatenbank, von Abfragen an die Zieldatenbank umfassen, bis eine Wiederherstellung der Zieldatenbank beendet werden kann. Somit kann der Wiederherstellungsprozess für einen Benutzer transparent sein. Es kann schließlich zu einer geringfügigen Verzögerung bei seiner Analyseabfrage kommen. Da die Antwortzeit bei komplexen Analyseabfragen jedoch ohnehin vergleichsweise lang ist, bemerkt der Benutzer die Verzögerung möglicherweise überhaupt nicht.According to an advantageous embodiment, the method can also include delaying, in the event of a crash of the target database, queries to the target database until a recovery of the target database can be completed. Thus, the recovery process can be transparent to a user. Finally, there may be a slight delay in its analysis query. However, since the response time for complex analysis queries is already comparatively long, the user may not notice the delay at all.
Optional können an die Zieldatenbank gerichtete Abfragen während des Wiederherstellungsprozesses der Zieldatenbank durch die Quellendatenbank ausgeführt werden. Dadurch kann die Quellendatenbank während der Transaktionen etwas langsamer werden, jedoch kann dies für die Gesamtzufriedenheit des Benutzers einen akzeptablen Kompromiss darstellen.Optionally, queries directed at the target database can be executed by the source database during the target database recovery process. This may make the source database slightly slower during transactions, but this may be an acceptable trade-off for overall user satisfaction.
Gemäß einer vorteilhaften Ausführungsform des Verfahrens können Metadaten, welche die ausgewählten Tabellen definieren, Teil der Wiederherstellungsprotokolldatei sein. Auf diese Weise kann die allgemeine Architektur der speicherinternen Zieldatenbank bereits in der Wiederherstellungsprotokolldatei der Quellendatenbank definiert sein. Dies gilt gegebenenfalls auch für die Teile von Daten von Tabellen, die an die Quellendatenbank gespiegelt werden sollen. Somit kann eine einzige Quelle für Datendefinitionen verwendet werden, so dass keine Konfliktsituationen hervorgerufen werden können.According to an advantageous embodiment of the method, metadata defining the selected tables may be part of the recovery log file. In this way, the general architecture of the target in-memory database can already be defined in the recovery log file of the source database. This may also apply to the portions of table data that are to be mirrored to the source database. This means that a single source for data definitions can be used so that no conflict situations can arise.
Gemäß einer erweiterten Ausführungsform des Verfahrens kann das Speichern von persistent angewandten Änderungen ein Warten aufweisen, bis gegebenenfalls eine vorher festgelegte Anzahl von Änderungen in dem speicherinternen Zieldatenbankteil abgeschlossen wurde. Die vorher festgelegte Anzahl kann während der Konfiguration der Datenbank konfigurierbar sein und/oder während des Betriebs des Datenbankverwaltungssystems auch geändert werden. Jedoch kann der Vorteil dieses Ansatzes darin bestehen, dass er die Analyseoperationen der Zieldatenbank nicht verlangsamt. Somit kann eine Gruppe von Aktualisierungen an der Zieldatenbank in einem Schritt entnommen und persistent gespeichert werden. Neben der Verwendung einer vorher festgelegten Anzahl von Änderungen auf der Zieldatenbank kann auch in Erwägung gezogen werden, die Belastung für die Zieldatenbank zu überwachen und die persistente Speicherung von Änderungen an der Zieldatenbank während Zeiträumen durchzuführen, in denen die Analysebelastung für die Zieldatenbank vergleichsweise gering ist.According to an extended embodiment of the method, saving persistently applied changes may include waiting until, if necessary, a predetermined number of changes in the in-memory target database part has been completed. The predetermined number may be configurable during configuration of the database and/or may also be changed during operation of the database management system. However, the advantage of this approach may be that it does not slow down the analysis operations of the target database. This means that a group of updates to the target database can be extracted and stored persistently in one step. In addition to using a predetermined number of changes on the target database, one may also consider monitoring the load on the target database and persisting changes to the target database during periods when the analysis load on the target database is comparatively low.
Dieses Merkmal kann innerhalb eines einzelnen Threads oder Prozesses ausgeführt sein, der warten kann, bis eine vorher festgelegte Anzahl von Änderungen in dem speicherinternen Teil abgeschlossen ist. Bei jeder Änderung innerhalb des Satzes der abgeschlossenen Änderungen seit der letzten Ausführung werden die Änderungen in dem persistenten Datenbankteil der Zieldatenbank persistent gespeichert. Zusätzlich werden auch zugehörige Metadaten persistent gespeichert, welche die vor Kurzem persistent gespeicherte Änderung (wie beispielsweise die letzte entsprechende Folgenummer des Blockdatensatzes innerhalb des Quellendatenbanksystems) beschreiben, damit Änderungswiedereinspielpunkte während der Wiederherstellungsphase angegeben werden können. Daraus kann sich ein Zeitpunkt des letzten konsistenten geänderten Satzes, der gespeichert wurde, ergeben. Dieser Zeitpunkt kann hilfreich sein, um den speicherinternen Teil der Zieldatenbank aus dem persistenten Teil der Zieldatenbank wiederherzustellen und die restlichen IUDs des speicherinternen Teils der Zieldatenbank aus der Wiederherstellungsprotokolldatei der Quellendatenbank inkrementell wiederherzustellen. Diese zusätzlichen Daten werden - im Falle einer erforderlichen Wiederherstellung der Zieldatenbank - aus der Quellendatenbank oder dem inkrementellen Aktualisierungsprozess angefordert. Am Ende des Wiederherstellungsprozesses kann der Abfrageprozessor durch ein Signal „wieder aktiv“ darüber informiert werden, dass Abfragen von da ab von der Zieldatenbank verarbeitet werden können.This feature can be implemented within a single thread or process that can wait until a predetermined number of changes in the in-memory portion are completed. For each change within the set of completed changes since the last execution, the changes are persisted to the persistent database part of the target database. Additionally, associated metadata describing the recently persisted change (such as the last corresponding sequence number of the block record within the source database system) is also persisted so that change replay points can be specified during the restore phase. This can result in a time of the last consistent changed record that was saved. This point in time can be useful to restore the in-memory portion of the target database from the persistent portion of the target database and to incrementally restore the remaining IUDs of the in-memory portion of the target database from the source database recovery log file. This additional data is - in the event of a required restore of the target database - from the source database or the incremental len update process requested. At the end of the recovery process, the query processor can be informed by a "back in action" signal that queries can then be processed by the target database.
Gemäß einer weiteren vorteilhaften Ausführungsform des Verfahrens kann das Wiederherstellen von Tabellen - oder der Partitionen davon - des speicherinternen Zieldatenbankteils ein Priorisieren oder eine Priorisierung des Wiederherstellens bzw. der Wiederherstellung gemäß einer Option aufweisen, die aus der aus einer Datennutzung, einer Abfragepriorität und einer Datenpriorität bestehenden Gruppe ausgewählt wird.According to a further advantageous embodiment of the method, restoring tables - or the partitions thereof - of the in-memory target database part may include prioritizing the restoring or restoring according to an option consisting of a data usage, a query priority and a data priority Group is selected.
Diese Optionen werden in den nachstehenden Absätzen detailliert beschrieben. Jedoch besteht das allgemeine Konzept darin, verschiedene Optimierungsverfahren während des Wiederherstellungsprozesses zu ermöglichen, um eine Ausführung von Abfragen zu ermöglichen, obwohl die Zieldatenbank „in der Wiederherstellung befindlich“ ist, d.h. sich im Wiederherstellungsmodus befindet. Diese Optimierungsoptionen können konfigurierbar und - im Allgemeinen - in einer einzelnen Ausführung kombinierbar sein.These options are detailed in the paragraphs below. However, the general concept is to enable various optimization techniques during the recovery process to allow queries to be executed even though the target database is “in recovery”, i.e. in recovery mode. These optimization options can be configurable and - generally - combined in a single execution.
Gemäß einer einzelnen optionalen Ausführungsform des Verfahrens kann das Priorisieren der Wiederherstellung gemäß der Datennutzung ein Verwalten eines Zählers für jede Tabelle - oder einer Partition davon - in der Zieldatenbank aufweisen. Der Zählerwert des Zählers kann anzeigen, wie viele Abfragen möglicherweise auf die zugehörige Tabelle warten, sowie anzeigen, dass zunächst die Datenbanktabelle mit dem höchsten Zählerwert zuerst wiederhergestellt wird. Später können dann die anderen Tabellen wiederhergestellt werden. Diese Option kann eine schnelle Wiederherstellung derjenigen Tabellen der Zieldatenbank ermöglichen, welche stark nachgefragt werden. Somit kann den Benutzern so bald wie möglich ein vollständig wiederhergestellter Teil der Datenbank, d.h. die stark nachgefragten Tabellen, bereitgestellt werden. Diese Option kann als nachfrage- oder datennutzungsoptimierte Wiederherstellung bezeichnet werden.According to a single optional embodiment of the method, prioritizing recovery according to data usage may include maintaining a counter for each table - or a partition thereof - in the target database. The counter value of the counter can indicate how many queries may be waiting on the associated table, as well as indicate that the database table with the highest counter value will be restored first. The other tables can then be restored later. This option can enable quick recovery of those tables in the target database that are in high demand. Thus, a fully restored part of the database, i.e. the high-demand tables, can be provided to users as soon as possible. This option can be referred to as demand-optimized or data usage-optimized recovery.
Somit kann die Liste der wartenden Abfragen zur Steuerung des Wiederherstellungsprozesses und zur Minimierung der Wiederherstellungszeit berücksichtigt werden. Sobald eine neue Datenbankabfrage an der Zieldatenbank ankommt, während eine Wiederherstellung im Gang ist, können deren Datenzugriffe analysiert werden. Wenn sie nicht auf nicht wiederhergestellte Daten zugreift, kann sie sofort verarbeitet werden. Andernfalls wird die Abfrage in eine Liste mit wartenden Abfragen als Teil des Wiederherstellungszustands eingetragen. Die Wiederherstellungsstufen werden durch einen Wiederherstellungszeitplan ausgewertet, um eine Folge von Wiederherstellungsaktionen abzuleiten, wobei diejenigen Tabellen und/oder Tabellenpartitionen bevorzugt werden, die Abfragen tatsächlich blockieren. Die nützlichste Wiederherstellungsaktion kann nach Abschluss der Wiederherstellung über eine der verfügbaren Wiederherstellungsstrategien terminiert werden, der Wiederstellungszustand kann aktualisiert und auf die wiederhergestellte Tabelle und/oder Partition wartende Abfragen können benachrichtigt werden, wenn sie nicht mehr blockiert werden müssen.Thus, the list of waiting queries can be taken into account to control the recovery process and minimize the recovery time. As soon as a new database query arrives at the target database while a restore is in progress, its data access can be analyzed. If it does not access unrecovered data, it can be processed immediately. Otherwise, the query is entered into a waiting query list as part of the recovery state. The recovery levels are evaluated through a recovery schedule to derive a sequence of recovery actions, favoring those tables and/or table partitions that actually block queries. The most useful restore action can be scheduled after the restore is complete using one of the available restore strategies, the restore state can be updated, and queries waiting on the restored table and/or partition can be notified when they no longer need to be blocked.
Detaillierter betrachtet, kann die Wiederherstellung nach einem Absturz auf der Zieldatenbank wie folgt beschrieben werden: erstens die Liste der Tabellen oder Tabellenpartitionen, die wiederhergestellt werden müssen, indem bekannte Wiederherstellungsmetadaten auf der Zieldatenbank verwendet werden. Zweitens wird die Liste der wiederherzustellenden Tabellen oder Tabellenpartitionen in dem Wiederstellungszustand gespeichert. Drittens kann Folgendes ausgeführt werden, solange die wiederherzustellende Liste nicht leer ist:
- (i) ermittle die nächste(n) wiederherzustellende(n) Tabellen und/oder Tabellenpartition aus der Liste;
- (ii) terminiere die Wiederherstellungsaktion über die für die Zieldatenbank konfigurierte Wiederherstellungsstrategie;
- (iii) warte, bis die Wiederherstellungsaktion abgeschlossen ist;
- (iv) aktualisiere den Wiederherstellungszustand, d.h., markiere die wiederherzustellende Tabelle/Partition und entferne die Tabelle/Partition aus der Blockierungsdatenliste einer jeden auf die Tabelle und/oder Tabellenpartition wartenden Abfrage; und
- (v) ermittle die Liste der Abfragen, deren Blockierungsdatenliste leer wurde, und benachrichtige den Abfrageprozessor, so dass er die Abfrage jetzt verarbeiten kann.
- (i) determine the next table(s) and/or table partition(s) to be restored from the list;
- (ii) schedule the recovery action using the recovery strategy configured for the target database;
- (iii) wait for the recovery action to complete;
- (iv) update the recovery state, ie, mark the table/partition to be recovered and remove the table/partition from the blocking data list of each query waiting on the table and/or table partition; and
- (v) identify the list of queries whose blocking data list has become empty and notify the query processor so that it can now process the query.
Dabei kann die Liste der wiederherzustellenden Tabellen und/oder Tabellenpartitionen durch eine Prioritätenwarteschlange ausgeführt sein, wobei der nachstehend beschriebene Algorithmus verwendet wird, um das nächste Wiederherstellungselement für den nächsten Wiederherstellungszyklus dynamisch zu berechnen. Die unter (iii) genannten Schritte können für mehrere Tabellen und/oder Tabellenpartitionen parallel ausgeführt werden, um den Wiederherstellungsprozess zu beschleunigen.The list of tables and/or table partitions to be restored may be executed through a priority queue, using the algorithm described below to dynamically calculate the next restore item for the next restore cycle. The steps mentioned in (iii) can be performed for multiple tables and/or table partitions in parallel to speed up the recovery process.
Die Ermittlung der wiederherzustellenden Tabellen und/oder Tabellenpartitionen kann wie folgt ausgeführt werden:
- (i) wenn der Wiederherstellungsprozess nach einem Absturz eingeleitet wird, erstelle ein leeres Histogramm von Blockierungstabellen und/oder Blockierungstabellenpartitionen;
- (ii) wenn die Blockierungsabfrage in dem Wiederherstellungszustand eingetragen wird, erhöhe den Nutzungszähler für jede Tabelle und/oder Tabellenpartition in der Blockierungsbereichsliste der Abfrage um eins;
- (iii) wenn die nächste wiederherzustellende Tabelle/Tabellenpartition ermittelt werden muss, wähle die Tabelle/Tabellenpartition aus, welche den größten Nutzungszähler hat; und
- (iv) wenn eine Wiederherstellungsaktion einer Tabelle/Tabellenpartition beendet wird, entferne die entsprechenden Histogrammdaten.
- (i) when the crash recovery process is initiated, create an empty histogram of blocking tables and/or blocking table partitions;
- (ii) if the blocking query is entered into the recovery state, increment the usage count for each table and/or table partition in the query's blocking range list by one;
- (iii) if the next table/table partition to restore needs to be determined, select the table/table partition that has the largest usage count; and
- (iv) when a table/table partition restore action terminates, remove the corresponding histogram data.
Gemäß einer weiteren optionalen Ausführungsform des Verfahrens kann das Priorisieren der Wiederherstellung gemäß der Abfragepriorität ein zunächst erfolgendes Wiederherstellen derjenigen Datenbanktabellen aufweisen, die Abfragen mit der höchsten Priorität empfangen. Ein solcher Prioritätswert kann einem Datenbanksystem - z.B. einer Produktionsdatenbank im Vergleich zu einer Testdatenbank - oder auch auf der Grundlage einer einzelnen Abfrage zugewiesen werden. Diese Option kann als Abfragepriorität oder einfach als datenprioritätsoptimierte Wiederherstellung bezeichnet werden.According to a further optional embodiment of the method, prioritizing the restore according to the query priority may include first restoring those database tables that receive queries with the highest priority. Such a priority value can be assigned to a database system - for example, a production database compared to a test database - or even on the basis of a single query. This option can be called query priority or simply data priority optimized recovery.
Gemäß einer weiteren optionalen Ausführungsform des Verfahrens kann das Priorisieren der Wiederherstellung gemäß der Datenpriorität ein Verwalten von (mindestens) zwei Gruppen von Datenbanktabellen, wobei sich jede Gruppe auf eine einzelne Gruppe von Benutzern bezieht, und ein zunächst erfolgendes Wiederherstellen der Datenbanktabellen der Gruppe aufweisen, die über eine höher konfigurierte Gruppenpriorität verfügt. Eine solche Situation kann in einer Umgebung mit mehreren Benutzern/mehreren Gruppen/mehreren Tenants vorkommen, in der einem Benutzer oder einer Gruppe oder einem Tenant eine höhere Priorität für Abfragen zugewiesen sein kann. Z.B. kann ein Tenant eine höher garantierte Verfügbarkeit des Datenbanksystems haben. In einem solchen Fall kann diesem Tenant eine höhere Priorität zugewiesen werden. Ein solches Szenario kann am besten in einer Multi-Tenant-Datenbank funktionieren, die in einem Cloud-Computing-Rechenzentrum betrieben wird. Diese Option kann als kundenprioritätsoptimierte Wiederherstellung bezeichnet werden.According to a further optional embodiment of the method, prioritizing recovery according to data priority may include managing (at least) two groups of database tables, each group relating to a single group of users, and initially restoring the group's database tables has a higher group priority configured. Such a situation may occur in a multi-user/multi-group/multi-tenant environment where a user or a group or a tenant may be assigned a higher priority for queries. For example, a tenant can have a higher guaranteed availability of the database system. In such a case, that tenant may be assigned a higher priority. Such a scenario may work best in a multi-tenant database operating in a cloud computing data center. This option can be referred to as customer priority optimized recovery.
Gemäß einer weiteren interessanten Ausführungsform kann das Verfahren auch ein Ermitteln des wiederherzustellenden Datenvolumens für nächste wiederherzustellende Tabellen und ein Wiederherstellen der Tabelle(n) unter Verwendung einer Wiederherstellungsstrategie umfassen, die von dem wiederherzustellenden Volumen abhängt. Dabei handelt es sich bei der Wiederherstellungsstrategie um eine inkrementelle Aktualisierungsstrategie oder eine Strategie zum Aktualisieren von Massendaten. Somit kann Datenbanktabelle für Datenbanktabelle (oder Gruppe von Datenbanktabellen) entschieden werden, welche Aktualisierungsstrategie verwendet werden soll, um die Gesamtwiederherstellungszeit der Zieldatenbank zu minimieren. Diese Option kann als zeitoptimierte Wiederherstellung bezeichnet werden.According to another interesting embodiment, the method may also include determining the data volume to be restored for next tables to be restored and restoring the table(s) using a restore strategy that depends on the volume to be restored. The recovery strategy is an incremental refresh strategy or a bulk data refresh strategy. Thus, database table by database table (or group of database tables) it can be decided which update strategy should be used to minimize the overall recovery time of the target database. This option can be called time-optimized recovery.
Darüber hinaus können Ausführungsformen die Form eines zugehörigen Computerprogrammprodukts annehmen, auf das von einem durch einen Computer verwendbaren oder durch einen Computer lesbaren Datenträger aus zugegriffen werden kann, der Programmcode zur Verwendung durch einen Computer oder ein beliebiges Anweisungsausführungssystem oder in Verbindung mit einem Computer oder einem beliebigen Anweisungsausführungssystem bereitstellt. Zum Zweck dieser Beschreibung kann ein durch einen Computer verwendbarer oder durch einen Computer lesbarer Datenträger eine beliebige Vorrichtung sein, die Mittel enthalten kann, um das Programm zur Verwendung durch das Anweisungsausführungssystem, die Anweisungsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit dem Anweisungsausführungssystem, der Anweisungsausführungsvorrichtung oder -einheit zu speichern, zu übertragen, weiterzugeben oder zu transportieren.Additionally, embodiments may take the form of an associated computer program product accessible from a computer-usable or computer-readable medium, the program code for use by or in connection with a computer or any instruction execution system Instruction execution system provides. For purposes of this description, a computer-usable or computer-readable medium may be any device that may contain means for converting the program for use by the instruction execution system, instruction execution device or device, or for use in conjunction with the instruction execution system Store, transmit, distribute or transport instruction execution device or unit.
KURZBESCHREIBUNG DER DIVERSEN ANSICHTEN DER ZEICHNUNGENBRIEF DESCRIPTION OF THE VARIOUS VIEWS OF THE DRAWINGS
Es sei angemerkt, dass Ausführungsformen der Erfindung unter Bezugnahme auf verschiedene Gegenstände beschrieben werden. Insbesondere werden einige Ausführungsformen unter Bezugnahme auf Verfahrensansprüche beschrieben, wohingegen andere Ausführungsformen unter Bezugnahme auf Vorrichtungsansprüche beschrieben werden. Der Fachmann entnimmt der vorstehenden und der nachfolgenden Beschreibung jedoch, dass, vorbehaltlich anderer Angaben, neben jeder beliebigen Kombination aus Merkmalen, die zu einem Typ von Gegenstand gehören, auch jede beliebige Kombination zwischen Merkmalen, die sich auf verschiedene Gegenstände beziehen, insbesondere zwischen Merkmalen der Verfahrensansprüche und Merkmalen der Vorrichtungsansprüche, als eine in diesem Schriftstück zu offenbarende Kombination betrachtet wird.It should be noted that embodiments of the invention will be described with reference to various subject matter. In particular, some embodiments are described with reference to method claims, whereas other embodiments are described with reference to device claims. However, the person skilled in the art will understand from the above and the following description that, unless otherwise stated, in addition to any combination of features belonging to a type of object, also any combination between features relating to different objects, in particular between features of the Method claims and features of the device claims, is considered a combination to be disclosed in this document.
Die vorstehend definierten Aspekte und weitere Aspekte der vorliegenden Erfindung gehen aus den Beispielen von Ausführungsformen, die nachstehend zu beschreiben sind, hervor und werden unter Bezugnahme auf die Beispiele von Ausführungsformen erklärt, auf welche die Erfindung jedoch nicht beschränkt ist.The aspects defined above and other aspects of the present invention will be apparent from the examples of embodiments to be described below and will be discussed with reference to the examples of embodiments men explained, to which the invention is not limited.
Bevorzugte Ausführungsformen der Erfindung werden lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
-
1 zeigt ein Blockschaubild einer Ausführungsform des erfindungsgemäßen, durch einen Computer ausgeführten Verfahrens für eine Wiederherstellung nach einem Absturz für verknüpfte Datenbanken. -
2 zeigt ein Blockschaubild einer Ausführungsform von verknüpften Datenbanken. -
3 zeigt ein Blockschaubild einer Ausführungsform der Art und Weise, in der die Zieldatenbank synchronisiert werden kann. -
4 zeigt ein Blockschaubild einer Ausführungsform des vorgeschlagenen Konzepts in einer ausführungsnäheren Form. -
5 zeigt ein Blockschaubild einer Ausführungsform des verknüpften Datenbanksystems, das Komponenten für eine kundenprioritätsoptimierte Wiederherstellungsstrategie aufweist. -
6 zeigt ein Blockschaubild einer Ausführungsform des verknüpften Datenbanksystems, das Komponenten für eine volumenoptimierte Wiederherstellungsstrategie aufweist. -
7 zeigt ein Blockschaubild einer Ausführungsform des verknüpften Datenbanksystems für eine Wiederherstellung nach einem Absturz für verknüpfte Datenbanken. -
8 zeigt eine Ausführungsform eines Datenverarbeitungssystems, welches das verknüpfte Datenbanksystem aufweist.
-
1 1 shows a block diagram of an embodiment of the computer-executed method for crash recovery for linked databases according to the invention. -
2 shows a block diagram of an embodiment of linked databases. -
3 shows a block diagram of an embodiment of the manner in which the target database may be synchronized. -
4 shows a block diagram of an embodiment of the proposed concept in a more detailed form. -
5 shows a block diagram of an embodiment of the linked database system having components for a customer priority optimized recovery strategy. -
6 shows a block diagram of an embodiment of the linked database system having components for a volume-optimized recovery strategy. -
7 shows a block diagram of an embodiment of the linked database system for crash recovery for linked databases. -
8th shows an embodiment of a data processing system that has the linked database system.
AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION
Im Kontext dieser Beschreibung werden gegebenenfalls die folgenden Konventionen, Begriffe und/oder Ausdrücke verwendet:The following conventions, terms and/or expressions may be used in the context of this description:
Der Begriff „Wiederherstellung nach einem Absturz“ kann einen Prozess des Wiederherstellens eines Zustands einer Datenbank bezeichnen, in dem sich die Datenbank vor Eintritt des Absturzes befand. Wenn ein Absturz eintritt, sind Daten möglicherweise nicht verfügbar oder inkonsistent.The term “crash recovery” can refer to a process of restoring a database to a state that the database was in before the crash occurred. If a crash occurs, data may be unavailable or inconsistent.
Der Begriff „verknüpfte Datenbanken“ kann mindestens zwei Datenbanken bezeichnen, die eng miteinander verbunden sind. Im Kontext dieses Schriftstücks können verknüpfte Datenbanken als diejenigen bezeichnet werden, die, zumindest teilweise, identische Daten speichern können. Auf der anderen Seite kann die primäre Datenbank bei einem solchen Paar für andere Tasks als die sekundäre Datenbank optimiert sein.The term “linked databases” can mean at least two databases that are closely linked to each other. In the context of this document, linked databases can be referred to as those that can store, at least partially, identical data. On the other hand, in such a pair, the primary database may be optimized for different tasks than the secondary database.
Der Begriff „Quellendatenbank“ - oder „primäre Datenbank“ - kann eine Datenbank bezeichnen, die z.B. für schnelle Transaktionen, d.h. eine Onlinetransaktionsverarbeitung, optimiert ist. Jedoch können auf diese Weise optimierte Datenbanken - d.h. für schnelle Lese-, Schreib-, Aktualisierungsoperationen an den Daten - langsam bei der Durchführung von komplexen Abfragen sein, die eine hohe Anzahl von Tabellen oder eine große Anzahl von Daten einschließen, wie im Falle der Online-Analyseverarbeitung. Zudem kann die Online-Analyseverarbeitung die Online-Transaktionsverarbeitung verlangsamen. Daher können hochoptimierte Datenbankverwaltungssysteme der soeben genannten Datenbanktypen erfolgreich als Tandem arbeiten.The term “source database” - or “primary database” - can refer to a database that is optimized, for example, for fast transactions, i.e. online transaction processing. However, databases optimized in this way - i.e. for fast read, write, update operations on the data - can be slow in performing complex queries involving a large number of tables or a large number of data, as in the case of online -Analysis processing. Additionally, online analytics processing can slow down online transaction processing. Therefore, highly optimized database management systems of the database types just mentioned can work successfully in tandem.
Der Begriff „Zieldatenbank“ - oder „sekundäre Datenbank“ kann die zweite Datenbank in einem solchen Tandem von Datenbanken bezeichnen, die für verschiedene Tasks optimiert ist. Im Kontext des hier beschriebenen Konzepts kann die Zieldatenbank für die Online-Analyseverarbeitung optimiert sein. Sie kann mindestens Teile der Tabellen und Teile der Daten in den Tabellen der Quellendatenbank speichern. Die Zieldatenbank kann auch aus zwei Teilen bestehen: einem speicherinternen Teil für eine schnelle Ausführung von komplexen und mehrdimensionalen Abfragen und einem persistenten Teil, der die Tabellen und Daten des speicherinternen Teils der Zieldatenbank in dem längerfristigen Speicher, z.B. einer Festplatte oder einem Flashspeicher, speichern kann. Auf diese Weise kann es der Zieldatenbank ermöglicht werden - im Falle eines Absturzes der Zieldatenbank -, den größten Teil ihres Inhalts aus dem persistenten Speicher wiederherzustellen.The term “target database” or “secondary database” can mean the second database in such a tandem of databases that is optimized for different tasks. In the context of the concept described here, the target database may be optimized for online analytical processing. It can store at least parts of the tables and parts of the data in the tables of the source database. The target database may also consist of two parts: an in-memory part for fast execution of complex and multi-dimensional queries and a persistent part that can store the tables and data of the in-memory part of the target database in the longer-term storage, such as a hard drive or flash memory . This can allow the target database - in the event of a crash of the target database - to recover most of its contents from persistent storage.
Der Begriff „ausgewählte Teile vom Inhalt von Tabellen“ kann die soeben genannten Teile oder Partitionen der Daten von Teilen der Tabellen der primären Datenbank bezeichnen, die kopiert und in der Zieldatenbank synchron gehalten werden können.The term “selected parts of the contents of tables” may mean the aforementioned parts or partitions of data from parts of the tables of the primary database that can be copied and kept synchronous in the target database.
Der Begriff „ausgewählte Abfragen“ kann einen bestimmten, an die verknüpften Datenbanken gerichteten Typ von Abfragen bezeichnen, welche je nach Art der Abfrage besser durch eine der beiden Datenbanken - insbesondere die Zieldatenbank - ausgeführt werden sollten. Wenn sich der Typ der Abfrage z.B. auf eine Online-Analyseverarbeitung bezieht, kann die Abfrage an die Zieldatenbank weitergeleitet und darf nicht durch die Quellendatenbank ausgeführt werden.The term "selected queries" can refer to a specific type of queries directed at the linked databases, which, depending on the type of query, are better executed by one of the two databases - in particular the target database. For example, if the type of query is related to online analytical processing, the query may be routed to the target database and may not be executed by the source database.
Der Begriff „Datenbankverwaltungssystem“ kann eine Kombination aus Administrations-/Verwaltungssystem bezeichnen, das in der Regel in einer Kombination aus Hardware und Software und mindestens einer zugehörigen Datenbank, welche die Daten speichert, ausgeführt ist.The term “database management system” can refer to a combination of administration/management system, usually in one Combination of hardware and software and at least one associated database that stores the data.
Der Begriff „speicherinterner Zieldatenbankteil“ kann den Teil der Zieldatenbank bezeichnen, der nahezu alle seiner Daten im Hauptspeicher des Computersystems halten kann. Das Datenbankverwaltungssystem der Zieldatenbank kann einen speicherinternen Teil und einen persistenten Teil der Zieldatenbank aufweisen, wobei es sich bei dem persistenten Teil - abgesehen von den letzten Änderungen am speicherinternen Teil - um eine persistent gespeicherte Kopie des speicherinternen Teils handeln kann.The term “in-memory target database part” can refer to the part of the target database that can hold almost all of its data in the main memory of the computer system. The database management system of the target database may have an in-memory portion and a persistent portion of the target database, where the persistent portion may be a persistently stored copy of the in-memory portion, except for recent changes to the in-memory portion.
Der Begriff „persistenter Zieldatenbankspeicher“ kann den Teil des Zieldatenbank-Verwaltungssystems beschreiben, der fähig ist, die Daten der Zieldatenbank persistent zu speichern, d.h. unter Verwendung einer Festplatte oder eines Flashspeichers anstelle eines speicherinternen Speichers.The term "target database persistent storage" may describe the part of the target database management system capable of storing the target database's data persistently, i.e. using a hard drive or flash memory instead of in-memory storage.
Der Begriff „aktuellste Momentaufnahme“ kann einen letzten konsistenten gespeicherten Status der Zieldatenbank bezeichnen.The term “most recent snapshot” may mean a most recent consistent saved state of the target database.
Der Begriff „späterer Zeitstempel“ - insbesondere eine Änderung, die einen späteren Zeitstempel hat - kann z.B. einen Datensatz der Wiederherstellungsprotokolldatei der Quellendatenbank bezeichnen, der eine Zeitanzeige aufweist, welche zeitlich später als die durch den persistenten Teil der Zieldatenbank gespeicherte aktuellste Momentaufnahme erstellt werden kann.For example, the term "later timestamp" - particularly a change that has a later timestamp - may mean a record of the source database's recovery log file that has a time indication that may be taken later in time than the most recent snapshot stored by the persistent portion of the target database.
Der Begriff „Wiederherstellungsprotokolldatei“ kann eine sequenzielle Datei bezeichnen, die Operationen protokolliert, welche auf einer Datenbank durchgeführt werden, insbesondere all jene Operationen, die die Daten ändern, d.h. Einfüge-, Aktualisierungs- und Löschoperationen. Die Wiederherstellungsprotokolldatei kann dafür vorgesehen sein, eine vollständige Wiederherstellung der Datenbank zu ermöglichen. Daher können auch die Tabellendefinitionen der Datenbank Teil der Wiederherstellungsprotokolldatei sein.The term "recovery log file" can mean a sequential file that logs operations performed on a database, particularly all those operations that modify the data, i.e. insert, update and delete operations. The recovery log file can be intended to enable a full recovery of the database. Therefore, the database table definitions can also be part of the recovery log file.
Der Begriff „Metadaten“ kann Daten über Daten bezeichnen, insbesondere eine Definition von Daten von Tabellen in einer Datenbank und möglicherweise Beziehungen zwischen ihnen.The term “metadata” can mean data about data, particularly a definition of data from tables in a database and possibly relationships between them.
Im Folgenden werden die Figuren ausführlich beschrieben. Alle Anweisungen in den Figuren sind schematisch. Zunächst ist ein Blockschaubild einer Ausführungsform des erfindungsgemäßen, durch einen Computer ausgeführten Verfahrens für eine Wiederherstellung nach einem Absturz für verknüpfte Datenbanken dargestellt. The figures are described in detail below. All instructions in the figures are schematic. First, a block diagram of an embodiment of the computer-executed method for crash recovery for linked databases according to the invention is shown.
Anschließend werden weitere Ausführungsformen sowie Ausführungsformen des verknüpften Datenbanksystems mit Wiederherstellung nach einem Absturz für verknüpfte Datenbanken beschrieben.Further embodiments and embodiments of the linked database system with crash recovery for linked databases will then be described.
Ausgewählte Abfragen - insbesondere auf Analyseoperationen ausgerichtete - an ein Datenbankverwaltungssystem, das die Quellendatenbank aufweist, werden zur Verarbeitung an ein Datenbankverwaltungssystem, das die Zieldatenbank aufweist, übertragen, d.h. ausgelagert.Selected queries - in particular those aimed at analysis operations - to a database management system that has the source database are transferred for processing to a database management system that has the target database, i.e. outsourced.
Das Verfahren 100 umfasst auch ein Synchronisieren, 104, von ausgewählten Teilen vom Inhalt von Tabellen der Quellendatenbank - in einigen Datenbanken nur von Teilen von Daten von Teilen der Tabellen und in anderen Ausführungen einer vollständigen Kopie - mit jeweiligen Teilen vom Inhalt von Tabellen der Zieldatenbank, indem während des Synchronisierens Änderungen an der Quellendatenbank auf einen speicherinternen Zieldatenbankteil des Datenbankverwaltungssystems, das die Zieldatenbank aufweist, unter Verwendung einer Wiederherstellungsprotokolldatei der Quellendatenbank angewendet werden, 106.The
Zusätzlich umfasst das Verfahren 100 ein asynchrones Speichern, 108, von persistent angewandten Änderungen an dem speicherinternen Zieldatenbankteil in einem persistenten Zieldatenbankspeicherteil und, nach einem Datenbankabsturz auf dem Zieldatenbanksystem, ein Wiederherstellen, 110, des speicherinternen Zieldatenbankteils mit der in dem persistenten Zieldatenbankspeicher verfügbaren aktuellsten Momentaufnahme sowie ein Anwenden, 112, nach dem Datenbankabsturz des Zieldatenbanksystems, von Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicher verfügbare aktuellste Momentaufnahme haben, auf den speicherinternen Zieldatenbankteil.Additionally, the
Optional kann auch der persistente Teil der Zieldatenbank parallel aktualisiert werden. Dazu müsste jedoch auch der persistente Speicherprozess oder Speicherprozessor aktiv sein, um Änderungen des speicherinternen Teils der Zieldatenbank persistent zu speichern.Optionally, the persistent part of the target database can also be updated in parallel. In addition However, the persistent storage process or storage processor would also have to be active to persist changes to the in-memory part of the target database.
Zusätzlich kann es vorteilhaft sein, die Zieldatenbank mit Massendaten aus der Quellendatenbank zu laden, insbesondere während eines Initialisierungsprozesses. Dies kann dazu beitragen, den vergleichsweise langsameren inkrementellen Aktualisierungs- oder Synchronisierungsprozess zu vermeiden, da die Quellendatenbank möglicherweise bereits über eine größere Anzahl von Einträgen und somit eine größere Anzahl von Einträgen in ihrer Wiederherstellungsprotokolldatei verfügt. Die Initialisierung kann auch für ausgewählte Tabellen oder lediglich Partitionen davon funktionieren.Additionally, it may be advantageous to load the target database with bulk data from the source database, particularly during an initialization process. This can help avoid the comparatively slower incremental update or synchronization process as the source database may already have a larger number of entries and thus a larger number of entries in its recovery log file. Initialization can also work for selected tables or just partitions of them.
Nachdem die OLAP-Operation durch die Zieldatenbank 206 durchgeführt wurde, werden die Daten zurückgegeben, 224, und die OLAP-Ausgabe 220 wird wieder an das anfordernde Programm bzw. den anfordernden Prozess zurückgegeben. OLTP-Abfragen 210 werden direkt in der Quellendatenbank 202 ausgeführt und als OLTP-Ausgabe 212 an das anfordernde Programm bzw. den anfordernden Prozess zurückgegeben. Somit kann die OLTP- oder Quellendatenbank 202 bei Höchstleistung betrieben werden, da sie nicht durch ressourcenintensive OLAP-Abfragen verlangsamt wird.After the OLAP operation is performed by the
Aufgrund einer möglicherweise anderen Datenorganisation in der Zieldatenbank 206 - z.B. spaltenorientiert anstelle von zeilenorientiert wie in der Quellen- oder OLTP-Datenbank 202 - kann die Zieldatenbank OLAP-Ergebnisse viel schneller als die Quellendatenbank 202 zurückgeben, 224.Due to a possible different data organization in the target database 206 - e.g., column-oriented instead of row-oriented as in the source or OLTP database 202 - the target database may return OLAP results much faster than the
Das Quellendatenbank-Verwaltungssystem 302 verwaltet auch die Wiederherstellungsprotokolldatei 306 für die Quellendatenbank 202. Eine Protokollleseeinheit oder Protokolldateileseeinheit 314, welche die Wiederherstellungsprotokolldatei 306 liest, stellt diese Daten der Anwendungseinheit 316 bereit, die die an der Quellendatenbank durchgeführten Änderungen (d.h. Einfügen, Aktualisieren, Löschen) auch auf die Zieldatenbank 206 für die ausgewählten Tabellen und den ausgewählten Satz von Daten anwendet. Bei den ausgewählten Tabellen und dem ausgewählten Satz von Daten kann es sich um eine Teilmenge jener zugehörigen Tabellen und Daten in der Quellendatenbank 202 handeln, die zuvor definiert wurden. Die Anwendungseinheit 316 kann die Anwendung der Änderungen auf die Zieldatenbank 206 in Abhängigkeit von ausgeführten OLAP-Abfragen optimieren. Dazu kann der Protokollpuffer 318 hilfreich sein.The source
Für eine Initialisierung der Zieldatenbank 206 kann aus Gründen der Leistungsfähigkeit eine Operation 312 zum Laden von Massendaten aus der Quellendatenbank 202 in die Zieldatenbank 206 durchgeführt werden.To initialize the
Es sei darauf hingewiesen, dass
Es sei darauf hingewiesen, dass dieser Synchronisierungsmechanismus eine von vielen Synchronisierungstechniken darstellen kann. Auch andere Synchronisierungstechniken können anwendbar sein.It should be noted that this synchronization mechanism can represent one of many synchronization techniques. Other synchronization techniques may also be applicable.
Das Zieldatenbank-Verwaltungssystem 308 weist den speicherinternen Teil 402 der Zieldatenbank und den persistenten Teil 404 der Zieldatenbank auf. Der Persistenzservice 406 schreibt den Status des speicherinternen Zieldatenbankteils 402 während der Operation in die persistente Datenbank 404. Während solcher regelmäßigen Operationen - z.B. nachdem eine vorher festgelegte Anzahl von Aktualisierungen an der speicherinternen Datenbank 402 vorgenommen wurde - überträgt der Abfrageprozessor 408 die eingehenden Abfragen an den speicherinternen Teil 402 der Zieldatenbank.The target
Wenn das Ziel-DBMS aktuell jedoch eine Wiederherstellung nach einem Absturz durchführt - besonders im Falle der nachfrage- oder datennutzungsoptimierten Wiederherstellung - funktionieren die Dinge anders:
- (i) der
Abfrageprozessor 408 analysiert zusammenmit dem Wiederherstellungsprozessor 410 die Datenzugriffe der Abfragen, um eine Liste von Zieltabellen und/oder Listen von Tabellenpartitionen zu ermitteln, die für die Abfrage zur Verfügung stehen müssen, wobei Query-Parsing-a-View-Lösungsverfahren nach dem Stand der Technik verwendet werden; - (ii) eine Blockierungsdatenliste wird ermittelt, indem man sich alle Tabellen und/oder Tabellenpartitionen der Datenzugriffsliste aus dem vorherigen Schritt innerhalb des Wiederherstellungszustands anschaut, der noch nicht wiederhergestellt wurde;
- (iii) wenn die Liste aus dem vorherigen Schritt nicht leer ist, werden die Abfrage und ihre Blockierungsdatenliste zu der wartenden Abfrage hinzugefügt, und der Abfrageprozess wartet, bis die Wiederherstellung beendet wird (die Blockierungsdatenliste wird leer), dann kann das Abfragen fortgesetzt werden; und
- (iv) die Abfrage der Zieldatenbank wird wie üblich verarbeitet, nachdem eine Abschlussbenachrichtigung
von dem Wiederherstellungsprozessor 410 anden Abfrageprozessor 408 gesendet wurde.
- (i) the
query processor 408, together with therecovery processor 410, analyzes the data accesses of the queries to determine a list of target tables and/or lists of table partitions that must be available for the query, using query parsing-a-view solving techniques be used according to the state of the art; - (ii) a blocking data list is determined by looking at all tables and/or table partitions of the data access list from the previous step within the recovery state that have not yet been recovered;
- (iii) if the list from the previous step is not empty, the query and its blocking data list are added to the waiting query, and the query process waits until the recovery finishes (the blocking data list becomes empty), then querying can continue; and
- (iv) the query of the target database is processed as usual after a completion notification has been sent from the
recovery processor 410 to thequery processor 408.
Während der durch den Wiederherstellungsprozessor 410 gesteuerten Aktion wird die in der persistenten Datenbank 404 verfügbare aktuellste konsistente Momentaufnahme der relevanten Tabellen und/oder Tabellenpartitionen in den speicherinternen Teil 402 der Zieldatenbank geladen, 412, und die Einträge in der Wiederherstellungsprotokolldatei 306 der Quellendatenbank 202, die einen späteren Zeitstempel als die Momentaufnahme der persistenten Datenbank 404 haben, werden wieder in die speicherinterne Datenbank 402 eingespielt. Diese werden von dem Wiederherstellungsprozessor 410 über den Abfrageprozessor 408 aus dem Quellen-DBMS 302 angefordert, z.B. aus der Wiederherstellungsprotokolldatei 306 über die Protokollleseeinheit 314 und die Anwendungseinheit 316.During the action controlled by the
Einzelne Datensynchronisationssubsysteme 510, 512 sind in dem Datensynchronisationssystem 508 ausgeführt, um die Quellendatenbanken 504, 508 mit den jeweiligen speicherinternen Teilen 518, 520 der speicherinternen Zieldatenbank 516 zu synchronisieren. Der Abfrageprozess 522 empfängt die Datenbankabfragen zur Ausführung in dem speicherinternen Teil der Zieldatenbank(en) 516. Bei diesen Abfragen handelt es sich üblicherweise um OLAP-Abfragen, die aus der/den Quellendatenbank(en) 504, 506 ausgelagert wurden.Individual
Der Wiederherstellungsprozess bzw. Wiederherstellungsprozessor 524 des Ziel-DBMS 514 empfängt auch Daten von dem Abfrageprozessor in Bezug auf Abfragen, die in die Datenzugriffsanalysekomponente 526 eingetragen und darin analysiert werden sollen. Während des Wiederherstellungsprozesses der Zieldatenbank ermittelt die Abfrageanalysekomponente die wartenden Abfragen 530 und die bereits wiederhergestellten Tabellenpartitionen 532 in dem Wiederherstellungszustand-Verwaltungssystem 528, um - auf der Grundlage einer Priorität von Abfragen eines bestimmten Benutzers - zu ermitteln, welche Tabellen zuerst wiederhergestellt werden sollen. Dies wird schließlich durch den Wiederherstellungszeitplan 534 ermittelt und entschieden. Um diese Task durchzuführen, befindet sich der Wiederherstellungszeitplan 534 in ständigem Datenaustausch mit dem Wiederherstellungszustand-Verwaltungssystem 528, um den tatsächlichen Wiederherstellungsstatus zu prüfen, und empfängt Konfigurationsdaten aus dem Konfigurationsspeicher des Arbeitslastverwaltungssystems. Darüber hinaus tauscht der Wiederherstellungszeitplan 534 auch Daten mit dem Datensynchronisationssystem 508 aus, um ein Laden der Wiederherstellungsdatenbank des Zieldatenbank-Verwaltungssystems aus dem Quellendatenbank-Verwaltungssystem 502 auszulösen.The recovery process or
Auf diese Weise kann sichergestellt werden, dass der Benutzer oder Kunde mit einer konfigurierten höheren Priorität einen frühzeitigen Zugriff auf wiederhergestellte Datenbanktabellen hat, deren Wiederherstellungszeit auch in Abhängigkeit von einer Verwendung des Zugriffs von bestimmten Tabellen optimiert werden kann.In this way, it can be ensured that the user or customer with a configured higher priority has early access to restored database tables, the recovery time of which can also be optimized depending on the use of access from specific tables.
Im Einzelnen kann dies durch die folgende Prozedur erreicht werden: Wenn der Wiederherstellungsprozess nach einem Absturz für die Zieldatenbank initialisiert wird, wird für jeden Tenant ein leeres Histogramm einer blockierten Tabelle/von blockierten Tabellenpartitionen erstellt. Wenn eine neue Blockierungsabfrage in dem Wiederherstellungszustand eingetragen wird, wird der Nutzungszähler für jede Tabelle/Partition in der Blockierungsdatenliste der Abfrage um 1 erhöht. Dann, wenn eine nächste wiederherzustellende Tabelle/Partition ermittelt werden muss, wird eine Wiederherstellungspriorität der Tabelle auf der Grundlage der Zähleranzahl der Nutzung blockierter Abfragen und der aktuellen Konfiguration des Arbeitslastverwaltungssystems (WLM, workload management system) der Tenants (d.h. seiner Priorität oder Wichtigkeit) ermittelt und das Wiederherstellungselement mit der höchsten Priorität wird ausgewählt. Schließlich wird, wenn die Wiederherstellungsaktion der Tabelle/Partition beendet wird, auch der entsprechende Histogrammeintrag entfernt.Specifically, this can be achieved through the following procedure: If the crash recovery process for the target data bank is initialized, an empty histogram of blocked table/partitions is created for each tenant. When a new blocking query is entered into the recovery state, the usage count for each table/partition in the query's blocking data list is incremented by 1. Then, when a next table/partition to be restored needs to be determined, a restore priority of the table is determined based on the blocked query usage count and the tenant's current workload management system (WLM) configuration (i.e., its priority or importance). and the highest priority recovery item is selected. Finally, when the restore action of the table/partition is completed, the corresponding histogram entry is also removed.
Die Berechnung der benutzer- oder tenantspezifischen Wiederherstellungsprioritäten kann beispielhaft wie folgt ausgeführt werden: Wenn es eine strikte Priorität zwischen Tenant-Paaren gibt - ein Produktionssystem ist z.B. wichtiger als ein Testsystem (was durch einen einfachen Konfigurationstext angegeben werden kann), wird die Liste von wiederherzustellenden Tabellen/Partitionen nach Benutzern/Tenant gruppiert; die Liste der Gruppen wird nach abnehmender Priorität der Benutzer/des Tenants geordnet; und die nächste Tabelle/Partition wird aus der ersten nicht leeren Gruppe über den Auswahlalgorithmus des Abfragenutzungszählers ausgewählt.The calculation of user or tenant specific restore priorities can be carried out as an example: If there is a strict priority between tenant pairs - e.g. a production system is more important than a test system (which can be specified by a simple configuration text), the list of restores is calculated Tables/partitions grouped by user/tenant; the list of groups is ordered by decreasing user/tenant priority; and the next table/partition is selected from the first non-empty group via the query usage counter selection algorithm.
Wenn es für jeden Tenant in der WLM-Konfiguration jedoch eine relative Position für eine gemeinsame Nutzung von Ressourcen gibt (z.B. Tenant-1 50%, Tenant-2 30%, Tenant-3 20%), wird eine Priorität für jedes Wiederherstellungselement wie folgt berechnet: (i) der Abfragenutzungszähler q für das Wiederherstellungselement wird ermittelt; (ii) dann wird der Tenant t, dem das Wiederherstellungselement gehört, ermittelt; (iii) als Nächstes wird die Position für eine gemeinsame Nutzung von Ressourcen r(t) für den Tenant t ermittelt; (iv) darauf beruhend wird die Priorität als a * q * b * r(t) ermittelt, wobei a und b statische Konfigurationsparameter sind - insbesondere im Bereich zwischen [0 ... 1] - wobei b beruhend auf a, z.B. b = 1-a, berechnet werden kann, um die Anzahl der Parameter zu verringern. Schließlich (v) kann die Liste der Wiederherstellungselemente nach Priorität, z.B. in einer Prioritätenwarteschlange, geordnet werden.However, if there is a relative resource sharing position for each tenant in the WLM configuration (e.g. Tenant-1 50%, Tenant-2 30%, Tenant-3 20%), a priority for each recovery item becomes as follows calculates: (i) the query usage counter q for the recovery item is determined; (ii) then the tenant t that owns the recovery item is determined; (iii) next, the resource sharing position r(t) is determined for the tenant t; (iv) based on this, the priority is determined as a * q * b * r(t), where a and b are static configuration parameters - in particular in the range between [0 ... 1] - where b is based on a, e.g. b = 1-a, can be calculated to reduce the number of parameters. Finally (v) the list of recovery items can be ordered by priority, e.g. in a priority queue.
Neben dem speicherinternen Teil 516 des Ziel-DBMS 514 kann hier der Fokus auf anderen Metadaten 608 und dem Wiederherstellungsprozess bzw. dem Wiederherstellungsprozessor 614 liegen. Der Wiederherstellungsprozess weist mindestens drei Komponenten auf: die Wiederherstellungselement-Auswahleinheit 616, die Änderungsschätzeinheit 618 und den Wiederherstellungszeitplan 620. Der Wiederherstellungsprozessor 614 befindet sich im Datenaustausch mit der speicherinternen Datenbank 516, um Statusinformationen über die Tabellen in dem speicherinternen Datenbankteil 516 des Ziel-DBMS 514 zu erfassen.In addition to the in-
Falls auf Seiten des Ziel-DBMS ein Datenbankabsturz stattfindet, muss die Zieldatenbank 516 aus der Quellendatenbank 504 entweder über einen Mechanismus zum Laden von Massendaten oder inkrementell wiederhergestellt werden, wie bereits vorstehend beschrieben wurde. Zusätzlich werden die wiederherzustellende(n) Tabelle/Tabellenpartitionen hier durch den Wiederherstellungsprozess 614 dynamisch ausgewählt. Das hier vorgeschlagene Konzept wird um eine Änderungsschätzkomponente 618 erweitert, die dafür zuständig ist, die Menge an Daten zu schätzen oder zu ermitteln, die während einer Wiederherstellung nach einem Absturz wiederhergestellt werden muss. Daher wertet diese Änderungsschätzkomponente 618 Datenänderungsstatistiken aus, um zu extrapolieren, wie viele Datenänderungen in der Quellendatenbank seit einem Wiederherstellungsbaseline-Zeitstempel aufgelaufen sind. Auf der Grundlage dieser Informationen wählt der Wiederherstellungszeitplan 620 die effizienteste Datensynchronisationsmethode zum Wiederherstellen der Daten der wiederherzustellenden Tabelle/Tabellenpartition aus. Die Datenänderungsstatistiken werden während einer regelmäßigen Aktualisierungsverarbeitung, entweder inkrementell oder über ein Laden von Massendaten, der Zieldatenbank (d.h. des speicherinternen Datenbankteils 516) verwaltet. Die Änderungsschätzung 618 kann durch die Wiederherstellungselement-Auswahlkomponente 616 ausgelöst werden.If a database crash occurs on the target DBMS side, the
Der Wiederherstellungszeitplan 620 befindet sich auch im Datenaustausch mit dem Ladeprogramm 602 zum Laden von Massendaten und mit Einzelheiten des inkrementellen Aktualisierungsprozesses 606, um den Wiederherstellungsprozess des speicherinternen Datenbankteils 516 zu verwalten. Wenn z.B. die Wiederherstellung des speicherinternen Datenbankteils 516 abgeschlossen ist, wird von dem Ladeprogramm 602 zum Laden von Massendaten eine Wiederherstellungs-Abschlussbenachrichtigung empfangen. Auf der anderen Seite fordert der Wiederherstellungszeitplan 620 Änderungseinspielungen für bestimmte Tabellen in dem speicherinternen Datenbankteil 516 an. Ähnlich dem Signal von den Ladeprogrammen zum Laden von Massendaten 602 empfängt der Wiederherstellungszeitplan 620 auch eine Wiederherstellungs-Abschlussbenachrichtigung von dem inkrementellen Aktualisierungsprozess(or) 606. Wie bereits im Kontext von
Um den Prozess der hier beschriebenen Ausführungsform erfolgreich zu verwalten, sollten Datenänderungsstatistiken in dem in den Metadaten 608 des Zieldatenbanksystems 514 enthaltenen persistenten Metadatenkatalog gespeichert und verwaltet werden, wenn das Zieldatenbanksystem 514 aktualisiert wird, d.h. über die inkrementelle Aktualisierungsstrategie oder die Strategie zum Laden von Massendaten. Er kann die folgenden Informationen speichern: (i) einen Zeitstempel, wann die Aktualisierung verarbeitet wurde; (ii) Schemainformationen der Datenbanktabellen, z.B. Spaltentypen, Spaltenbreiten, ...; (iii) die Menge der Datenänderungen je Tabelle/Tabellenpartition, die von der Aktualisierung betroffen waren; d.h. eingefügte Datensätze und gelöschte Datensätze, aktualisierte Datensätze; und aggregierte Metriken wie beispielsweise die Gesamtzahl der geänderten Datensätze, das gesamte Datenvolumen, das angewendet wurde, die gesamte Ausführungszeit der Aktualisierungen usw.To successfully manage the process of the embodiment described herein, data change statistics should be stored and managed in the persistent metadata catalog contained in the
Die Statistikdaten können mit einem Zeitintervall, z.B. den letzten x Tagen, verknüpft werden. Zudem können die Statistikdaten inkrementell als Teil eines jeden Aktualisierungszyklus verwaltet werden.The statistical data can be linked to a time interval, e.g. the last x days. Additionally, the statistics data can be managed incrementally as part of each update cycle.
Darüber hinaus wird die Wiederherstellungsbaseline 610 auch in den persistenten Metadaten 608 (z.B. einem Metadatenkatalog) des Zieldatenbanksystems 514 verwaltet. Sie wird zum Schätzen benötigt, um das Datenvolumen zu ermitteln, das wiederhergestellt werden muss. Daher ist es nicht notwendig, einen genauen Zeitstempel zu ermitteln, vielmehr ist ein Interpolieren des Wertes ausreichend, z.B.: Er kann als Heartbeat-Zeitstempel verwaltet werden, der durch das Zieldatenbanksystem in regelmäßigen Zeitintervallen aktualisiert wird; er kann als Startpunkt des Wiederherstellungsprozesses nach dem Absturz verwaltet werden; und er kann als Zeitpunkt der letzten erfolgreich persistent gespeicherten Momentaufnahme der Zieldatenbank verwaltet werden. Dabei kann der Zeitstempel je Tabelle in der Zieldatenbank verwaltet werden.In addition, the
Die Wiederherstellung nach einem Absturz auf der Zieldatenbank kann wie folgt ausgeführt werden: (i) zunächst wird die nächste wiederherzustellende Tabelle/Partition ermittelt; (ii) das Datenvolumen, das seit der Wiederherstellungsbaseline wiederhergestellt werden muss, wird geschätzt; (iii) die beste Wiederherstellungsstrategie wird auf der Grundlage des geschätzten Datenvolumens ausgewählt und die Wiederherstellungszeit wird geschätzt; (iv) dann wird die Wiederherstellung der Tabelle mit der ausgewählten Strategie terminiert; und (v) diese Schritte werden in einer Schleife wiederholt, bis alle Daten wiederhergestellt worden sind.Crash recovery on the target database can be performed as follows: (i) first, the next table/partition to be recovered is determined; (ii) the volume of data to be restored since the restore baseline is estimated; (iii) the best recovery strategy is selected based on the estimated data volume and the recovery time is estimated; (iv) then the table recovery is scheduled using the selected strategy; and (v) these steps are repeated in a loop until all data has been restored.
Die Schätzung der wiederherzustellenden Datenvolumina kann wie folgt ausgeführt werden: (i) für eine wiederherzustellende Tabelle/Partition werden die entsprechenden Datenänderungsstatistiken 612 gesucht; (ii) die Wiederherstellungsbaseline für die Tabelle/Partition wird ermittelt; und (iii) die Anzahl der Änderungen, die über den inkrementellen Aktualisierungsprozess in dem Intervall repliziert werden müssen [Wiederherstellungsbaseline, aktuelle Wiederherstellungszeit], wird interpoliert.The estimation of the data volumes to be restored can be carried out as follows: (i) for a table/partition to be restored, the corresponding data change
Das verknüpfte Datenbanksystem 700 weist einen Prozessor 702 und einen mit dem Prozessor 702 per Datenaustausch verbundenen Hauptspeicher 704 auf, wobei der Hauptspeicher 704 Programmcodeteile speichert, die, wenn sie ausgeführt werden, dem Prozessor ermöglichen, ausgewählte Teile vom Inhalt von Tabellen der Quellendatenbank 706 mit jeweiligen Teilen vom Inhalt von Tabellen der Zieldatenbank 708 - z.B. unter Verwendung einer Synchronisationseinheit 714 - zu synchronisieren.The linked
Die gespeicherten Programmcodeteile, die, wenn sie ausgeführt werden, dem Prozessor 702 ermöglichen - unter Verwendung einer Anwendungseinheit 716 - Änderungen an der Quellendatenbank 706 während des Synchronisierens auf den speicherinternen Zieldatenbankteil 710 des Datenbankverwaltungssystems, das die Zieldatenbank aufweist, anzuwenden und - z.B. durch einen Speicherprozessor 718 - auf den speicherinternen Zieldatenbankteil 712 persistent angewandte Änderungen asynchron in einem persistenten Zieldatenbankspeicher zu speichern.The stored program code portions which, when executed, enable the
Darüber hinaus ermöglichen die gespeicherten Programmcodeteile, wenn sie ausgeführt werden, dem Prozessor 702 - z.B. durch eine Wiederherstellungseinheit 720 -, nach einem Datenbankabsturz auf dem Zieldatenbanksystem den speicherinternen Zieldatenbankteil 710 mit der in dem persistenten Zieldatenbankspeicherteil 712 verfügbaren aktuellsten Momentaufnahme wiederherzustellen und - z.B. durch eine zweite Anwendungseinheit 722 - nach dem Datenbankabsturz auf dem Zieldatenbanksystem Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicherteil 712 verfügbare aktuellste Momentaufnahme haben, auf den speicherinternen Zieldatenbankteil 710 anzuwenden.In addition, the stored program code portions, when executed, enable the processor 702 - for example through a recovery unit 720 - to restore the in-memory
Es sei auch darauf hingewiesen, dass alle Module und Einheiten des verknüpften Datenbanksystems 700 für einen Signal- und/oder Datenaustausch elektrisch miteinander verbunden sein können. Dies kann für den Prozessor 702, den Hauptspeicher 704, das Quellendatenbanksystem 706, das Zieldatenbanksystem 708, das den speicherinternen Teil 710 und den persistenten Teil 712 umfasst, die Synchronisationseinheit 714, die Anwendungseinheit 716, den Speicherprozessor 718, die Wiederherstellungseinheit 720 und die zweite Anwendungseinheit 722 gelten. Anstelle einer 1:1-Verbindung zwischen diesen Modulen und Einheiten können sie auch mit einem internen Bussystem 724 eines verknüpften Datenbanksystems für einen Signalisierungsdatenaustausch verbunden sein.It should also be noted that all modules and units of the linked
Ausführungsformen der Erfindung können zusammen mit praktisch jeder Art von Computer, ungeachtet der zur Speicherung und/oder Ausführung von Programmcode geeigneten Plattform, umgesetzt werden.
Das Datenverarbeitungssystem 800 ist lediglich ein Beispiel eines geeigneten Computersystems und sollte ungeachtet dessen, ob das Computersystem 800 ausführungsfähig und/oder in der Lage ist, jedwede der vorstehend dargelegten Funktionalität durchzuführen, nicht als Hinweis auf eine Einschränkung hinsichtlich des Nutzungsumfangs oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung verstanden werden. In dem Computersystem 600 gibt es Komponenten, die mit zahlreichen anderen Universal- oder Spezialdatenverarbeitungssystemumgebungen oder - konfigurationen betrieben werden können. Zu Beispielen für hinlänglich bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die gegebenenfalls zur Verwendung mit dem Computersystem/Server 800 geeignet sind, gehören, ohne darauf beschränkt zu sein, Personal-Computer-Systeme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der vorstehenden Systeme oder Einheiten umfassen, und dergleichen. Das Computersystem/der Server 800 kann in dem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen, wie zum Beispiel Programmmodulen, die durch ein Computersystem 800 ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter umfassen, die bestimmte Tasks durchführen oder bestimmte abstrakte Datentypen ausführen. Das Computersystem/der Server 800 kann in verteilten Cloud-Computing-Umgebungen in die Praxis umgesetzt werden, in denen Tasks durch ferne Verarbeitungseinheiten durchgeführt werden, die durch ein Übertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Speichermedien eines Computersystems, zu denen auch Hauptspeichereinheiten gehören, befinden.The
Wie in der Figur gezeigt ist, ist das Computersystem/der Server 800 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Zu den Komponenten des Computersystems/Servers 800 können, ohne darauf beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten 802, ein Systemspeicher 804 und ein Bus 806 gehören, die verschiedene Systemkomponenten, darunter den Systemspeicher 804, mit dem Prozessor 802 verbinden. Der Bus 806 stellt eine oder mehrere von beliebigen Busstrukturen von mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder einen Speichercontroller, einen peripheren Bus, einen Accelerated Graphics Port und einen Prozessor- oder lokalen Bus, der beliebige einer Vielfalt an Busarchitekturen verwendet. Beispielhaft und nicht einschränkend gehören zu diesen Architekturen ein Industry-Standard-Architecture-(ISA-)Bus, ein Micro-Channel-Architecture-(MCA-)Bus, ein Enhanced-ISA-(EISA-)Bus, ein lokaler Video-Electronics-Standards-Association-(VESA-)Bus und ein Peripheral-Component-Interconnects-(PCI-)Bus. Das Computersystem/der Server 800 umfasst üblicherweise eine Vielfalt an durch ein Computersystem lesbaren Datenträgern. Bei diesen Datenträgern kann es sich um jedwede verfügbaren Datenträger handeln, auf die durch das Computersystem/den Server 800 zugegriffen werden kann, und zu ihnen gehören sowohl flüchtige und nicht flüchtige als auch austauschbare und nicht austauschbare Datenträger.As shown in the figure, the computer system/
Der Systemspeicher 804 kann durch ein Computersystem lesbare Datenträger in Form von flüchtigem Speicher, wie beispielsweise einen Direktzugriffsspeicher (RAM) 808 und/oder einen Cache 810, umfassen. Das Computersystem/der Server 800 kann des Weiteren weitere auswechselbare/nicht auswechselbare, flüchtige/nicht flüchtige Speichermedien eines Computersystems umfassen. Lediglich beispielhaft kann ein Speichersystem 812 für das Lesen von und das Schreiben auf einen nicht austauschbaren, nicht flüchtigen Magnetdatenträger (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet) bereitgestellt werden. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk für das Lesen von und das Schreiben auf eine austauschbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk für das Lesen von oder das Schreiben auf eine austauschbare, nicht flüchtige optische Platte, wie beispielsweise ein CD-ROM, DVD-ROM oder andere optische Datenträger, bereitgestellt sein. In diesen Fällen kann jedes Laufwerk durch eine oder mehrere Datenträgerschnittstellen mit dem Bus 806 verbunden sein. Wie weiter dargestellt und nachstehend beschrieben wird, kann der Hauptspeicher 804 mindestens ein Programmprodukt umfassen, das über einen Satz (z.B. zumindest einen) von Programmmodulen verfügt, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
Das Programm/Dienstprogramm, das über einen Satz (zumindest einen) von Programmmodulen 816 verfügt, kann beispielhaft, und nicht als Einschränkung, im Hauptspeicher 804 gespeichert sein, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Die Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Ausführung einer Netzwerkumgebung umfassen. Die Programmmodule 816 führen im Allgemeinen die Funktionen und/oder die Vorgehensweisen von Ausführungsformen der Erfindung aus, die hierin beschrieben sind.By way of example, and not limitation, the program/utility having a set (at least one) of
Das Computersystem/der Server 800 kann auch mit einer oder mehreren externen Einheiten 818 wie beispielsweise einer Tastatur, einer Zeigereinheit, einem Bildschirm 820 usw.; mit einer oder mehreren Einheiten, die es einem Benutzer ermöglicht/ermöglichen, mit dem Computersystem/Server 800 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 800 einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen, Daten austauschen. Ein solcher Datenaustausch kann über Eingabe-/Ausgabe-(E/A-)Schnittstellen 814 erfolgen. Dennoch kann das Computersystem/der Server 800 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) über einen Netzwerkadapter 822 Daten austauschen. Wie dargestellt ist, kann der Netzwerkadapter 822 mit den anderen Komponenten des Computersystems/Servers 800 über den Bus 806 Daten austauschen. Es sollte klar sein, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 800 verwendet werden könnten, obgleich diese nicht gezeigt sind. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Plattenlaufwerken, RAID-Systeme, Bandlaufwerke sowie Speichersysteme zur Datenarchivierung usw.The computer system/
Zudem kann das verknüpfte Datenbanksystem 700 mit Wiederherstellung nach einem Absturz für verknüpfte Datenbanken an das Bussystem 806 angeschlossen sein.Additionally, the linked
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, sie sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt befindlichen Technologien am besten zu erklären bzw. um anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variants will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, practical application, or technical improvement over marketed technologies, or to enable others skilled in the art to understand the embodiments disclosed herein.
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.The present invention may be a system, a method and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for use by a processor to carry out aspects of the present invention.
Bei dem Medium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder ein Halbleitersystem für ein Weitergabemedium handeln. Zu Beispielen für einen durch einen Computer lesbaren Datenträger können ein Halbleiter- oder Solid-State-Speicher, ein Magnetband, eine austauschbare Computerdiskette, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), eine magnetische Festplatte und eine optische Platte gehören. Zu aktuellen Beispielen für optische Platten gehören ein Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine CD-RW, eine digitale Videoplatte (DVD) und eine Blu-Ray-Disk.The medium may be an electronic, magnetic, optical, electromagnetic, infrared or a semiconductor system for a distribution medium. Examples of a computer-readable medium include a semiconductor or solid-state memory, a magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a magnetic hard disk, and an optical disk belong. Current examples of optical disks include a compact disk read-only memory (CD-ROM), a CD-RW, a digital video disk (DVD), and a Blu-Ray disk.
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.The computer readable storage medium may be a physical device that can retain and store instructions for use by an instruction execution system. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media include the following: a removable computer diskette, a hard drive, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a removable compact disk read-only memory (CD-ROM), a DVD (digital versatile disc), a memory stick, a floppy disk, a mechanically coded device such as for example, punch cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. A computer-readable storage medium, as used herein, is not intended to be construed as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through an optical fiber cable). ) or electrical signals transmitted through a wire.
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.Computer-readable program instructions described herein may be transferred from a computer-readable storage medium to respective computing/processing devices or via a network such as the Internet, a local area network, a wide area network, and/or a wireless network to an external computer or device external storage device can be downloaded. The network may include copper transmission cables, fiber optic transmission cables, wireless transmission, routing computers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing unit receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the corresponding computing/processing unit.
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch einen beliebigen Typ Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or either source code or object code which are written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++ or similar, as well as traditional procedural programming languages such as the “C” programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA), may execute the computer-readable program instructions by reading state information of the use computer-readable program instructions to personalize the electronic circuits to carry out aspects of the present invention.
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.Aspects of the present invention are described herein with reference to flowcharts and/or block diagrams of methods, devices (systems) and computer programs products according to embodiments of the invention are described. It is noted that each block of the flowcharts and/or the block diagrams or diagrams, as well as combinations of blocks in the flowcharts and/or the block diagrams or diagrams, can be executed using computer-readable program instructions.
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine so that the instructions executed via the processor of the computer or other programmable data processing device provide a means for implementing the in Generate functions/steps defined in the block or blocks of the flowcharts and/or the block diagrams or diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium that can control a computer, a programmable data processing device, and/or other devices to function in a particular manner, such that the computer-readable storage medium , on which instructions are stored, a product of manufacture, including instructions which implement aspects of the function/step specified in the block or blocks of the flowchart and/or the block diagrams or diagrams.
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, anderen programmierbaren Vorrichtungen oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.The computer-readable program instructions may also be loaded onto a computer, other programmable data processing device, or other device to cause a series of process steps to be executed on the computer, other programmable device, or other device to be executed on a computer Process so that the instructions executed on the computer, other programmable device or other device implement the functions/steps defined in the block or blocks of the flowcharts and / or the block diagrams or diagrams.
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) aufweist. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit weitgehend gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder den festgelegten Schritt durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.The flowcharts and block diagrams in the figures illustrate the architecture, functionality and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this context, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions that includes one or more executable instructions for performing the specified logical function(s). In some alternative embodiments, the functions specified in the block may occur in a different order than shown in the figures. For example, two blocks shown one after the other may in reality be executed largely simultaneously, or the blocks may sometimes be executed in reverse order depending on the relevant functionality. It should also be noted that each block of the block diagrams and/or the flowcharts, as well as combinations of blocks in the block diagrams or diagrams and/or the flowcharts, can be implemented by special hardware-based systems that implement the specified functions or the specified Perform step, or execute combinations of specialized hardware and computer instructions.
Die hierin verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben, und ist nicht als Einschränkung der Erfindung zu verstehen. In der Verwendung hierin sollen die Singular-Formen „ein“, „eine“ und „der“, „die“, „das“ auch die Pluralformen umfassen, sofern der Kontext nicht eindeutig etwas anderes angibt. Es wird des Weiteren darauf hingewiesen, dass die Begriffe „aufweist“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon jedoch nicht ausschließen.The terminology used herein is intended solely to describe certain embodiments and is not to be construed as limiting the invention. As used herein, the singular forms "a", "an" and "the", "the", "the" shall also include the plural forms unless the context clearly indicates otherwise. It is further noted that the terms “comprising” and/or “comprising” when used in this specification denote the presence of specified features, integers, steps, operations, elements and/or components or but does not exclude the addition of one or more other/further features, integers, steps, operations, elements, components and/or groups thereof.
Die entsprechenden Strukturen, Materialien, Vorgänge und Äquivalente von allen Mitteln oder Schritten plus Funktionselementen in den nachstehenden Ansprüchen sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen, wie sie im Einzelnen beansprucht sind, umfassen. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Erläuterung, sie soll jedoch nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt sein. Viele Modifikationen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang der Erfindung abzuweichen. Die Ausführungsformen sind gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis der Erfindung hinsichtlich verschiedener Ausführungsformen mit verschiedenen Änderungen, wie sie für die jeweilige vorgesehene Verwendung geeignet sind, zu ermöglichen.The corresponding structures, materials, operations and equivalents of any means or steps plus functional elements in the following claims are intended to include any structure, material or operation for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been made for purposes of illustration and explanation, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the invention. The embodiments are chosen and described in order to best explain the principles of the invention and its practical application and to enable others skilled in the art to understand the invention in terms of various embodiments with various modifications as may be applicable to each intended use.
In aller Kürze kann das erfindungsgemäße Konzept in den folgenden Ausführungsformen zusammengefasst werden:
- 1. Durch einen Computer ausgeführtes Verfahren zur Wiederherstellung nach einem Absturz für verknüpfte Datenbanken, wobei die verknüpften Datenbanken eine Quellendatenbank und eine zugehörige Zieldatenbank aufweisen, wobei ausgewählte, an ein Datenbankverwaltungssystem gerichtete Abfragen, welches die Quellendatenbank aufweist, zur Verarbeitung an ein Datenbankverwaltungssystem übertragen werden, das die Zieldatenbank aufweist, wobei das Verfahren umfasst
- - Synchronisieren von ausgewählten Teilen vom Inhalt von Tabellen der Quellendatenbank mit jeweiligen Teilen vom Inhalt von Tabellen der Zieldatenbank,
- - Anwenden, während des Synchronisierens, von Änderungen an der Quellendatenbank auf einen speicherinternen Zieldatenbankteil des Datenbankverwaltungssystems, das die Zieldatenbank aufweist, und
- - asynchrones Speichern von persistent angewandten Änderungen an dem speicherinternen Zieldatenbankteil in einem persistenten Zieldatenbankspeicher,
- - Wiederherstellen, nach einem Datenbankabsturz auf dem Zieldatenbanksystem, des speicherinternen Zieldatenbankteils mit der in dem persistenten Zieldatenbankspeicher verfügbaren aktuellsten Momentaufnahme und
- - Anwenden, nach dem Datenbankabsturz auf dem Zieldatenbanksystem, von Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicher verfügbare aktuellste Momentaufnahme haben, auf den speicherinternen Zieldatenbankteil.
- 2.
Verfahren nach Ausführungsform 1, wobei das Synchronisieren aufweist:- - Lesen von Einträgen einer Wiederherstellungsprotokolldatei, die sich auf die Quellendatenbank bezieht, und Anwenden der gelesenen Einträge auf die Zieldatenbank.
- 3.
Verfahren nach Ausführungsform 1 oder 2, wobei die Quellendatenbank für Transaktionen optimiert und/oder wobei die Quellendatenbank ein zeilenorientiertes relationales Datenbankverwaltungssystem ist. - 4. Verfahren nach einer der vorhergehenden Ausführungsformen, wobei die Zieldatenbank für Analyseoperationen optimiert und/oder die Zieldatenbank eine spaltenorientierte Datenbank ist.
- 5. Verfahren nach einer der vorhergehenden Ausführungsformen, das auch umfasst
- - Verzögern, im Falle eines Absturzes der Zieldatenbank, von Abfragen an die Zieldatenbank, bis eine Wiederherstellung der Zieldatenbank beendet ist.
- 6. Verfahren nach einer der vorhergehenden Ausführungsformen, wobei Metadaten, welche die ausgewählten Tabellen definieren, Teil der Wiederherstellungsprotokolldatei sind.
- 7. Verfahren nach einem der vorhergehenden Ausführungsformen, wobei das Speichern von persistent angewandten Änderungen aufweist
- - Warten, bis eine vorher festgelegte Anzahl von Änderungen in dem speicherinternen Zieldatenbankteil abgeschlossen wurde.
- 8. Verfahren nach einer der vorstehenden Ausführungsformen, wobei das Wiederherstellen von Tabellen des speicherinternen Zieldatenbankteils ein Priorisieren des Wiederherstellens gemäß einer Option aufweist, die aus der aus einer Datennutzung, einer Abfragepriorität und einer Datenpriorität bestehenden Gruppe ausgewählt wird.
- 9. Verfahren nach Ausführungsform 8, wobei das Priorisieren der Wiederherstellung gemäß der Datennutzung aufweist
- - Verwalten eines Zählers für jede Tabelle in der Zieldatenbank, wobei der Zählerwert des Zählers anzeigt, wie viele Abfragen auf die zugehörige Tabelle warten, und
- - zunächst erfolgendes Wiederherstellen der Datenbanktabelle mit dem höchsten Zählerwert zuerst.
- 10. Verfahren nach Ausführungsform 8 oder 9, wobei das Priorisieren der Wiederherstellung gemäß der Abfragepriorität aufweist
- - zunächst erfolgendes Wiederherstellen der Datenbanktabellen, die Abfragen mit der höchsten Priorität empfangen.
- 11. Verfahren nach einer der Ausführungsformen 8 bis 10, wobei das Priorisieren der Wiederherstellung gemäß der Datenpriorität aufweist
- - Verwalten von zwei Gruppen von Datenbanktabellen, wobei sich jede Gruppe auf eine einzelne Gruppe von Benutzern bezieht, und
- - zunächst erfolgendes Wiederherstellen der Datenbanktabellen der Gruppe, die eine höher konfigurierte Gruppenpriorität hat.
- 12. Verfahren nach einer der vorhergehenden Ausführungsformen, das auch umfasst
- - Ermitteln des Datenvolumens, das für eine nächste wiederherzustellende Tabelle wiederhergestellt werden soll,
- - Wiederherstellen der Tabelle unter Verwendung einer Wiederherstellungsstrategie in Abhängigkeit von dem wiederherzustellenden Volumen, wobei die Wiederherstellungsstrategie eine inkrementelle Aktualisierungsstrategie oder eine Strategie zum Aktualisieren von Massendaten ist.
- 13. Verknüpftes Datenbanksystem mit Wiederherstellung nach einem Absturz für verknüpfte Datenbanken, wobei die verknüpften Datenbanken eine Quellendatenbank und eine zugehörige Zieldatenbank aufweisen, wobei ausgewählte Teile vom Inhalt von Tabellen der Quellendatenbank mit jeweiligen Teilen des Inhalts der Tabellen der Zieldatenbank synchronisiert werden, wobei das verknüpfte Datenbanksystem aufweist
- - einen Prozessor und einen per Datenaustausch mit dem Prozessor verbundenen Hauptspeicher, wobei der Hauptspeicher Programmcodeteile speichert, die, wenn sie ausgeführt werden, dem Prozessor ermöglichen,
- - ausgewählte Teile des Inhalts der Tabellen der Quellendatenbank mit jeweiligen Teilen des Inhalts von Tabellen der Zieldatenbank zu synchronisieren,
- - während des Synchronisierens Änderungen an der Quellendatenbank auf einen speicherinternen Zieldatenbankteil des Datenbankverwaltungssystems, das die Zieldatenbank aufweist, anzuwenden und
- - persistent angewandte Änderungen an dem speicherinternen Zieldatenbankteil asynchron in einem persistenten Zieldatenbankspeicher zu speichern,
- - nach einem Datenbankabsturz auf dem Zieldatenbanksystem den speicherinternen Zieldatenbankteil mit der in dem persistenten Zieldatenbankspeicher verfügbaren aktuellsten Momentaufnahme wiederherzustellen und
- - nach dem Datenbankabsturz auf dem Zieldatenbanksystem Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicher verfügbare aktuellste Momentaufnahme haben, auf den speicherinternen Zieldatenbankteil anzuwenden.
- 14. Verknüpftes Datenbanksystem nach Ausführungsform 13, wobei die Programmcodeteile dem Prozessor auch ermöglichen,
- - die Einträge einer Wiederherstellungsprotokolldatei, die sich auf die Quellendatenbank bezieht, für das Synchronisieren zu lesen und die gelesenen Einträge auf die Zieldatenbank anzuwenden.
- 15. Verknüpftes Datenbanksystem nach Ausführungsform 13 oder 14, wobei die Quellendatenbank für Transaktionen optimiert und/oder wobei die Quellendatenbank ein zeilenorientiertes relationales Datenbankverwaltungssystem ist.
- 16. Verknüpftes Datenbanksystem nach einer der Ausführungsformen 13 bis 15, wobei die Zieldatenbank für Analyseoperationen optimiert und/oder die Zieldatenbank eine spaltenorientierte Datenbank ist.
- 17. Verknüpftes Datenbanksystem nach einer der Ausführungsformen 13 bis 16, wobei die Programmcodeteile dem Prozessor auch ermöglichen,
- - im Falle eines Absturzes der Zieldatenbank Abfragen an die Zieldatenbank zu verzögern, bis eine Wiederherstellung der Zieldatenbank beendet ist.
- 18. Verknüpftes Datenbanksystem nach einer der Ausführungsformen 13 bis 17, wobei Metadaten, welche die ausgewählten Tabellen definieren, Teil der Wiederherstellungsprotokolldatei sind.
- 19. Verknüpftes Datenbanksystem nach einer der Ausführungsformen 13 bis 18, wobei die Programmcodeteile dem Prozessor auch ermöglichen,
- - auf das Speichern von persistent angewandten Änderungen zu warten, bis eine vorher festgelegte Anzahl von Änderungen in dem speicherinternen Zieldatenbankteil abgeschlossen wurde.
- 20. Verknüpftes Datenbanksystem nach einer der Ausführungsformen 13 bis 19, wobei das Wiederherstellen von Tabellen des speicherinternen Zieldatenbankteils ein Priorisieren des Wiederherstellens gemäß einer Option aufweist, die aus der aus einer Datennutzung, einer Abfragepriorität und einer Datenpriorität bestehenden Gruppe ausgewählt wird.
- 21. Verknüpftes Datenbanksystem nach Ausführungsform 21, wobei die Programmcodeteile dem Prozessor für das Priorisieren der Wiederherstellung gemäß der Datennutzung auch ermöglichen,
- - einen Zähler für jede Tabelle in der Zieldatenbank zu verwalten, wobei der Zählerwert des Zählers anzeigt, wie viele Abfragen auf die zugehörige Tabelle warten, und
- - zunächst die Datenbanktabelle mit dem höchsten Zählerwert zuerst wiederherzustellen.
- 22. Verknüpftes Datenbanksystem nach Ausführungsform 20 oder 21, wobei die Programmcodeteile dem Prozessor für das Priorisieren der Wiederherstellung gemäß der Abfragepriorität auch ermöglichen,
- - zunächst die Datenbanktabellen wiederherzustellen, die Abfragen mit der höchsten Priorität empfangen.
- 23. Verknüpftes Datenbanksystem nach einer der Ausführungsformen 20 bis 22, wobei die Programmcodeteile dem Prozessor für das Priorisieren der Wiederherstellung gemäß der Datenpriorität auch ermöglichen,
- - zwei Gruppen von Datenbanktabellen zu verwalten, wobei sich jede Gruppe auf eine einzelne Gruppe von Benutzern bezieht, und
- - zunächst die Datenbanktabellen der Gruppe wiederherzustellen, die eine höher konfigurierte Gruppenpriorität hat.
- 24. Verknüpftes Datenbanksystem nach einer der Ausführungsformen 13 bis 15, wobei die Programmcodeteile dem Prozessor auch ermöglichen,
- - das Datenvolumen zu ermitteln, das für eine nächste wiederherzustellende Tabelle wiederhergestellt werden soll,
- - die Tabelle unter Verwendung einer Wiederherstellungsstrategie in Abhängigkeit von dem wiederherzustellenden Volumen wiederherzustellen, wobei die Wiederherstellungsstrategie eine inkrementelle Aktualisierungsstrategie oder eine Strategie zum Aktualisieren von Massendaten ist.
- 25. Computerprogrammprodukt für ein verknüpftes Datenbanksystem mit Wiederherstellung nach einem Absturz für verknüpfte Datenbanken, wobei die verknüpften Datenbanken eine Quellendatenbank und eine zugehörige Zieldatenbank aufweisen, wobei ausgewählte Teile vom Inhalt von Tabellen der Quellendatenbank mit jeweiligen Teilen des Inhalts von Tabellen der Zieldatenbank synchronisiert werden,
wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit damit verkörperten Programmanweisungen aufweist, wobei die Programmanweisungen durch ein oder mehrere Datenverarbeitungssysteme oder Controller ausführbar sind, um das eine oder die mehreren Datenverarbeitungssysteme dazu zu veranlassen,
- - einen Prozessor und einen per Datenaustausch mit dem Prozessor verbundenen Hauptspeicher, wobei der Hauptspeicher Programmcodeteile speichert, die, wenn sie ausgeführt werden, dem Prozessor ermöglichen,
- - ausgewählte Teile vom Inhalt von Tabellen der Quellendatenbank mit jeweiligen Teilen vom Inhalt von Tabellen der Zieldatenbank zu synchronisieren,
- - während des Synchronisierens Änderungen an der Quellendatenbank auf einen speicherinternen Zieldatenbankteil des Datenbankverwaltungssystems, das die Zieldatenbank aufweist, anzuwenden und
- - persistent angewandte Änderungen an dem speicherinternen Zieldatenbankteil asynchron in einem persistenten Zieldatenbankspeicher zu speichern,
- - nach einem Datenbankabsturz auf dem Zieldatenbanksystem den speicherinternen Zieldatenbankteil mit der in dem persistenten Zieldatenbankspeicher verfügbaren aktuellsten Momentaufnahme wiederherzustellen und
- - nach dem Datenbankabsturz auf dem Zieldatenbanksystem Änderungen aus der Wiederherstellungsprotokolldatei der Quellendatenbank, die einen späteren Zeitstempel als die in dem persistenten Zieldatenbankspeicher verfügbare aktuellste Momentaufnahme haben, auf den speicherinternen Zieldatenbankteil anzuwenden.
- 1. A computer-implemented crash recovery method for linked databases, the linked databases comprising a source database and an associated target database, wherein selected queries directed to a database management system comprising the source database are transmitted to a database management system for processing, which the target database has, the method comprising
- - synchronizing selected parts of the contents of tables in the source database with respective parts of the contents of tables in the target database,
- - Apply, during synchronization, changes to the source database to an in-memory target database portion of the database management system having the target database, and
- - asynchronously storing persistently applied changes to the in-memory target database part in a persistent target database store,
- - Restore, after a database crash on the target database system, the in-memory target database portion with the most recent snapshot available in the target database persistent storage and
- - Apply, after the database crash on the target database system, to the in-memory target database portion changes from the source database recovery log file that have a later timestamp than the most recent snapshot available in the target database persistent storage.
- 2. Method according to
embodiment 1, wherein synchronizing comprises:- - Reading entries from a recovery log file related to the source database and applying the read entries to the target database.
- 3. The method according to
embodiment 1 or 2, wherein the source database is optimized for transactions and/or wherein the source database is a row-oriented relational database management system. - 4. Method according to one of the preceding embodiments, wherein the target database is optimized for analysis operations and/or the target database is a column-oriented database.
- 5. Method according to one of the preceding embodiments, which also includes
- - In the event of a target database crash, delay queries to the target database until a target database recovery is complete.
- 6. The method according to any one of the preceding embodiments, wherein metadata defining the selected tables is part of the recovery log file.
- 7. Method according to one of the preceding embodiments, wherein saving persistently applied changes
- - Wait for a predetermined number of changes to be completed in the in-memory target database part.
- 8. The method of any of the preceding embodiments, wherein restoring tables of the in-memory target database portion includes prioritizing the restoring according to an option selected from the group consisting of data usage, query priority, and data priority.
- 9. The method of embodiment 8, comprising prioritizing recovery according to data usage
- - Maintain a counter for each table in the target database, where the counter value of the counter shows how many queries are waiting on the associated table, and
- - restoring the database table with the highest counter value first.
- 10. The method of embodiment 8 or 9, wherein prioritizing recovery according to query priority
- - first restoring the database tables that receive queries with the highest priority.
- 11. The method of any of embodiments 8 to 10, comprising prioritizing recovery according to data priority
- - Manage two groups of database tables, each group relating to a single group of users, and
- - first restoring the database tables of the group that has a higher configured group priority.
- 12. Method according to one of the preceding embodiments, also comprising
- - Determine the volume of data to be restored for a next table to be restored,
- - Restore the table using a recovery strategy depending on the volume to be restored, where the recovery strategy is an incremental update strategy or a bulk data update strategy.
- 13. A linked database system with crash recovery for linked databases, the linked databases comprising a source database and an associated target database, wherein selected portions of the contents of tables of the source database are synchronized with respective portions of the contents of the tables of the target database, the linked database system having
- - a processor and a main memory connected to the processor via data exchange, the main memory storing parts of program code which, when executed, enable the processor to
- - synchronize selected parts of the content of the tables of the source database with respective parts of the content of tables of the target database,
- - during synchronization, apply changes to the source database to an in-memory target database portion of the database management system having the target database and
- - save persistently applied changes to the in-memory target database part asynchronously in a persistent target database storage,
- - after a database crash on the target database system, restore the in-memory target database portion with the most recent snapshot available in the target database persistent storage and
- - After the database crash on the target database system, apply changes from the recovery log file of the source database that have a later timestamp than the most recent snapshot available in the target database persistent storage to the in-memory target database part.
- 14. Linked database system according to embodiment 13, wherein the program code parts also enable the processor to
- - read the entries of a recovery log file related to the source database for synchronization and apply the read entries to the target database.
- 15. The linked database system of embodiment 13 or 14, wherein the source database is optimized for transactions and/or wherein the source database is a row-oriented relational database management system.
- 16. Linked database system according to one of embodiments 13 to 15, wherein the target database is optimized for analysis operations and/or the target database is a column-oriented database.
- 17. Linked database system according to one of embodiments 13 to 16, wherein the program code parts also enable the processor to
- - In the event of a crash of the target database, to delay queries to the target database until a recovery of the target database has been completed.
- 18. A linked database system according to any one of embodiments 13 to 17, wherein metadata defining the selected tables is part of the recovery log file.
- 19. Linked database system according to one of embodiments 13 to 18, wherein the program code parts also enable the processor to
- - wait to save persistently applied changes until a predetermined number of changes have been completed in the in-memory target database part.
- 20. The linked database system of any one of embodiments 13 to 19, wherein restoring tables of the in-memory target database portion includes prioritizing the restoring according to an option selected from the group consisting of data usage, query priority, and data priority.
- 21. Linked database system according to embodiment 21, wherein the program code parts are assigned to the processor for prioritizing the data also enable production according to data usage,
- - maintain a counter for each table in the target database, where the counter value of the counter indicates how many queries are waiting on the associated table, and
- - first restore the database table with the highest counter value first.
- 22. A linked database system according to embodiment 20 or 21, wherein the program code portions also enable the processor to prioritize recovery according to query priority,
- - first restore the database tables that receive queries with the highest priority.
- 23. An associated database system according to any one of embodiments 20 to 22, wherein the program code portions also enable the processor to prioritize recovery according to data priority,
- - manage two groups of database tables, each group relating to a single group of users, and
- - first restore the database tables of the group that has a higher configured group priority.
- 24. Linked database system according to one of embodiments 13 to 15, wherein the program code parts also enable the processor to
- - determine the volume of data to be restored for a next table to be restored,
- - restore the table using a recovery strategy depending on the volume to be restored, wherein the recovery strategy is an incremental update strategy or a bulk data update strategy.
- 25. Computer program product for a linked database system with crash recovery for linked databases, the linked databases comprising a source database and an associated target database, wherein selected portions of the contents of tables of the source database are synchronized with respective portions of the contents of tables of the target database, wherein the computer program product has a computer-readable storage medium with program instructions embodied therein, the program instructions being executable by one or more data processing systems or controllers in order to cause the one or more data processing systems to do so,
- - a processor and a main memory connected to the processor via data exchange, the main memory storing parts of program code which, when executed, enable the processor to
- - synchronize selected parts of the contents of tables in the source database with respective parts of the contents of tables in the target database,
- - during synchronization, apply changes to the source database to an in-memory target database portion of the database management system having the target database and
- - save persistently applied changes to the in-memory target database part asynchronously in a persistent target database storage,
- - after a database crash on the target database system, restore the in-memory target database portion with the most recent snapshot available in the target database persistent storage and
- - After the database crash on the target database system, apply changes from the recovery log file of the source database that have a later timestamp than the most recent snapshot available in the target database persistent storage to the in-memory target database part.
Claims (25)
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/206,240 US11797570B2 (en) | 2021-03-19 | 2021-03-19 | Asynchronous persistency of replicated data changes in a database accelerator |
US17/206,240 | 2021-03-19 | ||
US17/206,221 US11500733B2 (en) | 2021-03-19 | 2021-03-19 | Volatile database caching in a database accelerator |
US17/206,221 | 2021-03-19 | ||
PCT/CN2022/076471 WO2022193894A1 (en) | 2021-03-19 | 2022-02-16 | Asynchronous persistency of replicated data changes in database accelerator |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112022000767T5 true DE112022000767T5 (en) | 2023-11-09 |
Family
ID=83321517
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112022000767.2T Pending DE112022000767T5 (en) | 2021-03-19 | 2022-02-16 | ASYNCHRONOUS PERSISTENCE OF REPLICATED DATA CHANGES IN A DATABASE ACCELERATOR |
DE112022000492.4T Pending DE112022000492T5 (en) | 2021-03-19 | 2022-02-16 | NON-PERMANENT DATABASE CAPACING IN A DATABASE ACCELERATOR |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112022000492.4T Pending DE112022000492T5 (en) | 2021-03-19 | 2022-02-16 | NON-PERMANENT DATABASE CAPACING IN A DATABASE ACCELERATOR |
Country Status (3)
Country | Link |
---|---|
JP (2) | JP2024512335A (en) |
DE (2) | DE112022000767T5 (en) |
WO (2) | WO2022193893A1 (en) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205449B1 (en) * | 1998-03-20 | 2001-03-20 | Lucent Technologies, Inc. | System and method for providing hot spare redundancy and recovery for a very large database management system |
US7287043B2 (en) * | 2003-08-21 | 2007-10-23 | International Business Machines Corporation | System and method for asynchronous data replication without persistence for distributed computing |
US10803066B2 (en) | 2010-06-29 | 2020-10-13 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators |
US11030055B2 (en) * | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
CN104239476B (en) * | 2014-09-04 | 2018-09-25 | 上海天脉聚源文化传媒有限公司 | A kind of method, apparatus and system of database synchronization |
CN106815275B (en) * | 2015-12-02 | 2020-11-27 | 阿里巴巴集团控股有限公司 | Method and equipment for realizing synchronization of main database and standby database through standby database |
US10242050B2 (en) * | 2015-12-23 | 2019-03-26 | Sybase, Inc. | Database caching in a database system |
US10216589B2 (en) * | 2016-03-02 | 2019-02-26 | International Business Machines Corporation | Smart data replication recoverer |
CN108052681B (en) * | 2018-01-12 | 2020-05-26 | 毛彬 | Method and system for synchronizing structured data between relational databases |
US11003549B2 (en) * | 2018-07-25 | 2021-05-11 | Microsoft Technology Licensing, Llc | Constant time database recovery |
-
2022
- 2022-02-16 WO PCT/CN2022/076435 patent/WO2022193893A1/en active Application Filing
- 2022-02-16 JP JP2023553633A patent/JP2024512335A/en active Pending
- 2022-02-16 JP JP2023553627A patent/JP2024510137A/en active Pending
- 2022-02-16 DE DE112022000767.2T patent/DE112022000767T5/en active Pending
- 2022-02-16 DE DE112022000492.4T patent/DE112022000492T5/en active Pending
- 2022-02-16 WO PCT/CN2022/076471 patent/WO2022193894A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2024510137A (en) | 2024-03-06 |
WO2022193894A1 (en) | 2022-09-22 |
DE112022000492T5 (en) | 2023-12-14 |
WO2022193893A1 (en) | 2022-09-22 |
JP2024512335A (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112020000749T5 (en) | Index creation for evolving large data sets in hybrid transaction and analysis processing systems with multiple masters | |
DE102012216022B4 (en) | Management of a point-in-time copy relationship for space-efficient volumes | |
DE202020005681U1 (en) | Journaled tables in database systems | |
DE4216871C2 (en) | Execution rules to ensure the serializability of distributed transactions | |
US10152396B2 (en) | Time-based checkpoint target for database media recovery | |
DE102012215665B4 (en) | Dynamically changing the TTL values in a data cache | |
DE4497149B4 (en) | Computer-based method for data replication in peer-to-peer environment | |
DE112010004652B4 (en) | Reliable high-throughput replication of transformed data in data systems | |
DE202019005716U1 (en) | Track changes in database data | |
DE112013000465B4 (en) | Management of remote data replication | |
DE202019005715U1 (en) | Tracking of interim changes in database data | |
DE112010004931T5 (en) | Multi-Phase File System Restoration with Selective Requirement Data Availability ( | |
DE102016216843A1 (en) | Distributed merging of files | |
DE202010018481U1 (en) | Asynchronous Distributed Object Upload for Replicated Associative Storage Clusters | |
DE112012004099T5 (en) | Transaction processing system, procedures and program | |
DE202016007901U1 (en) | Data flow - window and trigger function | |
DE112015000222T5 (en) | Merging multiple point-in-time copies into a merged point-in-time copy | |
WO2002021327A2 (en) | Method and computer program for generating files for a database system for a business management user program | |
US11797570B2 (en) | Asynchronous persistency of replicated data changes in a database accelerator | |
DE112018005359T5 (en) | Prevent record locks from being held by long-term transactions | |
DE112010004185B4 (en) | Synchronize a database with non-database resources | |
DE60006121T2 (en) | SYSTEM AND METHOD FOR SYNCHRONIZING DATA COPIES IN A COMPUTER SYSTEM | |
DE112022000767T5 (en) | ASYNCHRONOUS PERSISTENCE OF REPLICATED DATA CHANGES IN A DATABASE ACCELERATOR | |
CN115858486A (en) | Data processing method and related equipment | |
DE102021125858A1 (en) | TRACK A LOG HISTORY OF CHANGE DATA COLLECTION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R084 | Declaration of willingness to licence |