DE60117150T2 - Verfahren und computerprogramm zum übertragen von inhalt aus einer quellendatenbank zu einer zieldatenbank - Google Patents

Verfahren und computerprogramm zum übertragen von inhalt aus einer quellendatenbank zu einer zieldatenbank Download PDF

Info

Publication number
DE60117150T2
DE60117150T2 DE60117150T DE60117150T DE60117150T2 DE 60117150 T2 DE60117150 T2 DE 60117150T2 DE 60117150 T DE60117150 T DE 60117150T DE 60117150 T DE60117150 T DE 60117150T DE 60117150 T2 DE60117150 T2 DE 60117150T2
Authority
DE
Germany
Prior art keywords
database
source
statements
target
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60117150T
Other languages
English (en)
Other versions
DE60117150D1 (de
Inventor
Bernd Kohler
Martin Stahl
Günter Briam
Torsten Ziegler
Frank-Martin Haas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Publication of DE60117150D1 publication Critical patent/DE60117150D1/de
Application granted granted Critical
Publication of DE60117150T2 publication Critical patent/DE60117150T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein Computer, die Datenbanksysteme implementieren und insbesondere ein Verfahren, ein System und ein Programm zum Übertragen von Daten von einem ersten Datenbanksystem zu einem zweiten Datenbanksystem.
  • Allgemeiner Stand der Technik
  • In der Industrie der Unternehmenssoftware sind dreistufige Lösungen zweckmäßig. Gewöhnlich umfassen solche Lösungen Benutzerschnittstellensysteme in einer ersten Schicht, Unternehmensanwendungssysteme in einer zweiten Schicht und Datenbanksysteme in einer dritten Schicht ("System" im folgenden weggelassen). Beispiele für dreistufige Lösungen sind die wohlbekannten Softwarelösungen, wie zum Beispiel die Lösung R/3 und mySAP.com, die im Handel von der SAP Aktiengesellschaft, Walldorf (Baden) erhältlich sind. Für die folgende Besprechung verdienen die zweite und die dritte Schicht größere Aufmerksamkeit.
  • Die Datenbanken werden gewöhnlich als relationale Datenbanken implementiert, die durch vordefinierte und standardisierte Anweisungen, wie zum Beispiel SQL-Anweisung (System Query Language) kommunizieren.
  • Relationale Datenbanken sind in der Technik wohlbekannt, Informationen werden in Tabellen oder Relationen strukturiert, worin Datenwerte in Zeilen oder Tupeln unter verschiedenen Spaltenüberschriften gespeichert werden.
  • Der technologische Prozeß, sich ändernde Kundenbedürfnisse und andere Umstände verlangen, Daten zu anderen Datenbanken zu übertragen. Gewöhnlich erfordert die Übertragung insofern Zeit, als die Anwendung nicht wie erforderlich wirkt.
  • Datenbanken und/oder Anwendungen zu einem anderen Ort zu kopieren, ist in kurzer Zeit möglich, solange die Struktur der Daten unverändert bleibt. Die Datenumstrukturierung erfordert mehr Zeit.
  • Die Annahme einer Unternehmensanwendung hängt jedoch unter anderem von ihrer Verfügbarkeit ab. Kunden, die die Datenbankdienste eines Patentbüros schätzen, kümmern sich nicht um Nichtverfügbarkeit während der Nacht. Es gibt aber viele andere Systeme, die praktisch Nichtverfügbarkeit nur während bestimmter Jahreszeiten, wie zum Beispiel während bestimmter Ferien, erlauben. Anders ausgedrückt, sollten im Idealfall viele Unternehmensanwendungssysteme 24 Stunden am Tag und 365 Tage im Jahr verfügbar sein.
  • Aus einer relationalen Datenbank werden Informationen durch eine Abfrage abgerufen. Wenn Informationen aktualisiert, durch eine sogenannte Transaktion in die Datenbank eingefügt oder daraus gelöscht werden sollen, muß mindestens eine Tabelle modifiziert werden. Es gibt mehrere Ansätze zur Datenbank-Wartung.
  • Aus der Besprechung vorbekannter Systeme sind die folgenden Literaturstellen nützlich: US 6,141,664 ; US 6,122,630 ; US 6,205,451 ; US 5,893,119 und US 6,006,216 . In jedem Fall besteht eine technische Aufgabe, die sogenannte System-Downtime während der Aktualisierung des Systems zu verringern.
  • Kurzfassung der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren zum Übertragen von Inhalt von einer Quellentabelle in einer Quellendatenbank zu einer Zieltabelle in einer Zieldatenbank, wobei die Datenbanken physisch verschieden sind. Das Verfahren wird in Anspruch 1 definiert. Jeder Eintrag weist einen eindeutigen Schlüssel und einen Inhalt auf. Die Datenbankanweisungen weisen vorbestimmte Aktionstypen auf. Das Verfahren umfaßt die folgenden computerimplementierten Schritte: Speichern, für zu der Quellendatenbank gesendete Anweisungen, zusätzlich zu der Abwicklung der Anweisungen durch die Quellendatenbank, von Repräsentationen des Aktionstyps und des Schlüssels in einer Logtabelle unter der Bedingung, daß der Aktionstyp mit einem vorbestimmten Aktionstyp zusammenfällt; Kopieren, während die Anwendung Datenbankanweisungen sendet und während die Abwicklung der Anweisungen in der Quellendatenbank und das Speichern von Repräsentationen in der Logtabelle stattfinden, von Einträgen der Quellentabelle in die Zieltabelle; und Einstellen derjenigen Einträge in der Zieltabelle, die in der Logtabelle repräsentierte Schlüssel aufweisen, für die Aktionstyp-Repräsentationen Aktualisieren und Insert durch Kopieren von Inhalt aus der Quellentabelle in die Zieltabelle an entsprechenden Schlüsseln, und für die Aktionstyp-Repräsentation Delete durch Löschen des entsprechenden Eintrags in der Zieltabelle.
  • Ein Vorteil ist, daß das Einstellen mindestens teilweise stattfindet, wenn die Anwendung immer noch mit der Quellendatenbank kommuniziert. Das Senden von Anweisungen zu der Quellendatenbank ist auch dann noch möglich, wenn das Kopieren abgeschlossen ist. Die Downtime für die Anwendung wird verringert.
  • Vorzugsweise umfaßt der Schritt des Kopierens folgendes: Umsetzung der Codierung des Eintrags von einem Einzelbytecode wie etwa ASCII in einen Mehrbytecode wie etwa Unicode. Es ist ein Vorteil, daß durch Verwendung eines Schlüssels, der sowohl in der Quellendatenbank als auch in der Zieldatenbank gültig ist, die Umsetzung während der Datenbankübertragung durchgeführt wird.
  • Vorzugsweise wird das Einstellen in einer ersten Einstellperiode durchgeführt, während die Anwendung immer noch Datenbankanweisungen sendet, und in einer zweiten Einstellperiode, während die Anwendung stumm ist. Die zweite Periode ist die kürzere.
  • Vorzugsweise werden die vorbestimmten Aktionstypen aus der Gruppe Einfügen, Löschen und Aktualisieren ausgewählt; die Anweisungen sind SQL-Anweisungen. Die vorliegende Erfindung ist mit existierenden Datenbanksystemen kompatibel.
  • Vorzugsweise umfaßt der Schritt des Einstellens das Einstellen eines ersten Teils der Quellentabelle mit einem ersten Teil der Zieltabelle im wesentlichen parallel mit dem Einstellen eines zweiten Teils der Quellentabelle mit einem zweiten Teil der Zieltabelle. Solange separaten Einstellprozessen separate Teile zugewiesen werden, verringert die parallele Verarbeitung die Anwendungs-Downtime weiter.
  • Vorzugsweise umfaßt der Schritt des Kopierens das Kopieren eines ersten Teils der Quellentabelle in einen ersten Teil der Zieltabelle im wesentlichen parallel mit dem Kopieren eines zweiten Teils der Quellentabelle in einen zweiten Teil der Zieltabelle. Solange separaten Kopierprozessen separate Teile zugewiesen werden, verringert die parallele Verarbeitung die Gesamtübertragungszeit weiter.
  • Die vorliegende Erfindung betrifft außerdem ein Computerprogrammprodukt zum Übertragen von Inhalt von einer Quellentabelle in einer Quellendatenbank zu einer Zieltabelle in einer Zieldatenbank, wobei die Datenbanken physisch verschieden sind, wobei vor dem Übertragen eine Unternehmensanwendung aufeinanderfolgend Datenbankanweisungen zu der Quellentabelle sendet und nach dem Übertragen die Unternehmensanwendung aufeinanderfolgend die Datenbankanweisungen zu der Zieldatenbank sendet, wobei in jeder Tabelle jeder Eintrag einen eindeutigen Schlüssel und einen Inhalt aufweist, wobei die Datenbankanweisungen Aktionstypen aufweisen. Das Computerprogrammprodukt weist Anweisungen auf, die bewirken, daß ein Prozessor folgendes ausführt: Speichern, für zu der Quellendatenbank gesendete Anweisungen, zusätzlich zu der Abwicklung der Anweisungen durch die Quellendatenbank, von Repräsentationen des Aktionstyps und des Schlüssels in einer Logtabelle unter der Bedingung, daß der Aktionstyp mit einem vorbestimmten Aktionstyp zusammenfällt; Kopieren, während die Anwendung Datenbankanweisungen sendet und während die Abwicklung der Anweisungen in der Quellendatenbank und das Speichern von Repräsentationen in der Logtabelle stattfinden, von Einträgen der Quellentabelle in die Zieltabelle wobei die Codierung des Eintrags umgesetzt wird; und Einstellen derjenigen Einträge in der Zieltabelle, die in der Logtabelle repräsentierte Schlüssel aufweisen.
  • Vorzugsweise bewirken die Anweisungen, daß der Prozessor folgendes durchführt: aufeinanderfolgendes Einstellen in einer ersten Einstellperiode, während die Anwendung die Datenbankanweisungen sendet, sowie in einer zweiten Einstellperiode, während die Anwendung (200) stumm ist.
  • Vorzugsweise bewirken die Anweisungen, daß der Prozessor den Schritt des Einstellens durch Einstellen eines ersten Teils der Quellentabelle mit einem ersten Teil der Zieltabelle im wesentlichen parallel mit einem Einstellen eines zweiten Teils der Quellentabelle mit einem zweiten Teil der Zieltabelle ausführt.
  • Die vorliegende Erfindung betrifft außerdem ein Computersystem zum Durchführen des Verfahrens zum Übertragen von Inhalt von einer Quellentabelle in einer Quellendatenbank zu einer Zieltabelle in einer Zieldatenbank.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt ein vereinfachtes Blockschaltbild des erfindungsgemäßen Computernetzwerksystems mit mehreren Computern;
  • 2 zeigt ein vereinfachtes Blockschaltbild einer Anwendung, einer Quellendatenbank, einer Zieldatenbank, einer Logtabelle und eines Übertragungswerkzeuges;
  • 3 zeigt ein Verfahren der vorliegenden Erfindung durch ein vereinfachtes Flußdiagramm in Kombination mit einer Zeitachse;
  • 4 zeigt eine Übersicht über Verfahrensschrittaktionen, die an aufeinanderfolgenden Zeitpunkten stattfinden;
  • 58 zeigen Datenbanktabellen zu verschiedenen Zeitpunkten und
  • 9 zeigt ein vereinfachtes Diagramm von Quellen- und Zieltabellen mit den Einstell- und Kopierschritten in einer weiteren Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • 1 zeigt ein vereinfachtes Blockschaltbild des erfindungsgemäßen Computernetzwerksystems 999 mit mehreren Computern 900, 901, 902 (oder 90q, mit q = 0... Q-1, Q eine beliebige Zahl).
  • Die Computer 900902 sind über das Netzwerk 990 zwischen Computern gekoppelt. Der Computer 900 umfaßt einen Prozessor 910, Speicher 920 und einen Bus 930 und wahlweise ein Eingabegerät 940 und ein Ausgabegerät 950 (E/A-Geräte, Benutzerschnittstelle 960). Wie dargestellt, ist die Erfindung durch das Computerprogrammprodukt 100 (CPP), den Programmträger 970 and das Programmsignal 980, zusammen "Programm", präsent.
  • In bezug auf den Computer 900 wird der Computer 901/902 manchmal als "abgesetzter Computer" bezeichnet. Der Computer 901/902 ist zum Beispiel ein Server, ein Router, eine Peer-Einrichtung oder ein anderer gemeinsamer Netzwerkknoten und umfaßt in der Regel viele oder alle der relativ zu dem Computer 900 beschriebenen Elemente. Die Elemente 100 und 910980 in dem Computer 900 illustrieren daher kollektiv auch entsprechende Elemente 10q und 91q–98q (für q = 0 gezeigt) in den Computern 90q.
  • Der Computer 900 ist zum Beispiel ein herkömmlicher PC (Personal Computer), eine Desktop- oder in der Hand gehaltene Einrichtung, ein Mehrprozessorcomputer, ein Pen-Computer, eine mikroprozessorgestütze oder programmierbare Verbraucherelektronik, ein Minicomputer, ein Zentralrechner, eine persönliche mobile Datenverarbeitungseinrichtung, ein Mobiltelefon, ein tragbarer oder stationärer Personal Computer, ein Palmtop-Computer oder dergleichen.
  • Der Prozessor 910 ist zum Beispiel eine Zentralverarbeitungseinheit (CPU), eine Mikrosteuerungseinheit (MCU), ein digitaler Signalprozessor (DSP) oder dergleichen.
  • Der Speicher 920 symbolisiert Elemente, die Daten und Anweisungen vorübergehend oder permanent speichern. Obwohl der Speicher 920 zweckmäßigerweise als Teil des Computers 900 dargestellt ist, können Speicherfunktionen auch in dem Netzwerk 990, in den Computern 901/902 und in dem Prozessor 910 selbst (z.B. Cache, Register), oder an anderer Stelle implementiert werden. Der Speicher 920 kann ein Nurlesespeicher (ROM), ein Direktzugriffsspeicher (RAM) oder ein Speicher mit anderen Zugriffsoptionen sein. Der Speicher 920 ist physisch durch ein computerlesbares Medium implementiert, wie zum Beispiel: (a) magnetische Medien, wie zum Beispiel eine Festplatte, eine Diskette oder ein anderer magnetischer Datenträger, ein Band, ein Kassettenband; (b) optische Medien wie etwa optische Datenträger (CD-ROM, Digital Versatile Disk – DVD); (c) Halbleitermedien wie etwa DRAM, SRAM, EPROM, EEPROM, Speicher-Stick oder durch beliebige andere Medien wie etwa Papier.
  • Wahlweise wird der Speicher 920 auf verschiedene Medien verteilt. Teile des Speichers 920 können wechselbar oder nicht wechselbar sein. Zum Lesen aus Medien und zum Schreiben in Medien verwendet der Computer 900 in der Technik wohlbekannte Einrichtungen, wie zum Beispiel Plattenlaufwerke, Bandlaufwerke.
  • Der Speicher 920 speichert Support-Module, wie zum Beispiel ein BIOS (basic input output system), ein Betriebssystem (OS), eine Programmbibliothek, einen Compiler, einen Interpreter und ein Textverarbeitungswerkzeug. Die Support-Module sind im Handel erhältlich und können von Fachleuten auf dem Computer 900 installiert werden. Der Einfachheit halber sind diese Module nicht dargestellt.
  • Der CPP 100 umfaßt Programmanweisungen und wahlweise Daten, die bewirken, daß der Prozessor 910 Verfahrensschritte der vorliegenden Erfindung ausführt. Verfahrensschritte werden später ausführlicher erläutert. Anders ausgedrückt, definiert der CPP 100 die Funktionsweise des Computers 900 und seine Interaktion in dem Systemnetzwerksystem 999. Zum Beispiel und ohne beabsichtigte Einschränkung kann der CPP 100 als Quellcode in beliebiger Programmiersprache und als Objektcode ("Binärcode") in kompilierter Form verfügbar sein. Fachleute können den CPP 100 in Verbindung mit beliebigen der obigen Support-Module (z.B. Compiler, Interpreter, Betriebssystem) benutzen.
  • Obwohl das CPP 100 als in dem Speicher 920 gespeichert dargestellt ist, kann sich das CPP 100 an einer anderen Stelle befinden. Das CPP 100 kann auch in dem Träger 970 realisiert werden.
  • Der Träger 970 ist außerhalb des Computers 900 dargestellt. Um das CPP 100 zu dem Computer 900 zu übermitteln, wird zweckmäßigerweise der Träger 970 in das Eingabegerät 940 eingefügt. Der Träger 970 wird als ein beliebiges computerlesbares Medium implementiert, wie etwa das oben grob erläuterte Medium (vgl. Speicher 920). Im allgemeinen ist der Träger 970 ein Herstellungsartikel, der ein computerlesbares Medium umfaßt, auf dem computerlesbare Programmcodemittel realisiert sind, um das Verfahren der vorliegenden Erfindung auszuführen. Ferner kann das Programmsignal 980 auch das Computerprogramm 100 realisieren. Das Signal 980 breitet sich in dem Netzwerk 990 zu dem Computer 900 aus.
  • Nachdem das CPP 100 beschrieben wurde, sind der Programmträger 970 und das Programmsignal 980 in Verbindung mit dem Computer 900 zweckmäßig. Wahlweise realisieren der Programmträger 971/972 (nicht gezeigt) und das Programmsignal 981/982 das Computerprogrammprodukt (CPP) 101/102, das in den Computern 901/902 jeweils durch den Prozessor 911/912 (nicht gezeigt) ausgeführt werden soll.
  • Das Eingabegerät 940 symbolisiert eine Einrichtung, die Daten und Anweisungen zur Verarbeitung durch den Computer 900 bereitstellt. Zum Beispiel ist die Einrichtung 940 eine Tastatur, ein Zeigegerät (z.B. Maus, Trackball, Cursor-Richtungstasten), ein Mikrofon, ein Joystick, ein Game-Pad, ein Scanner. Obwohl die Beispiele Einrichtungen mit menschlicher Interaktion sind, kann die Einrichtung 940 auch ohne menschliche Interaktion arbeiten, wie zum Beispiel ein drahtloser Empfänger (z.B. mit Satellitenschüssel oder terrestrischer Antenne), ein Sensor (z.B. ein Thermometer), ein Zähler (z.B. Warenzähler in einer Fabrik). Das Eingabegerät 940 kann zum Lesen des Trägers 970 dienen.
  • Das Ausgabegerät 950 symbolisiert eine Einrichtung, die Anweisungen und Daten, die verarbeitet wurden, präsentiert. Beispielsweise ein Monitor oder eine andere Art von Display (Kathodenstrahlröhre (CRT), Flach-Display, Flüssigkristall-Display (LCD), ein Lautsprecher, ein Drucker, ein Plotter oder eine Vibrations-Hinweiseinrichtung. Ähnlich wie oben kommuniziert das Ausgabegerät 950 mit dem Benutzer, kann aber auch mit weiteren Computern kommunizieren.
  • Das Eingabegerät 940 und das Ausgabegerät 950 können zu einer einzigen Einrichtung kombiniert werden; wahlweise kann eine beliebige Einrichtung 940 und 950 bereitgestellt werden.
  • Der Bus 930 und das Netzwerk 990 stellen durch übermitteln von Anweisungs- und Datensignalen logische und physische Verbindungen bereit. Obwohl Verbindungen im Inneren des Computers 900 zweckmäßigerweise als "Bus 930" bezeichnet werden, werden Verbindungen zwischen Computern 900902 als "Netzwerk 990" bezeichnet. Die Einrichtungen 940 und 950 sind durch den Bus 930 (wie dargestellt) oder (wahlweise) durch das Netzwerk 990 an den Computer 900 angekoppelt. Obwohl die Signale im Inneren des Computers 900 hauptsächlich elektrische Signale sind, sind die Signale in dem Netzwerk elektrische, magnetische, optische oder drahtlose (Funk-) Signale.
  • Vernetzte Umgebungen (wie zum Beispiel das Netzwerk 990) sind in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet (d. h. world wide web) überall anzutreffen. Die physische Distanz zwischen einem abgesetzten Computer und dem Computer 900 ist nicht wichtig. Das Netzwerk 990 kann ein verdrahtetes oder ein drahtloses Netzwerk sein. Um einige wenige Netzwerkimplementierungen zu nennen, ist das Netzwerk 990 zum Beispiel ein lokales Netzwerk (LAN), ein großflächiges Netzwerk (WAN), ein öffentliches Fernsprechwählnetz (PSTN); ein dienstintegriertes digitales Netzwerk (ISDN), eine Infrarotverbindung (IR), eine Funkverbindung, wie zum Beispiel UMTS (Universal Mobile Telecommunications System), GSM (Global System for Mobile Communication), CDMA (Code Division Multiple Access) oder eine Satellitenverbindung.
  • Übertragungsprotokolle und Datenformate sind bekannt, zum Beispiel als TCP/IP (transmission control protocol/internet protocol), HTTP (hyper text transfer protocol), sicheres HTTP, das drahtlose Anwendungsprotokoll, URL (unique resource locator), eine URI (unique resource identifier), HTML (hyper text markup language HTML), XML (extensible markup language), XHTML (extensible hyper text markup language), WML (wireless application markup language) usw.
  • Zwischen die Elemente gekoppelte Schnittstellen sind ebenfalls in der Technik bekannt. Der Einfachheit halber sind Schnittstellen nicht dargestellt. Eine Schnittstelle kann zum Beispiel eine serielle Portschnittstelle, eine parallele Portschnittstelle, ein Spiel-Port, eine USB-Schnittstelle (universal serial bus), ein internes oder externes Modem, ein Videoadapter oder eine Sound-Card sein. Computer und Programm hängen eng miteinander zusammen. Im nachfolgenden Gebrauch sind Phrasen wie etwa "der Computer stellt bereit" und "das Programm stellt bereit" zweckmäßige Abkürzungen, um Aktionen durch einen Computer auszudrücken, die durch ein Programm gesteuert werden.
  • 2 zeigt ein vereinfachtes Blockschaltbild der Unternehmensanwendung 200, der Quellendatenbank 210, der Zieldatenbank 220, der Logtabelle 250 und des Übertragungswerkzeuges 260, wobei es sich bei allem um Datenverarbeitungsfunktionen unter Verwendung von Computern handelt. Zum Beispiel implementiert der Computer 900 die Anwendung 200, die Logtabelle 250 und das Übertragungswerkzeug 260; der Computer 901 implementiert die Quellendatenbank 210; und der Computer 902 implementiert die Zieldatenbank 230. Wahlweise wird die Logtabelle 250 zusammen mit der Quellendatenbank 210 auf dem Computer 901 implementiert. Dies ist zweckmäßig, aber nicht erforderlich.
  • Pfeile zwischen den Kästen stellen einen zweckmäßigen Signalfluß dar: Die Anwendung 200 sendet (vgl. die Schritte 405, 406) Datenbankanweisungen (d. h. Abfrageanweisungen) zu den Datenbanken. Die Anwendung 200 sendet die Datenbankanweisungen 201 entweder zu der Datenbank 210 oder sendet Datenbankanweisungen 202 zu der Datenbank 230. Die Anweisungen 201, 202 weisen Aktionstypen auf, wie zum Beispiel für Operationen des Einfügens (I), Löschens (D), Aktualisierens (U) oder Lesens (R). Die Pfeile sind bidirektional: Anwendung empfängt auch Daten (z.B. Lesen). Das Übertragungswerkzeug 260 kommuniziert mit der Logtabelle 250 und den Datenbanken 210 und 220.
  • Die Datenbanken 210 und 220 sind physisch verschieden. Die Quellendatenbank 210 enthält eine Quellentabelle 220 mit mehreren Einträgen 231/232, wobei jeder Eintrag 231/232 einen Schlüssel 231 und Inhalt 232 aufweist. Ähnlich enthält die Zieldatenbank 220 die Zieltabelle 240 mit mehreren Einträgen 241/242, wobei jeder Eintrag 241/242 einen Schlüssel 241 und Inhalt 242 aufweist. Im vorliegenden Gebrauch bedeutet Inhalt die Informationen, die in den Einträgen gespeichert sind, wie etwa alphanumerische Informationen; die Schlüssel sind Objekte zum logischen Identifizieren von Inhalt. In beiden Tabellen 230 und 240 werden die Schlüssel 231 und 241 ferner durch Zahlen in Klammern (1), (2), (n) ... (N) identifiziert. Außerdem wird in beiden Tabellen 230 und 240 beispielhafter Inhalt 232, 242 durch klein geschriebene Buchstabentripel abgekürzt, wie zum Beispiel "abc", "def", wobei die Buchstaben in einer beliebigen Reihenfolge vorliegen.
  • Da (wie erwähnt) die Datenbanken verschieden sind, kann auch die Form, in der jede Datenbank Inhalt speichert, verschieden sein. Zum Beispiel verwendet die Datenbank 210 Einzelbytecodierung und die Datenbank 220 verwendet Doppelbytecodierung. Zum Beispiel speichert die Datenbank 210 Inhalt "abc" – eine Kette von drei Zeichen – durch drei ASCII-Byte. Der Schlüssel (1) identifiziert die physische Adresse (1) + 0 für Byte 1, die Adresse (1) + 1 für Byte 2 und (1) + 2 für Byte 3 . In dem Beispiel speichert die Datenbank 220 denselben Inhalt durch drei Unicode-Doppelbyte. Der Schlüssel (1) identifiziert die physische Adresse (1) + 0 für Byte 1, (1) + 1 für Byte 2 und so weiter bis zu der Adresse (1) + 5 für Byte 6. Regeln zum Ableiten der Adresse aus dem Schüssel sind in der Technik wohlbekannt und werden deshalb nicht weiter erläutert. Obwohl es zweckmäßig durch Doppelbytecodierung erläutert wird, können Fachleute im allgemeinen auch Mehrbytecodierung verwenden (z.B. Unicode mit bis zu 6 Byte).
  • Das Übertragungswerkzeug 260 umfaßt Programmanweisungen zum Ausführen eines Verfahrens zum Übertragen von Inhalt 232 von der Quellentabelle 230 in der Quellendatenbank 210 zu der Zieltabelle 240 in der Zieldatenbank 220 gemäß der vorliegenden Erfindung. Die Logtabelle 250 speichert Zwischendaten, wie zum Beispiel die Schlüsselrepräsentation 254 und die Aktionstyprepräsentation.
  • 3 zeigt ein vereinfachtes Flußdiagramm des Verfahrens 400 in Kombination mit der Zeitachse 499. Die Kästen veranschaulichen Verfahrensschritte 405, 410, 420 und 430. 3 zeigt außerdem den Schritt 406, der dem Verfahren 400 folgt. Die Achse 499 gibt die Zeitpunkte T1 bis T25 an. Obwohl die Darstellung Zeitintervalle gleicher Dauer zeigt, sind die Zeitintervalle für die vorliegende Erfindung nicht wichtig und können variieren. Horizontale Gitterlinien von der Achse 499 zu den Schrittkästen zeigen an, daß bestimmte Teilschritte im wesentlichen gleichzeitig ausgeführt werden. Zum Beispiel fällt der Teilschritt I(3)ghi in Schritt 405 mit dem Teilschritt (3)I in Schritt 410 zusammen. Wahlweise werden parallel weitere Schritte ausgeführt.
  • Das Verfahren 400 zum Übertragen von Inhalt 232 (vgl. 2) aus der Quellentabelle 230 in der Quellendatenbank 210 zu der Zieltabelle 240 in der Zieldatenbank 220 (die Datenbanken 210, 220 sind dabei physisch verschieden) beginnt, wenn die Unternehmensanwendung 200 aufeinanderfolgend (Schritt 405) Datenbankanweisungen 201 zu der Quellendatenbank 210 sendet (d. h. vor der Übertragung). Wenn das Verfahren 400 beendet ist, sendet die Unternehmensanwendung 200 aufeinanderfolgend (Schritt 406) Datenbankanweisungen 202 zu der Zieldatenbank 220 (d. h. nach der Übertragung). In jeder Tabelle 230, 240 besitzt jeder Eintrag 231/232, 241/242 einen eindeutigen Schlüssel 231, 241; die Datenbankanweisungen 201, 202 weisen Aktionstypen 205 auf (zum Beispiel D, I, R, U). Das Verfahren 400 umfaßt die folgenden Schritte:
    Speichern 410 von Repräsentationen 254, 255 des Aktionstyps 205 (D, I, U) und des Schlüssels 231 in der Logtabelle 250 unter der Bedingung, daß der Aktionstyp mit einem vorbestimmten Aktionstyp (D, I, U) zusammenfällt;
    Kopieren 420 von Einträgen 231/232 der Quellentabelle 220 in die Zieltabelle 240 (Einträge 241/242); und
    Einstellen 430 derjenigen Einträge in der Zieltabelle 240, die in der Logtabelle 250 repräsentierte Schlüssel aufweisen, gemäß der in der Logtabelle 250 gespeicherten Aktionstyprepräsentation 255.
  • Vorzugsweise umfaßt der Schritt des Kopierens 420 das Umsetzen der Codierung des Eintrags 231/232 zum Beispiel aus Einzelbytecode (z.B. ASCII) in den Doppelbytecode (z.B. Unicode).
  • Vorzugsweise wird der Schritt des Einstellens 420 in einer ersten Einstellperiode (T16 bis T20) ausgeführt, während die Anwendung 200 Datenbankanweisungen 201 sendet, und in einer zweiten Einstellperiode (T21 bis T24), während die Anwendung 200 stumm ist.
  • Vorzugsweise werden die vorbestimmten Aktionstypen aus der folgenden Gruppe ausgewählt: Einfügen (I), Löschen (D) und Aktualisieren (U). Vorzugsweise sind die Datenbankanweisungen 201, 202 SQL-Anweisungen.
  • Wahlweise umfaßt der Schritt des Einstellens 430 das Einstellen eines ersten Teils der Quellentabelle 220 mit einem ersten Teil der Zieltabelle 240 im wesentlichen parallel mit der Einstellung eines zweiten Teils der Quellentabelle 220 mit einem zweiten Teil der Zieltabelle. Ähnlich kann der Kopierschritt 420 das Kopieren eines ersten Teils der Quellentabelle 220 in einem ersten Teil der Zieltabelle 240 im wesentlichen parallel mit dem Kopieren eines zweiten Teils der Quellentabelle 220 in einen zweiten Teil der Zieltabelle umfassen. Einzelheiten werden in Verbindung mit 9 angegeben.
  • Die Verfahrensschritte werden nun ausführlicher erläutert. Schritt 405 (Senden von Datenbankanweisungen) kann zu einem beliebigen Zeitpunkt vor T1 starten. Die Anwendung 200 sendet die Anweisungen 201 zu der Quellendatenbank 210 an aufeinanderfolgenden Zeitpunkten Ti. Der Zweckmäßigkeit halber sind die Anweisungen 201 mit Aktionstyp 205 und Schlüssel 231 und Inhalt 232 dargestellt. Zum Beispiel besitzt die Anweisung 201-1 den Aktionstyp "I", den Inhalt "abc" und den Schlüssel (1). "D" kürzt "löschen" zur Entfernung des Schlüssels 231 und des Inhalts 232 ab (in 3 nicht dargestellt). "I" kürzt "einfügen" zum Erzeugen eines neuen Eintrags mit Schlüssel 231 und Inhalt 232 in der Tabelle 230 ab, wie zum Beispiel die Anweisung 201-1 zum Schreiben von "abc" in den Schlüssel (1). "R" kürzt "lesen" zum Zurückgeben von Inhalt an die Anwendung 200 ab; zum Beispiel gibt die Anweisung 201-4 den Inhalt "abc" an dem Schlüssel (1) zurück. "U" kürzt "aktualisieren" zum Modifizieren des Inhalts 232 an einen gegebenen Schlüssel ohne Erzeugung eines neuen Schlüssels ab; zum Beispiel Schreiben von "bac" an Schlüssel 1 durch die Anweisung 201-5. Es ist ein Vorteil, daß Schritt 405 zu einem späten Zeitpunkt stoppt, nachdem Schritt des Kopierens 420 beendet ist. Es ist ein Vorteil der vorliegenden Erfindung, daß die Anwendung 200 immer noch mit der Datenbank 210 und der Tabelle 230 arbeiten kann.
  • Schritt 410 (Speichern in der Logtabelle) kann zu einem beliebigen Zeitpunkt starten. wenn der Aktionstyp der Anweisung 201 mit einem einer vorbestimmten Gruppe von Aktionstypen übereinstimmt, werden die Schlüsselrepräsentation 254 und die Aktionstyprepräsentation 255 in der Logtabelle 250 gespeichert. Andernfalls bleibt die Logtabelle 250 unverändert. Zweckmäßigerweise ist die Gruppen von Aktionstypen "D", "I" und "U". Der leichteren Erläuterung halber ist der Aktionstyp 205 (aus der Anwendung 200) mit der Aktionstyprepräsentation 254 (zur Logtabelle 250) identisch, und der Schlüssel 231 (aus der Anwendung 200) ist mit der Schlüsselrepräsentation 255 (zur Logtabelle 250) identisch. Die Verwendung der Logtabelle 250 hat den Vorteil, daß jede Modifikation des Typs D, I oder U an der Tabelle 230 zurückverfolgt werden kann, auch wenn die Datenbank 210 nicht ordnungsgemäß arbeitet. Wenn für einen bestimmten Schlüssel die Logtabelle 250 bereits eine Aktionstyprepräsentation speichert, ersetzt das Übertragungswerkzeug 260 die alte Repräsentation mit der neuen.
  • Schritt 420 (Kopieren ins Ziel) kopiert alles, was sich in der Quellentabelle 230 befindet. Wahlweise wird die Logtabelle 250 betrachtet und Einträge 231/232, die kopiert wurden, werden markiert. In dem Beispiel von 3 werden die Aktionstyprepräsentationen "D", "I" oder "U" durch eine andere Repräsentation, wie etwa "C", ersetzt. Wahlweise kann ein Zeitstempel zu der Logtabelle 250 hinzugefügt werden. Anders ausgedrückt, wird die Verfügbarkeit von Einträgen aus der Logtabelle 250 entfernt, wenn Einträge in der Zieltabelle 240 (in Verbindung mit den Schritten 420 und 430) gespeichert wurden. Wie für Fachleute erkennbar ist, kann das Entfernen der Verfügbarkeit von Einträgen auch das Löschen des Eintrags umfassen. Dadurch wird eine falsche Wiederholung des Kopierschritts 420 vermieden. Dies ist wichtig, um im Fall einer parallelen Einstellung Dateneinheitlichkeit aufrechtzuerhalten und um einen erneuten Start des gesamten Prozesses zu erlauben. Es ist gleichgültig, ob ein Eintrag in die Zieltabelle 240 kopiert wurde, aber später (D, I oder U) in der Quellentabelle 230 modifiziert wird. Zum Beispiel wird der Inhalt "bac" an dem Schlüssel (1) der Quellentabelle 230 in den Schlüssel (1) in der Zieltabelle 240 kopiert, aber später an demselben Schlüssel (1) in der Quellentabelle 230 auf "cab" aktualisiert, das letztendlich in dem Schritt des Einstellens 430 in die Zieltabelle 240 kopiert wird. Schritt 420 kann auf Anforderung eines Datenbankadministrators stoppen. Es ist nicht notwendig, alles von der Quellentabelle 230 zu kopieren, zum Beispiel umfaßt zum Stoppzeitpunkt T13 die Quellentabelle 230 einen Eintrag an dem Schlüssel (4), der noch nicht kopiert wurde.
  • Vorzugsweise umfaßt Schritt 430 (Einstellen), die Aktionstyprepräsentation durch eine andere Repräsen tation wie im Schritt 420 (z.B. "C") zu ersetzen. Schritt 430 (Einstellen) wird vorzugsweise in zwei Phasen ausgeführt. In der ersten Phase ist Schritt 410 (Speichern der Logtabelle) immer noch aktiv, zum Beispiel bis T22. In der zweiten Phase ist Schritt 410 bereits gesperrt; Einträge werden direkt aus der Quellentabelle 220 in die Zieltabelle 240 kopiert (z.B. "pqr" an dem Schlüssel (6)).
  • Wenn die Logtabelle 250 die Aktionstyprepräsentationen "U" oder "I" zeigt, umfaßt Schritt 430 das Kopieren aus der Quellentabelle 230 in die Zieltabelle 240; wenn die Logtabelle 250 die Aktionstyprepräsentation "D" zeigt, wird der entsprechende Eintrag in der Zieltabelle 240 gelöscht (oder das Nichtexistieren des Eintrags in der Tabelle 240 verifiziert.
  • 48 zeigen eine Übersicht über Verfahrensschrittaktionen, die an aufeinanderfolgenden Zeitpunkten in einem Beispiel stattfinden. Die linke Spalte entspricht der Achse 499 in 3. Spalte 405 listet Anweisungen 201, die die Anwendung 200 (Schritt 405) zu der Quellentabelle sendet, bis das Senden bei T21 aufhört; Spalte 410 listet Schlüssel- und Typrepräsentationen, die in Schritt 410 in die Logtabelle 250 geschrieben werden, und listet "C", um Repräsentationen zu entfernen (Schritte 420, 430); die Spalten 420 und 430 zeigen Schlüssels 241 und Inhalt 242 an, die bzw. der während der Schritte 420 und 430 in die Zieltabelle 240 geschrieben werden. Zweckmäßigerweise bezieht sich 4 auf 58, worin der Status der Tabellen 220, 240 und 250 zu verschiedenen Zeitpunkten dargestellt ist.
  • Wieder mit Bezug auf 18 wird das Beispiel für jeden Zeitpunkt erläutert. Bezugszahlen werden manchmal der Einfachheit halber ausgelassen. Vor und nach dem Zeitpunkt T1 sendet die Anwendung 200 Datenbankanweisungen 201 zu der Quellentabelle 230 in der Quellendatenbank 210 (Schritt 405). Der einfacheren Erläuterung halber wird angenommen, daß die Zieltabelle 240 in der Zieldatenbank 220 und die Logtabelle 250 zu Anfang (bei T1) als leer angenommen werden.
  • Zum Zeitpunkt T1 sendet die Anwendung (Schritt 405) die Anweisung 201-1 "I(1)abc" zu der Quellendatenbank, die (Aktionstyp 205 "I") den Inhalt 232 "abc" an dem Schlüssel 231(1) in die Quellentabelle einfügt.
  • Zum Zeitpunkt T2 sendet die Anwendung die Anweisung "I(2)def" zu der Quellendatenbank, die den Inhalt "def" an dem Schlüssel (2) in die Quellentabelle einfügt. Obwohl er nur durch zwei Einfügeaktionen dargestellt ist, ist Schritt 405 die normale Funktionsweise der Anwendung 200/Datenbank 210 und wird über einen langen Zeitraum hinweg mit Tausenden von Anweisungen durchgeführt.
  • Zum Zeitpunkt T3 beginnt der Speicherschritt 410 (Speichern von Repräsentationen von Aktionstyp und Schlüssel). T3 unterliegt vorzugsweise der Diskretion des Datenbankadministrators. Da der Speicherschritt 410 keinen Einfluß darauf hat, wie die Anwendung mit der Quellendatenbank kommuniziert, kann der Speicherschritt zu jedem beliebigen Zeitpunkt starten.
  • Zum Zeitpunkt T4 sendet die Anwendung die Anweisung "I(3)ghi" zu der Quellendatenbank, die den Inhalt "ghi" an dem Schlüssel (3) in die Quellentabelle einfügt. Da der Aktionstyp "I" einer der vorbestimmten Typen "D", "I" und "U" ist, werden die Aktionstyprepräsentation 255 "I" und die Schlüsselrepräsentation (3) in der Logtabelle 250 gespeichert (Schritt 410). Die Tabellen befinden sich nun in dem in 5 dargestellten Zustand.
  • Zum Zeitpunkt T5 sendet die Anwendung die Anweisung "R(1)" zu der Quellendatenbank, die den Inhalt "abc" zurückgibt, ohne die Quellentabelle zu verändern. Da der Aktionstyp "R" nicht zu einem der vorbestimmten Typen gehört, bleibt die Logtabelle 250 unverändert.
  • Zum Zeitpunkt T6 sendet die Anwendung die Anweisung "U(1)bac" zu der Quellendatenbank, die den Inhalt in der Quellentabelle an dem Schlüssel (1) auf "bac" modifiziert. Da der Aktionstyp "U" einer der vorbestimmten Typen ist, werden die Aktionstyprepräsentation "U" und die Schlüsselrepräsentation (1) in der Logtabelle gespeichert.
  • Zum Zeitpunkt T7 sendet die Anwendung die Anweisung "I(4)"jkl" zu der Quellendatenbank, die den Inhalt "jkl" an dem Schlüssel (4) in die Quellentabelle einfügt. Da der Aktionstyp "I" zu einem der vorbestimmten Typen gehört, werden die Aktionstyprepräsentationen "I" und (4) in der Logtabelle gespeichert.
  • Zum Zeitpunkt T8 beginnt der Kopierschritt 420. T8 unterliegt vorzugsweise der Diskretion des Datenbankadministrators, kann aber im wesentlichen zu jeder beliebigen Zeit starten.
  • Zum Zeitpunkt T9 kopiert das Übertragungswerkzeug 260 den Inhalt "bac" an dem Schlüssel (1) aus der Quellentabelle in die Zieltabelle 240. In der Logtabelle wird die Repräsentation "U" für den Schlüssel (1) auf "C" modifiziert. Das Modifizieren der Logtabelle 250 durch den Kopierschritt 420 ist optional. Es ist auch möglich, die Logtabelle (mit (3)I) unverändert zu halten, um "ghi" während des Einstellens in die Zieltabelle zu kopieren. Die Tabellen befinden sich nun in dem in 6 dargestellten Zustand.
  • Zum Zeitpunkt T10 kopiert das Übertragungswerkzeug den Inhalt "def" an dem Schlüssel (2) aus der Quellentabelle in die Zieltabelle.
  • Zum Zeitpunkt T11 sendet die Anwendung die Anweisung "U(2)fed" zu der Quellendatenbank, die den Inhalt der Quellentabelle an dem Schlüssel (2) modifiziert. Da der Aktionstyp "U" einer der vorbestimmten Typen ist, werden Repräsentationen "U" und (2) in der Logtabelle gespeichert (Schritt 410). Bisher bleibt die Zieltabelle mit dem alten Inhalt "def" an dem Schlüssel (2) unverändert.
  • Zum Zeitpunkt T12 kopiert das Übertragungswerkzeug den Inhalt "ghi" an dem Schlüssel (3) in die Zieltabelle; außerdem modifiziert das Übertragungswerkzeug die Logtabelle durch Ersetzen von "I durch "C" für den Schlüssel (3).
  • Zum Zeitpunkt T13 hält der Schritt des Kopierens 420 an. Vorzugsweise unterliegt T13 dem Ermessen des Datenbankadministrators, es kann aber auch Automatisierung verwendet werden. Die Zeitpunkte T8 und T13 für den Schritt des Kopierens 420 werden zweckmäßigerweise für einen Zeitraum gewählt, in dem die Anwendung nur einige wenige Anweisungen zu der Quellendatenbank sendet, wie zum Beispiel am Wochenende. Ein Vorteil der vorliegenden Erfindung besteht darin, daß Interaktionen von Anwendung-zu-Datenbank ohne jegliche Einschränkungen erlaubt sind (vgl. T11).
  • Zum Zeitpunkt T14 sendet die Anwendung die Anweisung "I(5)mno" zu der Quellendatenbank, die den Inhalt "mno" an dem Schlüssel (5) einfügt. Da der Aktionstyp "I" einer der vorbestimmten Typen ist, werden die Repräsentationen "I" und (5) in der Logtabelle gespeichert. Die Situation ist nun dergestalt, daß die Anwendung immer noch mit der Quellendatenbank kommuni ziert, aber das Kopieren in die Zieldatenbank (Schritt 420) bereits abgeschlossen ist.
  • Zum Zeitpunkt T15 sendet die Anwendung die Anweisungen "U(1)cab" zu der Quellendatenbank, die den Inhalt an dem Schlüssel (1) modifiziert. Da der Aktionstyp "U" einer der vorbestimmten Aktionstypen ist, werden die Repräsentationen "U" und (1) in der Logtabelle gespeichert (Schritt 410). In dem Beispiel wird das "C" an dem Schlüssel (1) durch "U" ersetzt. Die Tabellen befinden sich nun in dem in 7 dargestellten Zustand.
  • Zum Zeitpunkt T16 startet der Schritt des Einstellens 430.
  • Zum Zeitpunkt T17 liest das Übertragungswerkzeug die Repräsentationen "2" und (4) aus der Logtabelle, kopiert den Inhalt "jkl" aus der Quellentabelle an dem Schlüssel (4) in die Zieltabelle an dem Schlüssel (4) und ersetzt "I" durch "C" in der Logtabelle.
  • Zum Zeitpunkt T18 liest das Übertragungswerkzeug die Repräsentationen "U" und (2) aus der Logtabelle, kopiert den Inhalt "fed" aus der Quellentabelle an dem Schlüssel (2) in die Zieltabelle an dem Schlüssel (2) und ersetzt "U" durch "C" in der Logtabelle.
  • Zum Zeitpunkt T19 liest das Übertragungswerkzeug die Repräsentationen "I" und (5) aus der Logtabelle, kopiert den Inhalt "mno" aus der Quellentabelle an dem Schlüssel (5) in die Zieltabelle an dem Schlüssel (5) und ersetzt "I" durch "C" in der Logtabelle.
  • Zum Zeitpunkt T20 sendet die Anwendung die Anweisung "I(6)pqr" zu der Quellendatenbank, die den Inhalt "pqr" an dem Schlüssel (6) in die Quellentabelle einfügt. Da der Aktionstyp "I" einer der vorbestimmten Typen ist, werden die Repräsentationen "I" und (6) in der Logtabelle gespeichert (Schritt 410). Ein Vorteil der vorliegenden Erfindung besteht darin, daß, während der Schritt des Einstellens 430 durchgeführt wird, die Anwendung immer noch Anweisungen zu der Quellendatenbank senden darf.
  • Zum Zeitpunkt T21 halten sowohl der Schritt des Sendens 405 als auch der Schritt des Speicherns 410 an. Das gleichzeitige Anhalten beider Schritte ist zweckmäßig: Da keine Datenbankanweisungen mehr von der Anwendung erwartet werden, sind keine Repräsentationen "U", "D" oder "I" zu der Logtabelle hinzuzufügen. Der Zeitpunkt T21 markiert insofern den Anfang einer kurzen Übergangsperiode, als der Schritt des Einstellens beendet ist.
  • Zum Zeitpunkt T22 liest das Übertragungswerkzeug die Repräsentationen "I" und (6) aus der Logtabelle, kopiert den Inhalt "pqr" aus der Quellentabelle an dem Schlüssel (6) in die Zieltabelle an dem Schlüssel (6) und ersetzt "I" durch "C" in der Logtabelle (in 3 nicht dargestellt).
  • Zum Zeitpunkt T23 liest das Übertragungswerkzeug die Repräsentationen "U" und (1) aus der Logtabelle, kopiert den Inhalt "cab" aus der Quellentabelle an dem Schlüssel (1) in die Zieltabelle an dem Schlüssel (1) und ersetzt "U" durch "C" in der Logtabelle. In der Zieltabelle wird das existierende "bac" an dem Schlüssel (1) überschrieben.
  • Zum Zeitpunkt T24 befinden sich die Tabellen nun in dem in 8 dargestellten Zustand. Das Übertragungswerkzeug liest, daß nur "C"-Repräsentationen in der Logtabelle übrig sind; der Schritt des Einstellens hält an. Das Verfahren 400 für die Übertragung von Inhalt aus der Quellendatenbank in die Zieldatenbank ist nun abgeschlossen.
  • Vom Zeitpunkt T25 an sendet die Anwendung die Anweisungen zu der Zieldatenbank (Schritt 406).
  • 9 zeigt ein vereinfachtes Diagramm der Quellentabelle 220 und Zieltabelle 240 mit dem Einstellschritt 430 in einer weiteren Ausführungsform der vorliegenden Erfindung. Der erste Teil 238 der Quellentabelle 220 wird mit dem ersten Teil 248 der Zieltabelle 240 im wesentlichen parallel eingestellt (431), während der zweite Teil 239 der Quellentabelle 220 mit dem zweiten Teil 249 der Zieltabelle 240 eingestellt wird (432). Wie durch die Bezugszahlen 420 (Kopieren), 421 (Kopieren des ersten Teils) und 422 (Kopieren des zweiten Teils) angegeben wird, ist wahlweise auch ein paralleler Betrieb für den Kopierschritt 420 möglich.
  • Fachleute können zusätzliche Schritte einführen, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Zum Beispiel können exklusive Riegel vorgesehen werden, die verhindern, daß die Datenbank 210 die Anweisung 210 mit Aktionen "I", "D" oder "U" befolgt, um die Quellentabelle 230 abzuändern, während das Übertragungswerkzeug 260 einen Eintrag mit identischem Schlüssel in der Zieltabelle 240 einstellt. Das Übertragungswerkzeug 260 als separate funktionale Einheit zu implementieren, ist zweckmäßig, aber nicht für die vorliegende Erfindung erforderlich. Da das Übertragungswerkzeug 260 außerdem Anweisungen 201 (z.B. zur Bereitstellung der Logtabelle 250) auswertet, kann das Übertragungswerkzeug 260 in die Anwendung 200 integriert werden.
  • Die vorliegende Erfindung wird (vgl. 13) als Computerprogrammprodukt 100 zum Übertragen von Inhalt 232 aus der Quellentabelle 230 in der Quellendatenbank 210 zu der Zieltabelle 240 in der Zieldatenbank 220, zusammengefaßt, wobei die Datenbanken 210, 220 physisch verschieden sind, wobei vor der Übertragung die Unternehmensanwendung 200 aufeinanderfolgend Datenbankanweisungen 201 (SQL-Anweisungen) zu der Quellendatenbank 210 sendet 405 und wobei nach der Übertragung die Unternehmensanwendung 200 aufeinanderfolgend Datenbankanweisungen 202 zu der Quellendatenbank 220 sendet 406. In jeder Tabelle 230, 240 besitzt jeder Eintrag 231/232, 241/242 einen eindeutigen Schlüssel 231, 241; die Datenbankanweisungen 201, 202 weisen Aktionstypen 205 (D, I, R, U) auf. Das Computerprogrammprodukt 100 enthält Anweisungen, die bewirken, daß der Prozessor 900 die folgenden Schritte ausführt: Speichern 410 von Repräsentationen 254, 255 des Aktionstyps 205 und des Schlüssels 231 in der Logtabelle 250 unter der Bedingung, daß der Aktionstyp 205 mit einem vorbestimmten Aktionstyp zusammenfällt; Kopieren 420 von Einträgen 231/232 der Quellentabelle 220 in die Zieltabelle 240, wobei die Codierung des Eintrags umgesetzt wird (Einzelbyte in Mehrbyte, ASCII in Unicode); und Einstellen 430 derjenigen Einträge in der Zieltabelle, die in der Logtabelle repräsentierte Schlüssel aufweisen, gemäß der in der Logtabelle 250 gespeicherten Aktionstyprepräsentation.
  • Vorzugsweise bewirken die Anweisungen, daß der Prozessor 900 das Einstellen aufeinanderfolgend in einer ersten Einstellperiode (T16 bis T20), während die Anwendung 200 Datenbankanweisungen 201 sendet, durchführt, und in einer zweiten Einstellperiode (T21 bis T24), während die Anwendung 200 stumm ist.
  • Vorzugsweise (vgl. 9) bewirken die Anweisungen, daß der Prozessor 900 den Einstellschritt 430 ausführt, indem der erste Teil 238 der Quellentabelle 230 mit dem ersten Teil 248 der Zieltabelle 240 im wesentlichen parallel zu der Einstellung 432 des zweiten Teils 239 der Quellentabelle 220 mit dem zweiten Teil 249 der Zieltabelle 240 eingestellt wird 431.
  • Die vorliegende Erfindung wird auch (vgl. 13) als Computersystem 999 zum Übertragen von Inhalt 232 aus der Quellentabelle 230 in der Quellendatenbank 210 zu der Zieltabelle 240 in der Zieldatenbank 220 zusammengefaßt, wobei die Datenbanken 210, 220 physisch verschieden sind (z.B. Computer 901, 902), wobei vor der Übertragung die Unternehmensanwendung 200 (z.B. auf den Computer 900) aufeinanderfolgend Datenbankanweisungen 202 (z.B. SQL-Anweisungen) zu der Quellendatenbank 210 sendet 405 und wobei nach der Übertragung die Unternehmensanwendung 200 aufeinanderfolgend Datenbankanweisungen 202 zu der Zieldatenbank 220 sendet 406. In jeder Tabelle 230, 240 besitzt jeder Eintrag 231/232, 241/242 einen eindeutigen Schlüssel 231, 241; die Datenbankanweisungen 201, 202 besitzen Aktionstypen 205 (z.B. D, I, R, U). Das Computersystem 999 enthält ein Übertragungswerkzeug 260 (z.B. implementiert durch das auf dem Prozessor 900 ablaufende CPP 100), das folgendes umfaßt: Mittel zum Speichern (z.B. Speicher 920, vgl. Schritt 410) von Repräsentationen 254, 255 des Aktionstyps 205 und des Schlüssels 231 in der Logtabelle 250 unter der Bedingung, daß der Aktionstyp 205 mit einem vorbestimmten Aktionstyp (D, I, U) zusammenfällt; Mittel zum Kopieren (z.B. Netzwerk 990 mit Signalen, vgl. Schritt 410) von Einträgen 231/232 der Quellentabelle 220 in die Zieltabelle 240, wobei die Codierung des Eintrags umgesetzt wird (z.B. von Einzelbytecode in Mehrbytecode, ASCII in Unicode); und Mittel zum Einstellen (430, Prozessor 910) derjenigen Einträge in der Zieltabelle 240, die Schlüssel aufweisen, die in der Logtabelle 250 repräsentiert sind gemäß der in der Logtabelle 250 gespeicherten Aktionstyprepräsentation.
  • Vorzugsweise führt der Prozessor 910 das Einstellen aufeinanderfolgend in einer ersten Einstellperiode (z.B. T16 bis T20) durch, während die Anwendung 200 Datenbankanweisungen 201 sendet, und in einer zweiten Einstellperiode (z.B. T21 bis T24), während die Anwendung 200 stumm ist.
  • Vorzugsweise führt der Prozessor 910 den Einstellschritt 430 aus, indem ein erster Teil 238 der Quellentabelle 230 mit dem ersten Teil 248 der Zieltabelle 240 im wesentlichen parallel zu der Einstellung 432 des zweiten Teils 239 der Quellentabelle 220 mit dem zweiten Teil 249 der Zieltabelle 240 eingestellt wird 431.
  • 100
    Computerprogrammprodukt
    200
    Unternehmensanwendung
    201
    Datenbankanweisungen
    202
    Datenbankanweisungen
    210
    Quellendatenbank
    220
    Zieldatenbank
    230
    Quellentabelle
    231(1) (n) (6)
    Schlüssel
    231/232
    Einträge
    232
    Inhalt
    238, 248
    erster Teil
    239, 249
    zweiter Teil
    240
    Zieltabelle
    241(1) (n) (6)
    Schlüssel
    241/242
    Einträge
    242
    Inhalt
    250
    Logtabelle
    254
    Schlüsselrepräsentation
    255
    Aktionstyprepräsentation
    260
    Übertragungswerkzeug
    400
    Verfahren
    405, 406
    Senden
    410
    Speichern
    420, 421, 422
    Kopieren
    430, 431, 432
    Einstellen
    499
    Achse
    900, 901, 902
    Computer
    910–980
    Prozessor, Speicher, Bus, Eingang, Ausgang, Schnittstelle, Signal
    999
    Computersystem

Claims (11)

  1. Verfahren (400) zum Übertragen von Inhalt (232) von einer Quellentabelle (230) in einer Quellendatenbank (210) zu einer Zieltabelle (240) in einer Zieldatenbank (220), wobei die Datenbanken (210, 220) physisch verschieden sind, wobei vor dem Übertragen eine Unternehmensanwendung (200) aufeinanderfolgend Datenbankanweisungen (201) zu der Quellentabelle (210) sendet (405) und nach dem Übertragen die Unternehmensanwendung (200) aufeinanderfolgend die Datenbankanweisungen (201) zu der Zieldatenbank (220) sendet (406), wobei in jeder Tabelle (230, 240) jeder Eintrag (231/232, 241/242) einen eindeutigen Schlüssel (231, 241) und einen Inhalt (232, 242) aufweist, wobei die Datenbankanweisungen (201, 202) Aktionstypen (205, D, I, R, U) aufweisen, wobei das Verfahren (400) zum Übertragen die folgenden computerimplementierten Schritte umfaßt: Speichern (410), für zu der Quellendatenbank gesendete Anweisungen, zusätzlich zu der Abwicklung der Anweisungen durch die Quellendatenbank, von Repräsentationen (254, 255) des Aktionstyps (205, D, I, U) und des Schlüssels (231) in einer Logtabelle (250) unter der Bedingung, daß der Aktionstyp mit einem vorbestimmten Aktionstyp (D, I, U) zusammenfällt; Kopieren (420), während die Anwendung Datenbankanweisungen sendet und während die Abwicklung der Anweisungen in der Quellendatenbank und das Speichern von Repräsentationen in der Logtabelle stattfinden, von Einträgen (231/240) der Quellentabelle (220) in die Zieltabelle (240); und Einstellen (430) derjenigen Einträge in der Zieltabelle, die in der Logtabelle (250) repräsentierte Schlüssel aufweisen, für die Aktionstyp-Repräsentationen Aktualisieren und Insert durch Kopieren von Inhalt aus der Quellentabelle (230) in die Zieltabelle (240) an entsprechenden Schlüsseln, und für die Aktionstyp-Repräsentation Delete durch Löschen des entsprechenden Eintrags in der Zieltabelle (240).
  2. Verfahren nach Anspruch 1, wobei der Schritt Kopieren (420) Umsetzung der Codierung des Eintrags umfaßt.
  3. Verfahren nach Anspruch 2, wobei die Umsetzung der Codierung des Eintrags ein Umsetzen aus einem Einzelbytecode in einen Mehrbytecode umfaßt.
  4. Verfahren nach Anspruch 3 mit Umsetzung aus ASCII-Code, der der Einzelbytecode ist, in Unicode, der der Doppelbytecode ist.
  5. Verfahren nach Anspruch 1, wobei das Einstellen in einer ersten Einstellperiode (T16 bis T20) durchgeführt wird, während die Anwendung (200) die Datenbankanweisungen (201) sendet, sowie in einer zweiten Einstellperiode (T21 bis T24) durchgeführt wird, während die Anwendung (200) stumm ist.
  6. Verfahren nach Anspruch 1, wobei die Datenbankanweisungen (201, 202) SQL-Anweisungen sind.
  7. Verfahren nach Anspruch 1, wobei der Schritt des Einstellens (430) das Einstellen (431) eines ersten Teils (238) der Quellentabelle (230) mit einem ersten Teil (248) der Zieltabelle (240) im wesentlichen parallel mit dem Einstellen (432) eines zweiten Teils (239) der Quellentabelle (220) mit einem zweiten Teil (249) der Zieltabelle (240) umfaßt.
  8. Verfahren nach Anspruch 1, wobei der Schritt des Kopierens (420) das Kopieren (431) eines ersten Teils (238) der Quellentabelle (230) in einen ersten Teil (248) der Zieltabelle (240) im wesentlichen parallel mit dem Kopieren (432) eines zweiten Teils (239) der Quellentabelle (220) in einen zweiten Teil (249) der Zieltabelle (240) umfaßt.
  9. Computerprogrammprodukt (100) zum Übertragen von Inhalt (232) von einer Quellentabelle (230) in einer Quellendatenbank (210) zu einer Zieltabelle (240) in einer Zieldatenbank (220), wobei die Datenbanken (210, 220) physisch verschieden sind, wobei vor dem Übertragen eine Unternehmensanwendung (200) aufeinanderfolgend Datenbankanweisungen (201) zu der Quellentabelle (210) sendet (405) und nach dem Übertragen die Unternehmensanwendung (200) aufeinanderfolgend die Datenbankanweisungen (201) zu der Zieldatenbank (220) sendet (406), wobei in jeder Tabelle (230, 240) jeder Eintrag (231/232, 241/242) einen eindeutigen Schlüssel (231, 241) und einen Inhalt (232, 242) aufweist, wobei die Datenbankanweisungen (201, 202) Aktionstypen (205, D, I, R, U) aufweisen, wobei das Computerprogrammprodukt Anweisungen aufweist, die bewirken, daß ein Prozessor die folgenden Schritte ausführt: Speichern (410), für zu der Quellendatenbank gesendete Anweisungen, zusätzlich zu der Abwicklung der Anweisungen durch die Quellendatenbank, von Repräsentationen (254, 255) des Aktionstyps (205) und des Schlüssels (231) in einer Logtabelle (250) unter der Bedingung, daß der Aktionstyp mit einem vorbestimmten Aktionstyp (D, I, U) zusammenfällt; Kopieren (420), während die Anwendung Datenbankanweisungen sendet und während die Abwicklung der Anweisungen in der Quellendatenbank und das Speichern von Repräsentationen in der Logtabelle stattfinden, von Einträgen (231/232) der Quellentabelle (220) in die Zieltabelle (240); und Einstellen (430) derjenigen Einträge in der Zieltabelle, die in der Logtabelle (250) repräsentierte Schlüssel aufweisen, für die Aktionstyp-Repräsentationen Aktualisieren und Insert durch Kopieren von Inhalt aus der Quellentabelle (230) in die Zieltabelle (240) an entsprechenden Schlüsseln, und für die Aktionstyp-Repräsentation Delete durch Löschen des entsprechenden Eintrags in der Zieltabelle (240).
  10. Computerprogrammprodukt (100) nach Anspruch 9, wobei die Anweisungen bewirken, daß der Prozessor folgendes durchführt: aufeinanderfolgendes Einstellen in einer ersten Einstellperiode (T16 bis T20), während die Anwendung (200) die Datenbankanweisungen (201) sendet, sowie in einer zweiten Einstellperiode (T21 bis T24), während die Anwendung (200) stumm ist.
  11. Computerprogrammprodukt (100) nach Anspruch 9, wobei die Anweisungen bewirken, daß der Prozessor den Schritt des Einstellens (430) durch Einstellen (431) eines ersten Teils (238) der Quellentabelle (230) mit einem ersten Teil (248) der Zieltabelle (240) im wesentlichen parallel mit einem Einstellen (432) eines zweiten Teils (239) der Quellentabelle (220) mit einem zweiten Teil (249) der Zieltabelle (240) ausführt.
DE60117150T 2001-05-30 2001-05-30 Verfahren und computerprogramm zum übertragen von inhalt aus einer quellendatenbank zu einer zieldatenbank Expired - Lifetime DE60117150T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2001/006118 WO2002097664A1 (en) 2001-05-30 2001-05-30 Method, system, and computer program for migrating content from source database to target database

Publications (2)

Publication Number Publication Date
DE60117150D1 DE60117150D1 (de) 2006-04-20
DE60117150T2 true DE60117150T2 (de) 2006-10-19

Family

ID=8164434

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60117150T Expired - Lifetime DE60117150T2 (de) 2001-05-30 2001-05-30 Verfahren und computerprogramm zum übertragen von inhalt aus einer quellendatenbank zu einer zieldatenbank

Country Status (4)

Country Link
US (1) US7461097B2 (de)
EP (1) EP1395919B1 (de)
DE (1) DE60117150T2 (de)
WO (1) WO2002097664A1 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3966051B2 (ja) * 2002-04-16 2007-08-29 株式会社日立製作所 通信データ削減方法およびシステム
US7171432B2 (en) 2002-08-29 2007-01-30 Sap Aktiengesellschaft Phased upgrade of a computing environment
US7263698B2 (en) 2002-08-29 2007-08-28 Sap Aktiengesellschaft Phased upgrade of a computing environment
US20060088027A1 (en) * 2004-07-07 2006-04-27 Wolfgang Becker Dynamic log for computer systems of server and services
EP1708096A1 (de) * 2005-03-31 2006-10-04 Ubs Ag Rechnernetzwerksystem zum Synchronisieren einer zweiten Datenbank mit einer ersten Datenbank sowie Vorgehensweisen hierfür
EP1746502A1 (de) * 2005-07-06 2007-01-24 Ubs Ag Technik zur Migration einer Host-Umgebung auf eine neue Systemplattform
US7258599B2 (en) * 2005-09-15 2007-08-21 Fujitsu Limited Polishing machine, workpiece supporting table pad, polishing method and manufacturing method of semiconductor device
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
US20070156901A1 (en) * 2005-12-30 2007-07-05 Wolfgang Becker Generation and use of table links 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
US20070162451A1 (en) * 2005-12-30 2007-07-12 Becker Wolfgang A Systems and methods for linking a tenant to a provider
US20070156714A1 (en) * 2005-12-30 2007-07-05 Wolfgang Becker Systems and methods for analyzing 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
US20070156902A1 (en) * 2005-12-30 2007-07-05 Becker Wolfgang A Systems and methods for implementing a tenant 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
US20070162969A1 (en) * 2005-12-30 2007-07-12 Becker Wolfgang A Provider-tenant systems, and methods for using the same
US20070156849A1 (en) * 2005-12-30 2007-07-05 Wolfgang Becker Systems and methods for delivering software upgrades 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
US7676492B2 (en) * 2006-04-07 2010-03-09 International Business Machines Corporation Migration of database using serialized objects
US8667382B2 (en) * 2006-06-28 2014-03-04 International Business Machines Corporation Configurable field definition document
US8024299B2 (en) 2006-10-20 2011-09-20 Oracle International Corporation Client-driven functionally equivalent database replay
US7634512B2 (en) 2006-10-20 2009-12-15 Oracle International Corporation Migrating temporary data of a session
US7890457B2 (en) 2006-10-20 2011-02-15 Oracle International Corporation Transactionally consistent database workload replay
US7984015B2 (en) 2006-10-20 2011-07-19 Oracle International Corporation Database workload capture and replay architecture
EP1952241B1 (de) * 2006-10-20 2016-03-16 Oracle International Corporation Datenbank-arbeitslast-erfassungs- und wiederabspielarchitektur
US7890458B2 (en) 2006-10-20 2011-02-15 Oracle International Corporation Capturing database workload while preserving original transactional and concurrency characteristics for replay
US8069184B2 (en) * 2006-12-29 2011-11-29 Sap Ag Systems and methods to implement extensibility of tenant content 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
US20080162490A1 (en) * 2006-12-29 2008-07-03 Becker Wolfgang A Methods and systems for automatic registration during deployment of a tenant
US20080162587A1 (en) * 2006-12-29 2008-07-03 Ulrich Auer Server synchronization for maintenance activities
US20080162536A1 (en) * 2006-12-29 2008-07-03 Becker Wolfgang A Systems and methods for extending shared data structures with tenant content 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
US8997048B1 (en) 2007-02-14 2015-03-31 Oracle America, Inc. Method and apparatus for profiling a virtual machine
US7870169B2 (en) * 2007-06-29 2011-01-11 International Business Machines Corporation Method for enabling traceability and recovery from errors during migration of software applications
US8452730B2 (en) * 2007-12-12 2013-05-28 Teradata Us, Inc. Archiving method and system
US8433680B2 (en) 2008-07-01 2013-04-30 Oracle International Corporation Capturing and restoring database session state
US8418150B2 (en) 2009-04-03 2013-04-09 Oracle International Corporation Estimating impact of configuration changes
US8224828B2 (en) 2009-12-22 2012-07-17 Sap Ag Multi-client generic persistence for extension fields
US9092474B2 (en) 2010-10-12 2015-07-28 Sap Se Incremental conversion of database objects during upgrade of an original system
US8984514B2 (en) 2010-11-30 2015-03-17 Sap Se Modifying scheduled execution of object modification methods associated with database objects
US8527471B2 (en) 2010-12-27 2013-09-03 Sap Ag Shadow system mirroring of an original system during uptime of an upgrade process
US9626390B2 (en) 2010-12-27 2017-04-18 Sap Se Shadow system start during upgrade of an original system
US9213728B2 (en) * 2011-12-14 2015-12-15 Sap Se Change data capturing during an upgrade
JP5832376B2 (ja) * 2012-05-30 2015-12-16 株式会社沖データ 情報処理装置及び情報処理方法
US9582524B1 (en) * 2012-06-19 2017-02-28 Amazon Technologies, Inc. Transformative migration of static data
US10491458B2 (en) * 2013-01-31 2019-11-26 Dell Products L.P. System and method for reporting peer-to-peer transfer events
US9323512B2 (en) 2013-03-14 2016-04-26 Sap Se Tools and methods for copying applications
US9519663B2 (en) 2013-06-26 2016-12-13 Sap Se Upgrading and migrating a database by a migration tool
JP6230317B2 (ja) * 2013-07-25 2017-11-15 キヤノン株式会社 システム、情報処理装置およびその制御方法、並びにプログラム
US10346374B1 (en) * 2014-03-14 2019-07-09 Open Invention Network Llc Optimized data migration application for database compliant data extraction, loading and transformation
US20160147852A1 (en) * 2014-11-21 2016-05-26 Arndt Effern System and method for rounding computer system monitoring data history
US9552162B2 (en) 2014-12-08 2017-01-24 Sap Se Splitting-based approach to control data and storage growth in a computer system
US9881035B2 (en) * 2014-12-12 2018-01-30 Sap Se Systems and methods for in-place migration with downtime minimization
US10452656B2 (en) 2016-03-31 2019-10-22 Sap Se Deep filter propagation using explicit dependency and equivalency declarations in a data model
GB2566886B (en) 2016-07-27 2022-04-13 Walmart Apollo Llc Automated informix engine install
WO2018053117A1 (en) 2016-09-16 2018-03-22 Wal-Mart Stores, Inc. Auto top off tool
US10592509B2 (en) 2017-03-01 2020-03-17 Sap Se Declarative rules for optimized access to data
CN106934045B (zh) * 2017-03-16 2020-10-20 苏州浪潮智能科技有限公司 一种数据库迁移评估的系统以及方法
US10402405B2 (en) 2017-04-05 2019-09-03 Sap Se Explicit declaration of associations to optimize grouping of elements by large data objects
US10872066B2 (en) * 2017-06-27 2020-12-22 Salesforce.Com, Inc. Systems and methods of database tenant migration
US10984021B2 (en) 2017-06-29 2021-04-20 Sap Se Deployment of independent database artifact groups
US11093443B2 (en) 2017-06-29 2021-08-17 Sap Se Database-level container group management
US10674438B2 (en) 2017-06-29 2020-06-02 Sap Se Restricting access to external schemas from within a database level container by whitelisting allowed schemas
US12007941B2 (en) 2017-09-29 2024-06-11 Oracle International Corporation Session state tracking
US10621167B2 (en) 2017-10-26 2020-04-14 Sap Se Data separation and write redirection in multi-tenancy database systems
US10733168B2 (en) 2017-10-26 2020-08-04 Sap Se Deploying changes to key patterns in multi-tenancy database systems
US10713277B2 (en) 2017-10-26 2020-07-14 Sap Se Patching content across shared and tenant containers in multi-tenancy database systems
US10482080B2 (en) 2017-10-26 2019-11-19 Sap Se Exchanging shared containers and adapting tenants in multi-tenancy database systems
US10740318B2 (en) 2017-10-26 2020-08-11 Sap Se Key pattern management in multi-tenancy database systems
US10452646B2 (en) 2017-10-26 2019-10-22 Sap Se Deploying changes in a multi-tenancy database system
US10657276B2 (en) 2017-10-26 2020-05-19 Sap Se System sharing types in multi-tenancy database systems
US10740315B2 (en) 2017-10-26 2020-08-11 Sap Se Transitioning between system sharing types in multi-tenancy database systems
US10657114B2 (en) * 2017-11-28 2020-05-19 Sap Se Reserving key specifications
US10942892B2 (en) 2018-05-18 2021-03-09 Sap Se Transport handling of foreign key checks
US10915551B2 (en) 2018-06-04 2021-02-09 Sap Se Change management for shared objects in multi-tenancy systems
US10936624B2 (en) 2018-06-12 2021-03-02 Sap Se Development and productive use of system with parallel use of production data and zero downtime of software changes
US11599644B2 (en) 2019-05-17 2023-03-07 Walmart Apollo, Llc Blocking insecure code with locking
JP7449190B2 (ja) * 2020-07-28 2024-03-13 株式会社日立製作所 データ移行システムおよびデータ移行方法
CN112199371A (zh) * 2020-09-18 2021-01-08 中国建设银行股份有限公司 一种数据迁移方法、装置、计算机设备和存储介质
CN112817934A (zh) * 2021-01-21 2021-05-18 厦门熵基科技有限公司 一种数据迁移方法、装置、设备和计算机可读存储介质
US20230099755A1 (en) * 2021-09-24 2023-03-30 Sap Se Sql extension to key transfer system with authenticity, confidentiality, and integrity

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893117A (en) * 1990-08-17 1999-04-06 Texas Instruments Incorporated Time-stamped database transaction and version management system
EP0525432B1 (de) * 1991-07-31 2001-12-12 Siemens Aktiengesellschaft Verfahren zur Änderung von Systemkonfigurationsdatensätzen in einem Fernmeldevermittlungssystem
US5617425A (en) * 1993-05-26 1997-04-01 Seagate Technology, Inc. Disc array having array supporting controllers and interface
US5784069A (en) * 1995-09-13 1998-07-21 Apple Computer, Inc. Bidirectional code converter
US5729743A (en) 1995-11-17 1998-03-17 Deltatech Research, Inc. Computer apparatus and method for merging system deltas
US6141664A (en) 1996-11-13 2000-10-31 Puma Technology, Inc. Synchronization of databases with date range
US6094684A (en) * 1997-04-02 2000-07-25 Alpha Microsystems, Inc. Method and apparatus for data communication
US6119117A (en) * 1997-07-15 2000-09-12 Kabushiki Kaisha Toshiba Document management method, document retrieval method, and document retrieval apparatus
US6006216A (en) * 1997-07-29 1999-12-21 Lucent Technologies Inc. Data architecture for fetch-intensive database applications
US6167405A (en) * 1998-04-27 2000-12-26 Bull Hn Information Systems Inc. Method and apparatus for automatically populating a data warehouse system
US6205451B1 (en) 1998-05-22 2001-03-20 Oracle Corporation Method and apparatus for incremental refresh of summary tables in a database system
US6484309B2 (en) * 1998-10-08 2002-11-19 Intel Corporation Enabling software designed for one operating system to operate on another operating system
US6473776B2 (en) * 1999-04-16 2002-10-29 International Business Machines Corporation Automatic prunning for log-based replication
US6122630A (en) 1999-06-08 2000-09-19 Iti, Inc. Bidirectional database replication scheme for controlling ping-ponging

Also Published As

Publication number Publication date
US7461097B2 (en) 2008-12-02
EP1395919A1 (de) 2004-03-10
DE60117150D1 (de) 2006-04-20
WO2002097664A1 (en) 2002-12-05
US20040122865A1 (en) 2004-06-24
EP1395919B1 (de) 2006-02-08

Similar Documents

Publication Publication Date Title
DE60117150T2 (de) Verfahren und computerprogramm zum übertragen von inhalt aus einer quellendatenbank zu einer zieldatenbank
EP1267277B1 (de) Verfahren, System und Computerprogrammprodukt zum Ändern der Datenstruktur mit der in einem Computersystem ein Anwendungsprogramm auf Datenbanksysteme zugreift
DE68926775T2 (de) System und Verfahren für eine allgemeine Schnittstelle für Anwendungsprogramme
DE60220676T2 (de) Konsistente lesevorgänge in einer verteilten datenbankumgebung
DE10113577A1 (de) Verfahren, Computerprogrammprodukt und Computersystem zur Unterstützung mehrerer Anwendungssysteme mittels eines einzelnen Datenbank-Systems
DE3751228T2 (de) Verfahren und Vorrichtung zur Wiederauffindung von gespeicherten Grafikdaten.
DE60223453T2 (de) Verfahren und Vorrichtung zur Benutzung eines Synchronisationsschlüssels
DE69628374T2 (de) Datenverwaltungssystem
DE19734413C1 (de) Verfahren zum Aufrüsten einer Datenbank
DE19835647A1 (de) Computersystem und Verfahren zum Lesen von HID-Dateneinheiten
EP1151399A1 (de) Integration heterogener Datenbank-Systeme
DE19810802A1 (de) Störungsfreies Aktualisieren von Daten
WO2006131178A1 (de) Mechanismus zum dynamischen registrieren von dateien in einer stapelverarbeitungsorientierten umgebung
EP1637954A1 (de) Erzeugung anonymisierter Datensätze aus produktiven Anwendungen
DE69932524T2 (de) Verfahren zum handhaben von datenobjekten in vom benutzer definierten datentypen
DE602004003149T2 (de) Verwaltung der Anzeige von Dialogen in Computergeräten basierend auf der Gerätenachbarschaft
EP3411803B1 (de) Gerät und verfahren zur bearbeitung eines binärkodierten strukturdokuments
DE112007002327T5 (de) Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit
DE60210934T2 (de) Verfahren und Rechneranordnung für vernetzte Aufgabenverwaltung
EP1209584A2 (de) Einheit zur Verwaltung von in einer Datenverarbeitungseinrichtung gespeicherten Daten
EP1044409B1 (de) Programmablaufverfahren und verfahren zur erweiterung eines programmkomponentensystems
DE10146977B4 (de) Elektronisches Personaldaten-Verwaltungssystem
EP1099172A1 (de) Verfahren, anordnung und satz mehrerer anordnungen zur behebung mindestens einer inkonsistenz in einer datenbankmenge, die eine datenbank sowie mindestens eine kopiedatenbank der datenbank aufweist
EP1324236A1 (de) Bestimmen einer Kennfunktion aus Matrix mit Anreichern und Verdichten
EP1239377A1 (de) Datenorganisationssystem und Verfahren zur Gliederungsstrukturverwaltung und -synchronisation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition