Die Erfindung betrifft Verfahren zum Aufrüsten einer Datenbank.The invention relates to methods for upgrading oneDatabase.
Relationale Datenbanken werden zum Handhaben des Speicherns und Wiedergewinnens von Daten für verschiedene Anwendungen und Umgebungen verwendet. Datenbanken dieser Art laufen auf Computersystemen. Wenn eine neue Funktionalität der Datenbank hinzugefügt werden soll, d. h. wenn die Datenbank aufgerüstet wird, was auch als "Upgrading" bezeichnet wird, muß sehr oft auch das Format, in dem die Daten gespeichert sind, geändert werden. Üblicherweise muß während der Änderung ein Zugriff auf die Datenbank verwehrt werden, um Inkonsistenz zu vermeiden. Mit anderen Worten, es ist nicht erlaubt, Daten hinzuzufügen oder fortzuschreiben, während die Änderung der Funktionalität und des Formats der Datenbank stattfindet. Zumindestens ist die Datenbank während bestimmter Phasen eines Aufrüstens (Upgrade) nicht zugänglich, wobei die Phasen minimal sein sollten.Relational databases become a way of handling storageand retrieving data for various applicationsand environments used. Databases of this type are runningComputer systems. If a new functionality of the databaseto be added, d. H. when the database is upgradedwhat is also called "upgrading" has to be done very oftenalso changed the format in which the data is storedbecome. Usually an access must be made during the changebe denied to the database to cause inconsistencyavoid. In other words, data is not allowedadd or update while changing theFunctionality and the format of the database takes place.At least the database is during certain phasesof an upgrade (upgrade) not accessible, the phasesshould be minimal.
Ferner, wenn das Upgrade der Datenbank fehlschlägt, muß es möglich sein, zu dem vorherigen Zustand der Datenbank zurückzukehren. Datenänderungen, die während oder nach dem Upgrade durchgeführt worden sind, müssen in Betracht gezogen werden, sowie Datenänderungen, die dafür anstehen, durchgeführt zu werden.Furthermore, if the database upgrade fails, it mustbe possible to the previous state of the databaseto return. Data changes made during or after theUpgrades have been made must be consideredas well as data changes that are dueto be carried out.
Eine herkömmliche Lösung des zuvor erwähnten Problems ist die Verwendung eines zusätzlichen Systems während des Upgrades. Das zusätzliche System ist ein voll einsetzbares System mit all den Funktionalitäten des ursprünglichen Systems. Zusätzliche Hardware und Software wird benötigt, um alle Datenänderungen während des Upgrades der Datenbank einzutragen. Vor dem Upgrade wird die Datenbank auf das zusätzliche System kopiert, und ein Protokolliermechanismus (logging) wird zum Beispiel in dem ursprünglichen System initiiert. Das Upgrade der Datenbank wird dann in dem zusätzlichen System durchgeführt, während das ursprüngliche System damit weitermacht, wie zuvor zu arbeiten, aber auch alle Datenänderung während des Upgrades mitschreibt oder protokolliert. Wenn das Datenbank-Upgrade beendet ist, werden alle protokollierten Datenänderungen auf die aufgerüstete Datenbank in dem zusätzlichen System angewendet. Wenn das Upgrade fehlschlägt, wird das zusätzliche System einfach getrennt, und das ursprüngliche System setzt seinen normalen Betrieb fort, jedoch ohne weiterhin zusätzlich Datenänderungen zu protokollieren.A conventional solution to the aforementioned problem isUse of an additional system during the upgrade.The additional system is a fully usable system withall the functionality of the original system.Additional hardware and software is needed to everyoneData changes during the database upgradeto be entered. Before upgrading, the database is upgraded tocopied additional system, and a logging mechanism(logging) is for example in the original systeminitiated. The database upgrade will then be performed in theadditional system carried out while the originalSystem continues to work as before, but alsologs any data changes during the upgrade orlogged. When the database upgrade is finishedall logged data changes to the upgradedDatabase applied in the additional system. If thatIf the upgrade fails, the additional system becomes simpleseparated, and the original system resumes its normalOperation continues, but without additionalLog data changes.
Die obige Methode zum Aufrüsten einer Datenbank ist nachteilig, da ein zusätzliches System installiert und an die Stelle gebracht werden muß, wo die Datenbank aufgerüstet werden soll. Während des Upgrades werden doppelte Softwarelizenzen benötigt, da auf beiden, dem ursprünglichen und dem zusätzlichen System, Datenbanken für eine bestimmte Zeit parallel laufen. Ferner stellt sich heraus, daß es recht kompliziert ist, das Datenbank-Upgrade aufgrund all der erforderlichen manuellen Eingriffe zu organisieren.The above method of upgrading a database isdisadvantageous because an additional system is installed and connected to thePlace must be brought up where the database is upgradedshall be. During the upgrade, there will be duplicatesSoftware licenses needed because on both, the original one and the additional system, databases for a specific oneRun in parallel. It also turns out that it is rightis complicated, the database upgrade due to all of theorganize required manual intervention.
Aus US 5.440.735 ist ein Management-System für eine relationale Datenbank bekannt, das es dem Benutzer gestattet, auf einfache Weise Kopieroperationen festzulegen.From US 5,440,735 is a management system for onerelational database known which allows the usereasily set copy operations.
In EP 0 501 180 A2 wird das Problem des gleichzeitigen Verarbeitens von Transaktionen und Abfragen behandelt, bei dem sichergestellt sein muß, daß eine Abfrage nur auf solche Daten zugreift, die nicht durch eine gleichzeitig verarbeitete Transaktion während der Abfrage verändert werden. Zu jedem Datenobjekt wird eine begrenzte Zahl logischer Versionen dynamisch verwaltet, so daß die Abfragen auf einen aktuelleren Datenbestand zugreifen können, selbst wenn gleichzeitig Transaktionen den Datenbestand fortschreiben.EP 0 501 180 A2 addresses the problem of simultaneousProcessing transactions and queries handled atwhich must be ensured that a query only for suchAccesses data not through one at a timeprocessed transaction changed during the querybecome. There is a limited number for each data objectlogical versions dynamically managed so that the queriescan access a more up-to-date database, evenif at the same time transactions the databaseupdate.
Deswegen ist das von der Erfindung zu lösende Problem, ein Verfahren zum Aufrüsten (Upgrading) einer Datenbank bereitzustellen, das eine Änderung des Datenbankformats beinhaltet, wobei das Verfahren zusätzliche Hardware und Software vermeidet, die Unterbrechung des Datenbankbetriebs auf ein Minimum beschränkt, und ein sicheres Zurückkehren in den ursprünglichen Zustand der Datenbank im Falle eines Fehlers während des Upgrades erlaubt.Therefore, the problem to be solved by the invention is oneProcess for upgrading a databaseprovide a change in database formatincludes, the method additional hardware andSoftware avoids interrupting database operationsto a minimum, and a safe return tothe original state of the database in the event of aErrors allowed during upgrade.
Das obige Problem wird gelöst durch ein Verfahren zum Aufrüsten (Upgrading) einer Datenbank, die eine Tabelle zum Speichern von Daten und eine gespeicherte Prozedur zum  Bearbeiten von Daten, die in der Tabelle der Datenbank gespeichert sind, verwendet, wobei die Datenbank auf einem Computersystem läuft, umfassend die Schritte:
The above problem is solved by a method of upgrading a database using a table for storing data and a stored procedure for editing data stored in the table of the database, the database running on a computer system , comprising the steps:
Zum Herstellen einer Verbindung zu der zusätzlich gespeicherten Prozedur kann eine Systemtabelle verwendet werden. Als eine Alternative, oder zusätzlich, kann eine Konfigurationsdatei zum Erzeugen einer Verbindung zu der zusätzlich gespeicherten Prozedur verwendet werden. Die Konfigurationsdatei kann auf einem Speichermedium des Computersystems gespeichert werden.To connect to the in additionstored procedure can use a system tablebecome. As an alternative, or in addition, oneConfiguration file to create a connection to theadditionally stored procedure can be used. TheConfiguration file can be saved on a storage medium of theComputer system can be saved.
Das obige Problem wird weiterhin gelöst durch ein Verfahren zum Aufrüsten (Upgrading) einer Datenbank durch Ersetzen einer alten Version einer Komponente der Datenbank, die Datenbankfunktionalität bereitstellt, durch eine neue Version, wobei die Datenbank auf einem Computersystem läuft, worin während des Aufrüstens die alte Version und die neue Version der Datenbankkomponente, die Datenbankfunktionalität bereitstellt, zumindest vorübergehend parallel verwendet werden, und wobei Bezug genommen wird auf beide Versionen über eine zusätzliche Komponente der Datenbank, die eine Verbindung zu beiden Versionen der Datenbankkomponente bereitstellt.The above problem is still solved by a methodfor upgrading a database by replacing itan old version of a component of the database, theDatabase functionality provided by a new Version, with the database running on a computer system,where during the upgrade the old version and the new oneVersion of the database component, the database functionalityprovides, at least temporarily used in paralleland with reference to both versionsvia an additional component of the database, the oneConnection to both versions of the database componentprovides.
Die Verbindung kann mit Hilfe einer Systemtabelle bereitgestellt werden, die einen Zugriff auf die Komponente der Datenbank auf die zusätzliche Komponente weiterleitet. Die Systemtabelle kann eine Tabelle in der Datenbank sein.The connection can be made using a system tableare provided that provide access to the componentredirects the database to the additional component.The system table can be a table in the database.
Zusätzlich, oder als eine Alternative, kann die Verbindung auch mit Hilfe einer Konfigurationsdatei bereitgestellt werden, die einen Zugriff auf die Komponente der Datenbank auf die zusätzliche Komponente weiterleitet. Die Konfigurationsdatei wird vorteilhafterweise auf einem Speichermedium des Computersystems gespeichert.In addition, or as an alternative, the connection canalso provided with the help of a configuration filethat have access to the component of the databaseredirects to the additional component. TheConfiguration file is advantageously on aStorage medium of the computer system saved.
Das obige Problem wird schließlich gelöst durch ein Verfahren zur Aufrüstung einer Datenbank, die eine Tabelle zum Speichern von Daten verwendet, wobei die Datenbank auf einem Computersystem läuft, umfassend die Schritte:
The above problem is finally solved by a method of upgrading a database using a table for storing data, the database running on a computer system, comprising the steps:
Die Komponenten der Datenbank sind gespeicherte Prozeduren, Trigger, Indizes oder Tabellen. Die neue Version der Tabelle kann ein von dem Format der alten Version der Tabelle verschiedenes Format haben.The components of the database are stored procedures,Triggers, indexes, or tables. The new version of the tablecan be one of the format of the old version of the tablehave different formats.
Die Erfindung wird in genaueren Einzelheiten weiter unten beschrieben, wo auf die Abbildungen Bezug genommen wird.The invention is described in more detail belowdescribed where reference is made to the illustrations.
Fig. 1 zeigt ein Diagramm eines Computersystems, das eine Datenbank und Arbeitsplatzrechner, die auf die Datenbank zugreifen, umfaßt.Fig. 1 shows a diagram of a computer system comprising a database and workstation computers that access the database.
Fig. 2a zeigt ein Diagramm, das ein Aufrüsten einer Datenbank auf Tabellenebene gemäß einer Ausbildung der Erfindung darstellt.Fig. 2a shows a diagram illustrating an upgrading a database table-level in accordance with an embodiment of the invention.
Fig. 2b zeigt ein Diagramm, das ein Aufrüsten einer Datenbank auf Seitenebene gemäß einer Ausbildung der Erfindung darstellt.FIG. 2b shows a diagram illustrating an upgrading a database at the page level according to an embodiment of the invention.
Fig. 3 zeigt ein Diagramm eines Computersystems, das eine Systemtabelle zum Aufrüsten einer Datenbank gemäß einer Ausbildung der Erfindung verwendet.FIG. 3 shows a diagram of a computer system using a system table for upgrading a database according to an embodiment of the invention.
Fig. 4 zeigt ein Diagramm des Computersystems, das eine Konfigurationsdatei zum Aufrüsten einer Datenbank gemäß einer Ausbildung der Erfindung verwendet.Fig. 4 shows a diagram of the computer system, a configuration file used for upgrading a database according to an embodiment of the invention.
Fig. 1 zeigt ein Computersystem1, das eine Datenbank2 auf einem geeigneten Speichermedium, beispielsweise einer Festplatte oder einer Gruppe von Festplatten, umfaßt. Benutzer greifen auf die Information oder auf die in der Datenbank gespeicherten Daten zu, zum Beispiel von einer Eingabestation oder von deren Arbeitsplatzrechnern3a,3b, . . ., die mit dem Computersystem1 entweder direkt oder über ein lokales Netzwerk oder Weitverkehrsnetzwerk (LAN oder WAN) verbunden sind. Die Datenbank2 umfaßt Tabellen, gespeicherte Prozeduren, Trigger, Indices, usw., die jeweils alle gewisse Datenbankfunktionen bereitstellen.Fig. 1 shows a computer system1, on a suitable storage medium such as a hard disk or group of disks, including a database2. Users access the information or the data stored in the database to, for example, from an input station or of their workstations3 a,3 b,. . ., which are connected to the computer system1 either directly or via a local area network or wide area network (LAN or WAN). Database2 includes tables, stored procedures, triggers, indexes, etc., each of which all provide certain database functions.
Wenn ein Upgrade der Datenbank benötigt wird, werden Änderungen für alle oder für einige der Komponenten, die Datenbankfunktionalität bereitstellen, durchgeführt. Gewöhnlicherweise werden neue und/oder zusätzliche Funktionen mit Hilfe von neuen und/oder zusätzlich gespeicherten Prozeduren, Triggern usw. bereitgestellt. Dies erfordert manchmal auch, daß Änderungen des Tabellenformats der Datenbank durchgeführt werden.If an upgrade of the database is needed,Changes for all or for some of the components thatProvide database functionality.Usually new and / or additional functionswith the help of new and / or additionally savedProcedures, triggers, etc. provided. This requiressometimes that changes in the table format of theDatabase.
Gemäß der Erfindung werden neue Tabellen erzeugt, um die Daten aufzunehmen, die in den alten Tabellen gespeichert sind, die die Tabellen sind, die von der Datenbank bis zum Upgrade der Datenbank benutzt werden. Daten werden in die neuen Tabellen kopiert und/oder übertragen, wobei während dieses Vorgangs die Daten, falls erforderlich, an das neue Format der Tabellen angepaßt werden. Um Stillstandszeit zu vermeiden, d. h. Perioden in denen der Benutzer nicht auf die Datenbank zugreifen kann, benötigt der Prozeß des Kopierens und/oder Übertragens von Daten von den alten Tabellen auf die neuen Tabellen besondere Beachtung. Gemäß der Erfindung werden Datenmengen einer vorbestimmten Granularität innerhalb der Tabellen definiert, wobei die Datenmengen gemeinsam während dem Upgrade-Prozeß behandelt werden, um die Zeitspannen, in denen das System nicht zugänglich ist, zu reduzieren.According to the invention, new tables are created to theRecord data stored in the old tablesthat are the tables that are from the database to theUpgrading the database can be used. Data is in thecopied and / or transferred new tables, whereby duringthis process the data, if necessary, to the new oneFormat of the tables can be adjusted. To shutdown time tooavoid, d. H. Periods in which the user is not on theDatabase access requires the process of copyingand / or transferring data from the old tables to thespecial attention to new tables. According to the inventiondata sets of a predetermined granularity within of the tables defined, with the data sets togetherto be dealt with during the upgrade processPeriods in which the system is inaccessible toto reduce.
Wie inFig. 2a gezeigt, wenn ein Upgrade auf Tabellenebene (Granularität I) basiert, wird die gesamte aufzurüstende Tabelle in einem Arbeitsgang modifiziert. Dieser Lösungsweg sollte gewählt werden, wenn die Modifikation ein schneller Vorgang ist, zum Beispiel des Hinzufügens eines vorgegebenen Wertes zu einer Spalte. Während eine Tabelle aufgerüstet wird, ist der Zugriff auf die Tabelle als Ganzes verwehrt, um Inkonsistenzen zu vermeiden. Wie inFig. 2b gezeigt, wenn die Modifikation einer Tabelle ein komplizierterer Vorgang ist, der lange dauert, wird die Tabelle auf Seitenebene (Granularität II) aufgerüstet. Eine Seite (page) kann verstanden werden als eine interne Systemeinheit einer speziellen Größe, beispielsweise 1024 Byte, die gewöhnlicherweise - vollständig oder teilweise - mindestens eine oder mehrere in Beziehung stehende Informationseinheiten, wie beispielsweise Felder oder Datensätze umfaßt. Durch Verwehren eines Zugriffs auf die Seite wird mindestens ein Datensatz der Tabelle gesperrt. Zum Aufrüsten auf Seitenebene wird eine neue Tabelle installiert, und Daten von der alten Tabelle werden in die neue Tabelle, wie durch den Operator T inFig. 2b gezeigt, kopiert und/oder übertragen. Während die Tabelle aufgerüstet wird, wird ein Zugriff auf die Seite, die momentan von dem Operator T bearbeitet wird, verwehrt, um Inkonsistenz zu vermeiden.As shown inFig. 2a, if an upgrade is based on table level (granularity I), the entire table to be upgraded is modified in one operation. This approach should be chosen if the modification is a quick process, for example adding a given value to a column. While a table is being upgraded, access to the table as a whole is denied to avoid inconsistencies. As shown inFig. 2b, if the modification of a table is a more complicated process that takes a long time, the table is upgraded at the page level (granularity II). A page can be understood as an internal system unit of a special size, for example 1024 bytes, which usually comprises - in whole or in part - at least one or more related information units, such as fields or data records. Denying access to the page blocks at least one record in the table. A new table is installed to upgrade at the page level and data from the old table is copied and / or transferred to the new table as shown by operator T inFigure 2b. While the table is being upgraded, access to the page currently being processed by operator T is denied to avoid inconsistency.
Des weiteren müssen sowohl die alten als auch die neuen Tabellen synchronisiert werden, soweit Datenänderungen und neue Einträge betroffen sind. Durch Aktualisieren sowohl der neuen als auch der alten Tabellen, wie von der Erfindung vorgeschlagen, wird nicht nur Datenkonsistenz erreicht, sondern auch die Möglichkeit geschaffen, das Upgrade aufzugeben und den Betrieb des ursprünglichen Systems fortzusetzen. Das Upgrade der Daten in der alten und neuen Tabelle ist ein atomarer Vorgang, d. h. Zugriff auf die Tabelle oder die Seite ist verwehrt, bis beide Tabellen aufgerüstet sind. Vorzugsweise wird ein Datenupgrade in den neuen Tabellen nur dort durchgeführt, wo Datensätze bereits von den alten Tabellen in die neuen Tabellen kopiert und/oder übertragen worden sind.Furthermore, both the old and the new mustTables are synchronized as far as data changes andnew entries are affected. By updating both the new as well as old tables, as from the inventionproposed, not only data consistency is achieved,but also created the opportunity to upgradeabandon and operate the original systemto continue. Upgrading the data in the old and newTable is an atomic process, i. H. Access to theTable or page is denied until both tablesare upgraded. A data upgrade in thenew tables only where records already existcopied from the old tables into the new tables and / orhave been transferred.
Um ein Aufrüsten von Tabellen einer Datenbank gemäß der Erfindung durchzuführen, müssen die verbleibenden Komponenten, die Datenbankfunktionalitäten wie gespeicherte Prozeduren, Trigger, Indizes, usw. bereitstellen, sowohl in einer alten Version als auch in einer neuen Version existieren. Um jeglichen Konflikt während des Zugriffs auf eine Komponente der Datenbank, wie gespeicherte Prozeduren, zu verhindern, wird ein Verfahren zum Handhaben verschiedener Versionen von gespeicherten Prozeduren oder dergleichen benötigt. Drei Verfahren werden im folgenden diskutiert.To upgrade tables of a database according to theTo carry out invention, the remaining mustComponents that store database functionalities likeProvide procedures, triggers, indexes, etc., both inan old version as well as a new versionexist. To avoid any conflict while accessinga component of the database, such as stored procedures,To prevent a method to handle differentVersions of stored procedures or the likeneeded. Three methods are discussed below.
Ein erstes Verfahren um Versionen von Datenbankkomponenten handzuhaben, wird mit besonderer Betonung auf gespeicherten Prozeduren der Datenbank beschrieben. Der Fachmann wird verstehen, daß dieser Prozeß auch für andere Komponenten einer Datenbank, vergleichbar den gespeicherten Prozeduren, durchgeführt werden kann.A first procedure for versions of database componentshandle, with special emphasis on savedProcedures of the database described. The specialist willunderstand that this process applies to other componentsa database, comparable to the stored procedures,can be carried out.
Wie inFig. 3 gezeigt, wird eine Systemtabelle während dem Upgrade-Prozeß verwendet, wobei die Systemtabelle Bezugnahmen enthält auf alle oder nur diejenigen gespeicherten Prozeduren, die aufgerüstet werden sollen, d. h. durch gespeicherte Prozeduren einer neuen Version ersetzt werden sollen. Auf alle oder nur diese gespeicherten Prozeduren, die aufgerüstet werden sollen, wird über die Systemtabelle während des Upgrade-Prozesses verwiesen. Eine Systemtabelle für das Verfahren gemäß der Erfindung kann folgendermaßen aussehen:As shown inFig. 3, a system table is used during the upgrade process, the system table containing references to all or only those stored procedures that are to be upgraded, that is, to be replaced by stored procedures of a new version. All or only these stored procedures to be upgraded are referenced in the system table during the upgrade process. A system table for the method according to the invention can look as follows:
Tabelle 1
 Table 1
Im Normalbetrieb verweisen die Eintragungen in der Systemtabelle nur auf einen Satz gespeicherter Prozeduren, d. h. auf die Basisversion. Wenn ein Arbeitsplatzrechner auf die Datenbank zugreift, schaut das System den momentan gültigen Namen oder Version der gespeicherten Prozedur nach, mit dem die durch die Workstation ausgelöste spezifische Transaktion verbunden ist. Wenn zum Beispiel der Zugriff von einer Workstation erfordert, daß gespeicherte Prozedur sp_a abgearbeitet wird, wird das System die gültige Version der gespeicherten Prozedur sp_a in der Systemtabelle nachschauen. In der obigen Tabelle, und im Normalbetrieb ist sp_a_1.0 die gültige Version der gespeicherten Prozedur sp_a, die dann von dem System verwendet wird, um die durch den Arbeitsplatzrechner verlangte Transaktion durchzuführen.In normal operation, the entries in theSystem table only on a set of stored procedures,d. H. to the basic version. When a workstation is onaccessing the database, the system is currently viewing thevalid name or version of the stored procedure,with which the specific triggered by the workstationTransaction is connected. For example, if access froma workstation requires that stored procedure sp_ais processed, the system becomes the valid version of theLook up stored procedure sp_a in the system table.In the table above, and in normal operation, sp_a_1.0 is thevalid version of the stored procedure sp_a, which is then fromthe system is used by theWorkstation to carry out the requested transaction.
Im Falle eines Upgrades der Datenbank müssen neue Versionen aller oder einiger gespeicherter Prozeduren in der Datenbank installiert werden. Es ist auch möglich, daß eine neue gespeicherte Prozedur der Datenbank hinzugefügt wird. Gemäß der Erfindung wird die Systemtabelle mit Namen/Versionen der neuen gespeicherten Prozedur aufgerüstet, d. h. die Zielversionen werden hinzugefügt. Um alte und neue Tabellen der Datenbank synchron zu halten, werden zusätzliche gespeicherte Prozeduren sp_a_upgr und sp_c_upgr in die Systemtabelle hinzugefügt. Die zusätzlichen gespeicherten Prozeduren sp_a_upgr und sp_c_upgr werden nur während des Upgrade-Prozesses verwendet, und nutzen die neuen und die alten gespeicherten Prozeduren, um die neuen und die alten Tabellen in Übereinstimmung mit den durch die Arbeitsplatzrechner ausgelösten Transaktionen zu aktualisieren.In the case of an upgrade of the database, new versions are requiredall or some stored procedures in the databasebe installed. It is also possible that a new onestored procedure is added to the database. According tothe invention is the system table with names / versions of theupgraded to new stored procedure, d. H. theTarget versions are added. To old and new tableskeeping the database in sync will be additionalstored procedures sp_a_upgr and sp_c_upgr in theSystem table added. The additional savedProcedures sp_a_upgr and sp_c_upgr are only used during theUpgrade process used, and take advantage of the new and theold stored procedures to the new and the oldTables in accordance with the by theWorkplace triggered transactionsTo update.
Während eines Upgrades initiiert beispielsweise die zusätzlich gespeicherte Prozedur sp_a_upgr in der Datenbank zwei Bearbeitungszweige, basierend auf der Basisversion sp_a_1.0 und der neuen Version sp_a_1.1, wodurch Daten in den neuen und den alten Tabellen des Datenbanksystems bearbeitet und fortgeschrieben werden. Bezüglich der gespeicherten Prozedur sp_b gibt es keine zusätzliche gespeicherte Prozedur, da die gespeicherte Prozedur sp_b nicht aufgerüstet wird, d. h. in der alten und der neuen Datenbank gleich bleibt. Das System wird in solchen Fällen auf die Basisversion sp_b verweisen, und die Basisversion für, die alten und die neuen Tabellen verwenden.During an upgrade, for example, theadditionally stored procedure sp_a_upgr in the databasetwo processing branches, based on the basic versionsp_a_1.0 and the new version sp_a_1.1, whereby data in theedited new and old tables of the database systemand be updated. Regarding the savedThere is no additional stored procedure sp_bProcedure because the sp_b stored procedure is not upgradedwill, d. H. same in the old and new databasesremains. In such cases, the system is based on theBase version sp_b, and the base version for thatuse old and new tables.
Der Wechsel von den alten gespeicherten Prozeduren auf die neuen gespeicherten Prozeduren besteht darin den Zugriff auf die Systemtabelle zu verwehren, die Verweise aufzurüsten, so daß auf die gewünschten gespeicherten Prozeduren verwiesen wird, um den Zugriff auf die Systemtabelle zu gewähren. Das Aufrüsten von Verweisen ist ein sehr schneller Vorgang, so daß Benutzer des Systems nur eine sehr kleine Verzögerung und keine Stillstandzeit bemerken.The change from the old stored procedures to theis to access new stored proceduresdeny the system table, upgrade the references, so that referenced the desired stored proceduresto grant access to the system table. TheUpgrading references is a very quick process, sothat users of the system have only a very small delay andnotice no downtime.
Ein zweites Verfahren um Versionen von Datenbankkomponenten handzuhaben wird im folgenden beschrieben. Wie inFig. 4 gezeigt, wird eine Konfigurationsdatei während des Upgrade-Prozesses verwendet, wobei die Datei auf alle oder nur jene gespeicherten Prozeduren verweist, die aufgerüstet werden sollen, d. h. durch gespeicherte Prozeduren einer neuen Version ersetzt werden. Auf alle oder nur jene gespeicherte Prozeduren, die aufgerüstet werden sollen, wird über die Konfigurationsdatei während des Upgrade-Prozesses Bezug genommen. Die Konfigurationsdatei wird in einem separaten Speichermedium4, vorgesehen in dem Computersystem1, oder in dem Speichermedium, auf dem auch die Datenbank2 gespeichert ist, gespeichert.A second method to handle versions of database components is described below. As shown inFIG. 4, a configuration file is used during the upgrade process, the file referring to all or only those stored procedures that are to be upgraded, ie replaced by stored procedures of a new version. All or only those stored procedures that are to be upgraded are referenced in the configuration file during the upgrade process. The configuration file is stored in a separate storage medium4 , provided in the computer system1 , or in the storage medium on which the database2 is also stored.
Bevor auf die Datenbank durch eine Entität (z. B. eine Anwendung) von einem Arbeitsplatzrechner3 zugegriffen wird, wird die Konfigurationsdatei gelesen, um zu sehen, welche gespeicherte Prozedur zu verwenden ist. Wenn es keinen Eintrag in der Konfigurationsdatei für eine spezifische gespeicherte Prozedur gibt, wird die dem System bekannte gespeicherte Prozedur verwendet. Eine Konfigurationsdatei gemäß der Erfindung kann eine einfache Textdatei sein, und kann wie folgt aussehen:Before the database is accessed by an entity (e.g. an application) from a workstation3 , the configuration file is read to see which stored procedure is to be used. If there is no entry in the configuration file for a specific stored procedure, the stored procedure known to the system is used. A configuration file according to the invention can be a simple text file and can look like this:
Tabelle 2
 Table 2
Im Normalbetrieb verweisen die Einträge in der Konfigurationsdatei nur auf einen Satz von gespeicherten Prozeduren, nämlich auf die Basisversion. Wenn ein Arbeitsplatzrechner auf die Datenbank zugreift, schaut das System den momentan gültigen Namen oder Version der gespeicherten Prozedur nach, mit der die durch den Arbeitsplatzrechner ausgelöste spezifische Transaktion verbunden ist. Wenn der Zugriff von einem Arbeitsplatzrechner beispielsweise erfordert, daß die gespeicherte Prozedur sp_a abgearbeitet wird, wird das System die gültige Version der gespeicherten Prozedur sp_a in der Konfigurationsdatei nachschauen. In der obigen Datei ist sp_a_1.0 die gültige Version der gespeicherten Prozedur sp_a, die dann von dem System verwendet wird, um die durch den Arbeitsplatzrechner verlangte Transaktion auszuführen.In normal operation, the entries in theConfiguration file only on a set of savedProcedures, namely on the basic version. When aThe workstation accesses the database, see thatSystem the currently valid name or version of thestored procedure with which the by theWorkstation triggered specific transactionconnected is. If access from a workstationfor example, the stored procedure requires sp_ais processed, the system becomes the valid version of thestored procedure sp_a in the configuration filecheck it out. In the above file, sp_a_1.0 is the valid oneVersion of the stored procedure sp_a, which is then used by theSystem is used to by the workstationexecute the requested transaction.
Im Falle eines Upgrades der Datenbank müssen neue Versionen von allen oder einigen gespeicherten Prozeduren in der Datenbank installiert werden. Es ist auch möglich, daß eine neue gespeicherte Prozedur der Datenbank hinzugefügt wird. Um alte und neue Tabellen der Datenbank synchron zu halten, werden zusätzliche gespeicherte Prozeduren sp_a_upgr und sp_c_upgr der Konfigurationsdatei hinzugefügt. Die zusätzlichen gespeicherten Prozeduren sp_a_upgr und sp_c_upgr werden nur während des Upgrade-Prozesses verwendet, und nutzen die neuen und alten gespeicherten Prozeduren, um die neuen und alten Tabellen in Übereinstimmung mit den durch den Arbeitsplatzrechner ausgelösten Transaktionen auszuführen.In the case of an upgrade of the database, new versions are requiredof all or some stored procedures in theDatabase to be installed. It is also possible that anew stored procedure is added to the database. Aroundkeep old and new tables in the database in sync,additional stored procedures sp_a_upgr and Sp_c_upgr added to the configuration file. Theadditional stored procedures sp_a_upgr and sp_c_upgrare only used during the upgrade process, anduse the new and old stored procedures to get thenew and old tables in accordance with the by theExecute workstation triggered transactions.
Während eines Upgrades löst beispielsweise die zusätzliche gespeicherte Prozedur sp_a_upgr an dem Arbeitsplatzrechner zwei Bearbeitungszweige aus, basierend auf der Basisversion sp_a_1.0 und der neuen Version sp_a_1.1, wodurch Daten bearbeitet in den neuen und den alten Tabellen des Datenbanksystems bearbeitet und fortgeschrieben werden. Bezugnehmend auf die gespeicherte Prozedur sp_b existiert keine zusätzliche gespeicherte Prozedur, da gespeicherte Prozedur sp_b nicht aufgerüstet wird, d. h. in der alten und der neuen Datenbank gleich bleibt. Das System wird in solchen Fällen auf die Basisversion sp_b Bezug nehmen, und die Basisversion für die neuen und die alten Tabellen verwenden.During an upgrade, for example, the additional one resolvesstored procedure sp_a_upgr on the workstationtwo processing branches based on the basic versionsp_a_1.0 and the new version sp_a_1.1, which creates dataedited in the new and old tables of theDatabase system can be edited and updated.Referring to the stored procedure sp_b existsno additional stored procedure since storedProcedure sp_b is not upgraded, d. H. in the old andthe new database remains the same. The system is in suchCases refer to the basic version sp_b, and theUse the basic version for the new and old tables.
Der Wechsel von den alten gespeicherten Prozeduren zu den neuen gespeicherten Prozeduren wird durch Aufrüsten der Konfigurationsdatei und erneutes Lesen durchgeführt. Ein Aufrüsten und erneutes Lesen der Konfigurationsdatei ist ein sehr schneller Vorgang, so daß die Benutzer des Systems nur eine sehr kleine Verzögerung und eine kleine Stillstandzeit bemerken werden.The switch from the old stored procedures to thenew stored procedures are upgraded byConfiguration file and reread carried out. AUpgrading and rereading the configuration file is avery quick process, so that the users of the system onlya very small delay and a short downtimewill notice.
Ein drittes Verfahren um Versionen von Datenbankkomponenten handzuhaben könnte eine Kombination aus einer Systemtabelle und einer Konfigurationsdatei sein. Die Systemtabelle wird auf einige gespeicherte Prozeduren verweisen, während die Konfigurationsdatei nur auf andere gespeicherte Prozeduren verweisen wird.A third method for versions of database componentscould handle a combination of a system tableand a configuration file. The system table isrefer to some stored procedures while the Configuration file only on other stored procedureswill refer.
Die anderen Komponenten der Datenbank können auf gleiche Weise gehandhabt werden. Um beispielsweise in der Lage zu sein, zwei oder mehrere Versionen der Tabellen zu halten, kann auf die Tabellen über die Systemtabelle oder die Konfigurationsdatei verwiesen werden, die in ähnlicher Weise behandelt werden wie zuvor im Hinblick auf gespeicherte Prozeduren erläutert.The other components of the database can be the sameBe handled wisely. For example, to be able tobe to keep two or more versions of the tablescan on the tables on the system table or theConfiguration file referenced in a similar mannerare treated as before with regard to savedProcedures explained.
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| DE19734413ADE19734413C1 (en) | 1997-08-08 | 1997-08-08 | Procedure for upgrading a database | 
| AU93405/98AAU9340598A (en) | 1997-08-08 | 1998-08-07 | Method for upgrading a database | 
| EP98946302AEP1002287A1 (en) | 1997-08-08 | 1998-08-07 | Method for upgrading a database | 
| PCT/EP1998/005026WO1999008206A1 (en) | 1997-08-08 | 1998-08-07 | Method for upgrading a database | 
| EP00125246AEP1091305B1 (en) | 1997-08-08 | 1998-08-07 | Method for upgrading a database | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| DE19734413ADE19734413C1 (en) | 1997-08-08 | 1997-08-08 | Procedure for upgrading a database | 
| Publication Number | Publication Date | 
|---|---|
| DE19734413C1true DE19734413C1 (en) | 1999-01-07 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| DE19734413AExpired - Fee RelatedDE19734413C1 (en) | 1997-08-08 | 1997-08-08 | Procedure for upgrading a database | 
| Country | Link | 
|---|---|
| EP (2) | EP1091305B1 (en) | 
| AU (1) | AU9340598A (en) | 
| DE (1) | DE19734413C1 (en) | 
| WO (1) | WO1999008206A1 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US6957736B2 (en) | 2003-04-24 | 2005-10-25 | Siemens Aktiengesellschaft | Conveyor for transporting load carriers | 
| US7236991B2 (en) | 2001-06-12 | 2007-06-26 | Sap Ag | Changing the data structure which an application program in a computer system uses to access database systems | 
| US7680825B2 (en) | 2005-12-30 | 2010-03-16 | Sap Ag | Systems and methods for generating tenant-specific properties for use in a provider-tenant environment | 
| US7689593B2 (en) | 2005-12-30 | 2010-03-30 | Sap Ag | Systems and methods for accessing a shared space in a provider-tenant environment | 
| US7693851B2 (en) | 2005-12-30 | 2010-04-06 | Sap Ag | Systems and methods for implementing a shared space in a provider-tenant environment | 
| US7698284B2 (en) | 2005-12-30 | 2010-04-13 | Sap Ag | Systems and methods for deploying a tenant in a provider-tenant environment | 
| US7739348B2 (en) | 2006-12-29 | 2010-06-15 | Sap Ag | Systems and methods for accessing a shared space in a provider-tenant environment by using middleware | 
| US7917607B2 (en) | 2005-12-30 | 2011-03-29 | Sap Ag | Software management systems and methods, including use of such systems and methods in a provider-tenant environment | 
| US7933869B2 (en) | 2006-12-29 | 2011-04-26 | Sap Ag | Method and system for cloning a tenant database in a multi-tenant system | 
| US8069184B2 (en) | 2006-12-29 | 2011-11-29 | Sap Ag | Systems and methods to implement extensibility of tenant content in a provider-tenant environment | 
| US8224828B2 (en) | 2009-12-22 | 2012-07-17 | Sap Ag | Multi-client generic persistence for extension fields | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US6385770B1 (en)* | 1999-01-29 | 2002-05-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Software upgrade | 
| US6931630B1 (en) | 2000-09-27 | 2005-08-16 | International Business Machines Corporation | Method of, system for, and computer program product for providing automatic identification of a computer program code candidate for web deployment or a stored procedure | 
| EP1267263A3 (en)* | 2001-06-11 | 2006-06-28 | Océ-Technologies B.V. | Hot migration through incremental roll-over using migration plug-ins for conversion during upgrade | 
| TWI242725B (en) | 2001-06-11 | 2005-11-01 | Oce Tech Bv | A method for executing a hot migrate operation through an incremental roll-over process that uses migration plug-in means for conversion during an upgrade transition, and a multiprocessing system and a system arranged for implementing such method | 
| US8010887B2 (en) | 2001-09-21 | 2011-08-30 | International Business Machines Corporation | Implementing versioning support for data using a two-table approach that maximizes database efficiency | 
| US7523142B2 (en) | 2001-12-17 | 2009-04-21 | Sap Ag | Systems, methods and articles of manufacture for upgrading a database with a shadow system | 
| US7818740B2 (en) | 2006-05-05 | 2010-10-19 | Microsoft Corporation | Techniques to perform gradual upgrades | 
| US8200634B2 (en) | 2008-10-08 | 2012-06-12 | Sap Ag | Zero downtime maintenance using a mirror approach | 
| US9031910B2 (en) | 2013-06-24 | 2015-05-12 | Sap Se | System and method for maintaining a cluster setup | 
| US9619490B2 (en)* | 2014-04-11 | 2017-04-11 | Nutanix, Inc. | Mechanism for performing lockless rolling upgrade of NoSQL database | 
| US9858309B2 (en) | 2014-10-07 | 2018-01-02 | Sap Se | Managing write accesses during database upgrade procedure | 
| US10262054B2 (en)* | 2016-01-21 | 2019-04-16 | Microsoft Technology Licensing, Llc | Database and service upgrade without downtime | 
| CN113190251B (en)* | 2021-05-08 | 2025-06-06 | 百度在线网络技术(北京)有限公司 | Data upgrading method and device, electronic device, and computer readable medium | 
| CN113704265B (en)* | 2021-08-31 | 2024-10-29 | 上海华力集成电路制造有限公司 | Data maintenance method, system, electronic equipment and storage medium | 
| CN115640029A (en)* | 2022-10-26 | 2023-01-24 | 卫宁健康科技集团股份有限公司 | Medical client upgrading method, device, equipment and storage medium | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| EP0501180A2 (en)* | 1991-02-25 | 1992-09-02 | International Business Machines Corporation | Dynamic, finite versioning for concurrent transaction and query processing | 
| US5440735A (en)* | 1993-10-08 | 1995-08-08 | International Business Machines Corporation | Simplified relational data base snapshot copying | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US5396623A (en)* | 1992-10-30 | 1995-03-07 | Bmc Software Inc. | Method for editing the contents of a DB2 table using an editproc manager | 
| US5359730A (en)* | 1992-12-04 | 1994-10-25 | International Business Machines Corporation | Method of operating a data processing system having a dynamic software update facility | 
| US6112253A (en)* | 1995-10-12 | 2000-08-29 | International Business Machines Corporation | Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| EP0501180A2 (en)* | 1991-02-25 | 1992-09-02 | International Business Machines Corporation | Dynamic, finite versioning for concurrent transaction and query processing | 
| US5440735A (en)* | 1993-10-08 | 1995-08-08 | International Business Machines Corporation | Simplified relational data base snapshot copying | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US7236991B2 (en) | 2001-06-12 | 2007-06-26 | Sap Ag | Changing the data structure which an application program in a computer system uses to access database systems | 
| US6957736B2 (en) | 2003-04-24 | 2005-10-25 | Siemens Aktiengesellschaft | Conveyor for transporting load carriers | 
| US7930318B2 (en) | 2005-12-30 | 2011-04-19 | Sap Ag | Systems and methods for implementing a tenant space in a provider-tenant environment | 
| US7680825B2 (en) | 2005-12-30 | 2010-03-16 | Sap Ag | Systems and methods for generating tenant-specific properties for use in a provider-tenant environment | 
| US7689593B2 (en) | 2005-12-30 | 2010-03-30 | Sap Ag | Systems and methods for accessing a shared space in a provider-tenant environment | 
| US7693851B2 (en) | 2005-12-30 | 2010-04-06 | Sap Ag | Systems and methods for implementing a shared space in a provider-tenant environment | 
| US7698284B2 (en) | 2005-12-30 | 2010-04-13 | Sap Ag | Systems and methods for deploying a tenant in a provider-tenant environment | 
| US7917607B2 (en) | 2005-12-30 | 2011-03-29 | Sap Ag | Software management systems and methods, including use of such systems and methods in a provider-tenant environment | 
| US7739348B2 (en) | 2006-12-29 | 2010-06-15 | Sap Ag | Systems and methods for accessing a shared space in a provider-tenant environment by using middleware | 
| US7933869B2 (en) | 2006-12-29 | 2011-04-26 | Sap Ag | Method and system for cloning a tenant database in a multi-tenant system | 
| US8069184B2 (en) | 2006-12-29 | 2011-11-29 | Sap Ag | Systems and methods to implement extensibility of tenant content in a provider-tenant environment | 
| US8224828B2 (en) | 2009-12-22 | 2012-07-17 | Sap Ag | Multi-client generic persistence for extension fields | 
| US8805864B2 (en) | 2009-12-22 | 2014-08-12 | Sap Ag | Multi-client generic persistence for extension fields | 
| Publication number | Publication date | 
|---|---|
| EP1091305B1 (en) | 2003-10-29 | 
| EP1002287A1 (en) | 2000-05-24 | 
| AU9340598A (en) | 1999-03-01 | 
| WO1999008206A1 (en) | 1999-02-18 | 
| EP1091305A1 (en) | 2001-04-11 | 
| Publication | Publication Date | Title | 
|---|---|---|
| DE19734413C1 (en) | Procedure for upgrading a database | |
| DE69229121T2 (en) | METHOD AND DEVICE FOR PRODUCING A CD-ROM DISC FOR USE WITH MULTIPLE OPERATING SYSTEMS | |
| DE68926422T2 (en) | Database management system | |
| DE69736748T2 (en) | EDITING ENVIRONMENT FOR OBJECT MODELS AND METHOD FOR THEIR APPLICATION | |
| DE68929132T2 (en) | Database management system and method therefor | |
| DE69802437T2 (en) | FINE-GRAIN MATCH MECHANISM FOR OPTIMISTIC PARALLEL CONTROL WITH LOCKING GROUPS | |
| DE69502381T2 (en) | METHOD AND DEVICE FOR CONTROLLING ACCESS TO A DATABASE | |
| DE69130312T2 (en) | File system with read / write memory and one-time write and multiple read memory | |
| DE3883733T2 (en) | Operating method of an electronic data processing system for document transfer between end users. | |
| DE3854667T2 (en) | Database system with a tree structure. | |
| DE68926693T2 (en) | System and method for data recovery following a system error in a database of a computer system | |
| DE69531513T2 (en) | duplication system | |
| EP1088280B1 (en) | Method and system for fast memory-resident processing of transaction data | |
| DE69505561T2 (en) | METHOD AND DEVICE FOR MOVING UNDER-TREE STRUCTURES IN A NETWORK FILE | |
| DE3780807T2 (en) | METHOD FOR QUICKLY OPENING DISK FILES IDENTIFIED WITH PATH NAMES. | |
| DE68916486T2 (en) | Procedure for performing operations in a relational database management system. | |
| DE69112694T2 (en) | Method for operating a data processing system for executing database transactions. | |
| DE202019005594U1 (en) | Secure shared use of data in a multi-tenant database system | |
| DE69024932T2 (en) | Procedure to identify documents with a certain attribute with the help of a vector-relational characteristic object | |
| DE3851904T2 (en) | Block distributed files and records. | |
| DE19964236C2 (en) | Product for fast data backup and data transfer | |
| DE602004007925T2 (en) | MANAGING A RELATIONSHIP BETWEEN A TARGET VOLUME AND A SOURCE VOLUME | |
| EP1031100B1 (en) | Method for managing documents | |
| EP1637955A1 (en) | Generation of anonymized data sets for testing and developping applications | |
| DE602005000819T2 (en) | Maintaining the Consistency of a Remote Copy Using Virtualization | 
| Date | Code | Title | Description | 
|---|---|---|---|
| 8100 | Publication of the examined application without publication of unexamined application | ||
| D1 | Grant (no unexamined application published) patent law 81 | ||
| 8364 | No opposition during term of opposition | ||
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee | ||
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee | Effective date:20150303 |