DE602005002024T2 - Fernkopiersystem und Fernkopierverfahren - Google Patents

Fernkopiersystem und Fernkopierverfahren Download PDF

Info

Publication number
DE602005002024T2
DE602005002024T2 DE602005002024T DE602005002024T DE602005002024T2 DE 602005002024 T2 DE602005002024 T2 DE 602005002024T2 DE 602005002024 T DE602005002024 T DE 602005002024T DE 602005002024 T DE602005002024 T DE 602005002024T DE 602005002024 T2 DE602005002024 T2 DE 602005002024T2
Authority
DE
Germany
Prior art keywords
storage device
data area
data
protocol
memory device
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 - Fee Related
Application number
DE602005002024T
Other languages
English (en)
Other versions
DE602005002024D1 (de
Inventor
Takashige Iwamura
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE602005002024D1 publication Critical patent/DE602005002024D1/de
Application granted granted Critical
Publication of DE602005002024T2 publication Critical patent/DE602005002024T2/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/855Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes

Landscapes

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

Description

  • Diese Anmeldung betrifft einen ähnlichen Gegenstand wie die Japanische Patentanmeldung H11-162044 und die zugeordnete US-Patentanmeldung Nr. 09/376,991, jetzt US-Patent Nr. 6,681,303 .
  • Die vorliegende Erfindung betrifft ein Fernkopiersystem und eine Fernkopierverfahren, welches zwischen Speichervorrichtungen oder zwischen Host-Computern verwendet wird.
  • Eine Technik gemäß dem Stand der Technik wird in der Praxis so verwendet, dass Inhalte eines physikalischen Volumens oder eines logischen Volumens mittels Fernkopieren zwischen Speichervorrichtungen dupliziert werden und, wenn ein Fehler in einer Speichervorrichtung auftritt, die Speichervorrichtung so geschaltet wird, dass die Fernkopie gesichert wird. Das Patentdokument 1, welches als Referenz 1 und 2 angegeben ist, offenbart eine Verdoppelungstechnik, bei der die Fernkopie nicht für das gesamte Volumen ausgeführt wird, sondern nur für einen notwendigen Teil des Volumens.
  • Bei dieser Technik wird das Duplizieren für einen spezifizierten Teil des Volumens erreicht. Dennoch wird ein feineingestelltes Duplizieren nicht in einer Weise zugeordnet zu Datenbereichen erreicht, welche durch eine spezielle Anwendung behandelt wurden. Speziell beim Duplizieren von Datenbankinhalten müssen Computermanagementanweisungen auf Betriebssystemebene anstelle der Datenbankanweisungen verwendet werden. Außerdem ist das tabellenweise Duplizieren in einem Datenbankmanagementsystem nicht leicht durchzuführen.
  • Die EP 0 672 985A offenbart ein Ferndaten-Shadowsystem, welches eine speicherbasierte Fähigkeit zur Echtzeit-Notfallwiederherstellung vorsieht. Aufzeichnungsaktualisierungen auf der Primärseite bewirken I/O-Schreibvorgänge innerhalb eines Speicheruntersystems. Die I/O-Schreibvorgänge erhalten einen Zeitstempel, und die Zeit, Folge und die physikalische Lage der Aufzeichnungsaktualisierungen werden in einem primären Datenverschiebungsvorgang gesammelt. Die primäre Datenverschiebung gruppiert Sätze von Aufzeichnungsaktualisierungen und zugeordneten Steuerinformationen basierend auf einem vorgegebenen Zeitintervall, wobei sie an die Aufzeichnungsaktualisierungen eine vorangestellte Kopfzeile hängt, sodass selbstbeschreibende Aufzeichnungssätze gebildet werden. Die selbstbeschreibenden Aufzeichnungssätze werden zu einer entfernten sekundären Seite übertragen, wobei konsistente Gruppen gebildet werden, sodass die Aufzeichnungsaktualisierungen so angeordnet werden, dass sie in einer Folge gespiegelt werden können, die zu der Folge konsistent ist, in der sie I/O-Schreibvorgänge auf der Primärseite veranlassen.
  • Somit werden bei der vorliegenden Erfindung Daten vorzugsweise in Einheiten von Tabellen dupliziert, die jeweils einen Bereich von Daten darstellen, der in einer Datenbank behandelt wird.
  • Um insbesondere das obige Problem anzusprechen, sieht ein Aspekt der vorliegenden Erfindung ein Fernkopiersystem entsprechend dem Patentanspruch 1 vor. Ein weiterer Aspekt der vorliegenden Erfindung sieht ein Verfahren zur Anwendung beim Fernkopieren gemäß Patentanspruch 11 vor.
  • Gemäß der vorliegenden Erfindung wird das Duplizieren (Verdoppeln) in einer Datenbank vorzugsweise tabellenweise unter Verwendung von Anweisungen für ein Datenbankmanagementsystem gesteuert.
  • Weitere Aspekte und Merkmale der Erfindung sind in den Ansprüchen gekennzeichnet.
  • In den Zeichnungsfiguren ist:
  • 1 ein Diagramm, welches die Gesamtkonfiguration einschließlich eines Fernkopiersystems gemäß einem ersten Ausführungsbeispiel zeigt,
  • 2 ein Diagramm, welches die Konfiguration eines Fernkopiersystems zeigt,
  • 3A ein Diagramm, welches Details einer in 2 dargestellten Seite zeigt,
  • 3B ein Diagramm, welches Details eines in 2 gezeigten Protokolls zeigt,
  • 4 ein Diagramm, welches ein Beispiel des Aufbaus einer DB-Adress-Blockadress-Umwandlungstabelle zeigt,
  • 5 ein Diagramm, welches ein Beispiel einer Paarzustandsverwaltungstabelle zeigt,
  • 6 ein Diagramm, welches die Verarbeitung einer UPDATE-Anweisung (Aktualisierungsanweisung) in einer Datenbank zeigt,
  • 7 ein Diagramm, welches die Verarbeitung einer COMMIT-Anweisung in einer Datenbank zeigt,
  • 8 ein Diagramm, welches die Verarbeitung einer Paarformationsanweisung zeigt,
  • 9 ein Diagramm, welches die Verarbeitung einer Paarresynchronisationsanweisung zeigt,
  • 10 ein Diagramm, welches die Verarbeitung einer Paarzustandsreferenzanweisung für eine Tabelle zeigt,
  • 11 ein Diagramm, welches die Verarbeitung einer COMMIT-Anweisung im Falle zeigt, bei dem ein Tabellenschreibschutz eingerichtet ist,
  • 12 ein Diagramm, welches das Abbruchverfahren in einem Steuerungsprozess einer Fernkopie zeigt,
  • 13 ein Diagramm, welches das Verfahren einer Paarabbruchsanweisung zeigt
  • 14 ein Diagramm, welches das Verfahren zeigt, das im Falle eines Fehlerstops einer Fernkopie ausgeführt wird,
  • 15 ein Diagramm, welches die Gesamtkonfiguration zeigt, die ein Fernkopiersystem gemäß einem zweiten Ausführungsbeispiel enthält.
  • Ausführungsbeispiele der Erfindung werden nachfolgend unter Bezugnahme auf die Zeichnungen beschrieben. Das erste Ausführungsbeispiel behandelt einen Fall, bei dem das Fernkopieren hauptsächlich in einer Speichervorrichtungsebene durchgeführt wird. Das zweite Ausführungsbeispiel ist eine Modifikation des ersten Ausführungsbeispiels und behandelt einen Fall, bei dem das Fernkopieren hauptsächlich auf der Ebene eines Hosts ausgeführt wird, wo eine Datenbank betrieben wird. Diese werden nacheinander beschrieben.
  • Erstes Ausführungsbeispiel
  • Aufbau des Fernkopiersystems
  • 1 ist ein Diagramm, welches den Gesamtaufbau zeigt, der ein Fernkopiersystem gemäß dem ersten Ausführungsbeispiel umfasst. Wie in 1 dargestellt, umfasst das Fernkopiersystem 1 einen Host 2A, Kopierquelle-Speichervorrichtungen 3A und 3B und Kopierziel-Speichervorrichtungen 3C und 3D. In 1 ist ein Host 2B auf Seiten der Speichervorrichtungen 3C und 3D vorgesehen. Jedoch ist der Host 2B keine unentbehrliche Komponente. Außerdem ist jeweils auf der Seite der Kopierquelle und der Seite des Kopierziels eine Speichervorrichtung dargestellt. Jedoch können auf jeder Seite auch mehrere Speichervorrichtungen vorgesehen sein. Beispielsweise können drei Speichervorrichtungen mit dem Host 2A verbunden sein.
  • Jede der Speichervorrichtungen 3A, 3B, 3C und 3D können eine oder mehrere logische Datenträger enthalten. Im Beispiel von 1 enthält die Speichervorrichtung 3A einen logischen Datenträger 4A. Die Speichervorrichtung 3B enthält einen logischen Datenträger 4B. Die Speichervorrichtung 3C enthält einen logischen Datenträger 4C. Die Speichervorrichtung 3D enthält einen logischen Datenträger 4D.
  • Im vorliegenden Ausführungsbeispiel wird eine Tabelle einer Datenbank eines Fernkopierobjekts in einem Datenbankserver (nachfolgend: „DB-Server") 21A des Hosts 2A seitenweise verwaltet und gelesen/geschrieben. Dagegen wird in den Speichervorrichtungen 3A, 3B, 3C, und 3D die Verwaltung nicht seitenweise durchgeführt. Stattdessen wird die Verwaltung in Einheiten durchgeführt, die als Block bezeichnet werden. Außerdem wird das Lesen und Schreiben durch die Hosts 2A und 2B blockweise durchgeführt. Daher ist die Größe einer von der Datenbanktabelle verwendeten Seite üblicherweise ein ganzzahliges Vielfaches der Größe eines Blocks.
  • So wie in den Speichervorrichtungen 3A, 3B, 3C und 3D, werden Objekte blockweise so verwaltet, dass die nachfolgende Fernkopie ausgeführt wird. Das bedeutet, dass die Fernkopie von der Speichervorrichtung 3A zu der Speichervorrichtung 3C durchgeführt wird, so wie von der Speichervorrichtung 3B zu der Speichervorrichtung 3D. Ein Verfahren, wie dies erreicht wird, wird später beschrieben.
  • Ein Protokoll und eine Tabelle, die durch den DB-Server 21A verwaltet werden, werden nicht notwendigerweise in einer einzigen Speichervorrichtung und einem logischen Datenträger jeweils gespeichert. Beispielsweise kann eine einzelne Tabelle, wie im Beispiel von TBL1 in 1 gezeigt, geteilt und in Speicherdatenbereichen (Datenbereichen) bestehend aus Blöcken in einer Mehrzahl von Datenträgervorrichtungen oder logischen Datenträgern gespeichert werden. In diesem Fall wird für jeden der geteilten Speicherdatenbereiche eine Fernkopie durchgeführt.
  • 2 ist ein Diagramm, welches den Aufbau des Fernkopiersystems zeigt. Hier werden der Host 2A und die Speichervorrichtung 3A beschrieben, die in 1 gezeigt sind. Jedoch sind der Host 2B und die Speichervorrichtungen 3B, 3C und 3D ähnlich.
  • Aufbau des Hosts
  • Der Host 2A ist ein Computer, der eine CPU (Central Processing Unit) 22, einen Speicher 34 und ein Netzwerk-Interface (nachfolgend: „Netzwerk-I/F") 30 umfasst. Die CPU 22 kann irgendeine Art von CPU sein, die mit einer vorgegebenen Rechnerfunktion versehen ist. Deren Art ist nicht auf eine spezielle CPU eingeschränkt. Der Speicher 34 kann irgendeine Art von Speicher sein, so wie ein gewöhnlicher Halbleiterspeicher, der für den Betrieb der CPU 22 verwendbar ist. Die Art ist nicht begrenzt auf einen speziellen Speicher. Die Art des Netzwerk-I/F 30 ist nicht auf ein spezielles Netzwerk begrenzt und kann von irgendeinem Typ sein, der zur Kommunikation mit der Speichervorrichtung 3A geeignet ist. Es kann beispielsweise ein Interface verwendet werden, welches eine Kommunikation über ein Gigabit-Ethernet (eingetragene Marke), einen Glasfaserkanal oder über eine FICON (registrierte Marke und steht für Fiber Connection (Glasfaserverbindung)) ausführen kann.
  • Der Speicher 34 enthält einen DB-Server 21 und enthält das Serverprogramm für einige Anwendungen. Der DB-Server 21 enthält einen SQL-Ausführungsbereich 23, einen Protokollverwaltungsbereich 24 und einen Verwaltungspufferbereich 25. Die Bereiche 23-25 sind Programme. Der DB-Server 21 enthält eine Verwaltungspuffer-Warteschlange 26, eine DB-Adress-Blockadress-Umwandlungstabelle 27, einen Protokollpuffer 28 und einen Tabellenpuffer 29.
  • Der SQL-Ausführungsbereich 23 analysiert eine SQL-Anweisung und führt einen Lesevorgang oder Schreibvorgang einer Aufzeichnung im Tabellenpuffer 29 aus. Wenn ein Schreibvorgang ausgeführt wird, schreibt der SQL-Ausführungsbereich 23 ein Protokoll in den Protokollpuffer 28. Außerdem, wenn notwenig, veranlasst der SQL-Ausführungsbereich 23 den Protokollverwaltungsbereich 24 und den Verwaltungspufferbereich 25 einen Lesevorgang in einen Block oder einen Schreibvorgang aus einem Block durchzuführen. Der SQL-Ausführungsbereich 23 kann Standard-SQL-Anweisungen und fünf Instruktionen ausführen, die Paarbetriebsanweisungen in Fernkopie betreffen. Die fünf Anweisungen, die eine Paarbetriebsanweisung betreffen, zeigen an: „Paarerzeugung" zur Durchführung einer Paarbildung, „Paardisplay" zum Anzeigen des Paarzustands, „Paarsuspend" zum Anhalten einer Fernkopie zwischen den Komponenten eines Paars, „Paarsync" zum Wiederaufnehmen einer angehaltenen Fernkopie und zum Resynchronisieren eines Paars und „Paardelete" zum Löschen eines Paars.
  • Wenn „Paardelete" ausgeführt wird, wird „Paarsuspend" zuerst durchgeführt, sodass die Fernkopie angehalten wird. Dann überträgt der SQL-Ausführungsbereich 23 eine Anweisung zum Löschen eines Zielblocks vom Host 2A zur Speichervorrichtung 3A. Dann löscht die Speichervorrichtung 3A die Information des betreffenden Blocks von der Paarzustandsverwaltungstabelle 48. Der Betrieb bei „Paarerzeugung", „Paardisplay", „Paarsuspend" und „Paarsync" wird später beschrieben.
  • Der Protokollverwaltungsbereich 24 führt Lesen und Schreiben (Page-in/Page-out) zwischen dem Protokollpuffer 28 und dem Block in der Speichervorrichtung 3A aus. Der Verwaltungspufferbereich 25 führt Lesen und Schreiben (Page-in/Page out) zwischen dem Tabellenpuffer 29 und dem Speicherdatenbereich in der Speichervorrichtung 3A aus.
  • Die Pufferverwaltungswarteschlange 26 enthält eine freie Warteschlange 31, eine benutzte Warteschlange 32 und eine unbenutzte Warteschlange 33. Die freie Warteschlange 31, die benutzte Warteschlange 32 und die unbenutzte Warteschlange 33 führen die Page-Verwaltung des Tabellenpuffers 29 aus. Dies bedeutet, dass die freie Warteschlange 31, die benutzte Warteschlange 32 und die unbenutzte Warteschlange 33 die Page-Information in der Form verwalten, wie diese über einen Zweiweg-Link in jeder Warteschlange verbunden ist. Jede Seite (Page) wird in irgendeiner dieser drei verwaltet. Die Warteschlange des Zweiweg-Links wird von einem Warteschlangeneingang gebildet, der folgendes enthält: Einen Pointer, der den nachfolgenden Warteschlangeneingang anzeigt (ein Knoten zur Verwaltung der Page-Information), einen Pointer, der den vorausgehenden Warteschlangeneingang anzeigt und die Adresse der Seite auf dem Tabellenpuffer 29, verwaltet durch den betreffenden Warteschlangeneingang. Die Datenstruktur zur Verwaltung der Warteschlange kann ein Einweg-Link, anders als der Zweiweg-Link, sein, sowie ein anderes Verfahren.
  • Die freie Warteschlange 31 verwaltet unbenutzte Seiten, wo Inhalte nicht von Blöcken gelesen werden. Die verwalteten Seiten in der freien Warteschlange 31 können so verwendet werden, wie sie sind. Sogar wenn sie neu verwendet werden, erfordern diese Seiten kein Schreiben in den Blöcken.
  • Die benutzte Warteschlange 32 ist eine Warteschlange, die Zeiger (Pointer) zu Seiten enthält, deren Inhalte geändert worden sind, nachdem die Inhalte von den Blöcken gelesen wurden. Die verwalteten Seiten in der benutzten Warteschlange 32 sind die, die einen Schreibvorgang in die Blöcke erfordern.
  • Die unbenutzte Warteschlange 33 ist eine Warteschlange, die Zeiger zu Seiten enthält, deren Inhalte nicht vollständig verändert worden sind, nachdem die Inhalte von den Blöcken gelesen worden sind. Die verwalteten Seiten in der unbenutzten Warteschlange 33 erfordern kein Schreiben in die Blöcke.
  • Die verwalteten Seiten in der freien Warteschlange 31, der benutzten Warteschlange 32 und der unbenutzten Warteschlange 33 verlaufen gegenseitig.
  • Erst wenn eine Seite von der Speichervorrichtung 3A in den Tabellenpuffer 29 eingelesen ist, geht die gelesene Seite von der Verwaltung der freien Warteschlange 31 zu der Verwaltung der unbenutzten Warteschlange 33 über. Wenn die Daten in dem Tabellenpuffer 29 gelöscht sind, hat die Seite die Datenübergänge von der Verwaltung der unbenutzten Warteschlange 33 zu der Verwaltung der freien Warteschlange 31 aufgezeichnet.
  • Wenn eine Seite aus der Speichervorrichtung 3A in den Tabellenpuffer 29 gelesen ist und dann ihre Inhalte aktualisiert worden sind, geht die Seite von der Verwaltung der freien Warteschlange 31 zur Verwaltung der benutzten Warteschlange 32 über. Danach, wenn die Daten in dem Tabellenpuffer 29 in der Speichervorrichtung 3A eingeschrieben sind und dann die Daten ausrangiert sind, hat die Seite die Datenübergänge von der Verwaltung der benutzten Warteschlange 32 zu der Verwaltung der freien Warteschlange 31 aufgezeichnet.
  • Wenn Daten im Tabellenpuffer 29 in die Speichervorrichtung 3A eingeschrieben sind, hat die Seite die Datenübertragungen von der Verwaltung der benutzten Warteschlange 32 zu der Verwaltung der unbenutzten Warteschlange 33 aufgezeichnet. Danach, wenn die Daten im Tabellenpuffer 29 aktualisiert worden sind, hat die Seite die Datenübertragungen von der Verwaltung der unbenutzten Warteschlange 33 zu der Verwaltung der benutzten Warteschlange 32 aufgezeichnet.
  • Die DB-Adress-Blockadress-Umwandlungstabelle 27 ist eine Tabelle zur Umwandlung einer Adresse, wobei eine Tabelle der Datenbank in dem Host 2A in einer Blockadresse eines Speicherdatenbereichs aufbewahrt wird, der die Inhalte in der Speichervorrichtung 3A speichert. Ein Beispiel des Aufbaus der DB-Adress-Blockadress-Umwandlungstabelle 27 wird später beschrieben.
  • Der Protokollpuffer 28 ist ein Bereich des Speichers 34, um das Protokoll einer SQL-Anweisung zu speichern, die durch den SQL-Ausführungsbereich 23 als Datenbankanweisungen für den DB-Server 21 ausgeführt werden. Beispielsweise, wenn eine UPDATE-Anweisung (Aktualisierungsanweisung) und eine COMMIT-Anweisung (Übertragungsanweisung) im vorhergehenden Bereich ausgeführt worden sind, wird ein Protokoll der UPDATE-Anweisung im Protokoll L1 von 2 aufgezeichnet, während ein Protokoll der COMMIT-Anweisung in dem Protokoll L2 aufgezeichnet wird.
  • Der Protokollpuffer 28 kann wie ein Ringpuffer bedient werden, anders als eine Warteschlange eines Zweiweg-Links. In der Form eines Ringpuffers wird der Pufferbereich aufeinanderfolgend benutzt, beginnend bei der Startadresse des Protokollpuffers 28. Wenn die Adresse die Endadresse des Protokollpuffers 28 erreicht, werden die Seiten nach Rückkehr zur Startadresse wiederbenutzt.
  • Der Tabellenpuffer 29 ist ein Puffer zur Aufzeichnung einer Tabelle der Datenbank. Wie in 2 gezeigt, zeichnet der Tabellenpuffer 29 die Tabelle seitenweise auf und verwaltet die Seiten unter Verwendung der Pufferverwaltungswarteschlange 26. Die hier erwähnte Tabelle wird in die Seiten P1 und P2 des Tabellenpuffers 29 gespeichert, wie in 2 gezeigt.
  • Auf der Ebene des Puffers des DB-Servers 21 wird die Tabelle durch die Warteschlange seitenweise verwaltet. Schreiben und Lesen werden für den Puffer ebenfalls seitenweise durchgeführt. Hier können Lese-/Schreib-Anforderungen an den Speicher blockweise spezifiziert werden, außer im Falle eines Großrechners (Lese-/Schreib-Anforderungen können in Großrechnern byteweise spezifiziert werden). Wegen des oben erwähnten Merkmals des DB-Servers 21 werden Lese-/Schreib-Anweisungen im Seitenformat umgewandelt und in Form einer Blockadresse ausgegeben. Diese Situation wird jedoch für den Protokollpuffer nicht beibehalten. Das heißt, Lesen und Schreiben kann blockweise durchgeführt werden.
  • Aufbau der Speichervorrichtung
  • Die Speichervorrichtung 3A umfasst einen Speicherplatten-Controller 42 und drei Speicherplattenvorrichtungen 44A, 44B und 44C. Die Speicherplattenvorrichtungen 44A, 44B und 44C können beispielsweise wie einzelne logische Speicherplatten 45 unter der Verwaltung des Speicherplatten-Controllers 42 behandelt werden. Die Anzahl der Speicherplattenvorrichtungen und die Anzahl der logischen Speicherplatten kann geändert werden.
  • Der Speicherplatten-Controller 42 ist ein Computer, der wenigstens eine CPU 41 und einen Speicher 43 umfasst. Die CPU 41 kann jede Art von CPU sein, die mit einem vorgegebenen Berechnungsweg versehen ist. Die Art ist nicht auf eine spezielle CPU begrenzt. Der Speicher 43 kann jede Art von Speicher sein, so wie ein gewöhnlicher Halbleiterspeicher, der für den Betrieb der CPU 41 geeignet ist. Dessen Art ist nicht begrenzt auf einen speziellen Speichertyp.
  • Der Speicher 43 enthält einen Fernkopierprogrammbereich 46, einen Speicherplattenanordnungs-Steuerprogrammbereich und eine Paarzustandsverwaltungstabelle 8.
  • Der Fernkopie-Programmbereich 46 ist ein Programm zur Durchführung der Fernkopie eines Speicherdatenbereichs korrespondierend zu einer Tabelle der in den Speicherplattenvorrichtungen 44A, 44B und 44C oder der logischen Speicherplatte 45 aufgezeichneten Datenbank.
  • Der Speicherplattenanordnungs-Steuerprogrammbereich hat die Steuerfunktion wie eine Speicherplattenanordnung mit einer Vielzahl von Speicherplatten 44A, 44B und 44C, die mit dem Speicherplattencontroller 42 verbunden sind und dadurch diese Einheiten in der Form einer logischen Speicherplatte 45, wie oben beschrieben, konfigurieren. Das Steuerverfahren der Speicherplattenanordnung kann ein RAID (Redundant Array of Independent Disks) oder dergleichen sein. Jedoch ist das Verfahren nicht darauf beschränkt.
  • Die Paarzustandsverwaltungstabelle 48 ist eine Tabelle zur Verwaltung des Zustands eines Paars von Fernkopieobjekten. In dieser Tabelle werden Informationen verwaltet, was notwendig ist, wenn der Speicherplattencontroller 42 oder die Speichervorrichtung 3A eine Fernkopie ausführt.
  • Beispiel für den Aufbau der Seite und des Protokolls
  • Als nächstes werden die Seiten P1 und P2 und die Protokolle L1 und L2, die in 2 dargestellt sind, nachfolgend unter Bezugnahme auf 3 beschrieben.
  • Wie in 3A gezeigt, enthält die Seite P1 eine Tabelle ID (Bezugszeichen P1A), eine DB-Adresse P1B, eine LastLSN (Last Log Sequence Number = letzte Protokollfolgenummer) P1C, eine LastTSN (Last Transaction Sequence Number = letzte Transaktionsfolgenummer) P1D, ein Benutzt-Zeichen (Dirty Flag) P1E und Aufzeichnungen P1F. Die LastLSN und die LastTSN enthalten jeweils die ID eines Protokolls und die ID einer Transaktion. Außerdem ist die Seite P2 ähnlich.
  • Die Tabellen-ID (P1A) ist, eine Information, die eine Tabelle kennzeichnet, welche die betreffende Seite enthält. Die DB-Adresse P1B ist eine Informati on, die eine Tabelle kennzeichnet und eine Adresse der Datenbank, zu der die gegenwärtigen Daten in der betreffenden Seite gehören. Ein Beispiel der Verwendung der DB-Adresse P1B ist das, wenn der Pufferverwaltungsbereich 25 die betreffende Seite in den Originalzustand zurückschreibt, wird ein Schreibauftrag zum Speicherdatenbereich ausgegeben, der durch Umwandlung der DB-Adresse P1B unter Verwendung der DB-Adress-Blockadress-Umwandlungstabelle 27 spezifiziert ist.
  • Die LastLSN (P1C) und die LastTSN (P1D) sind Identifikationsinformationen jeweils für das Protokoll und die Transaktion. Die enthaltene Information in diesen Bereichen ist fast äquivalent. Diese Bereiche speichern Identifikationsinformation für das Protokoll oder die Transaktion, welche die zugehörige Seite in der vorhergehenden Stufe verwendet hat. Das Benutzt-Zeichen P1E ist ein Flag (Zeichen) welches kennzeichnet, ob die Seite benutzt ist oder nicht, das heißt ob die Inhalte verändert worden sind, nachdem die Inhalte in den Speicher 34 eingelesen worden sind. Wenn ein Benutzt-Zeichen P1E auf ON steht, wurden die Inhalte der betreffenden Seite verändert. Daher müssen die Inhalte in den Block geschrieben werden, wenn diese Seite vom Puffer entfernt werden sollen.
  • Jede Aufzeichnung (Record) P1F entspricht einer Aufzeichnung der Datenbank. Eine Mehrzahl von Aufzeichnungen ist beispielsweise in der Seite P1 enthalten. Jedoch kann eine einzelne Aufzeichnung alleine in der Seite P1 enthalten sein. Wie in 3A dargestellt, enthält die Aufzeichnung P1F eine Aufzeichnungs-ID (Record ID)(P1G), den Wert eines Merkmals 1 (Attribute 1)(P1H), den Wert eines Merkmals 2 (Attribute 2) (P1J) und dergleichen. Zwei Merkmale sind in diesem Beispiel gezeigt. Jedoch kann eine größere Anzahl von Merkmalen enthalten sein. Die erwähnten Merkmale bezeichnen die Merkmale in einer Tabelle der Datenbank. Beipielsweise im Falle einer Tabelle, die Produktnamen und deren Preise enthält, entsprechen die Merkmale dem „Produktnamen" und dem „Preis". Ein Wert des Merkmals 1 (P1H) und ein Wert des Merkmals 2 (P1J) sind Daten eines spezifischen Produktnamens und eines spezifischen Preises.
  • Als nächstes wird nachfolgend der Aufbau der Protokolle L1 und L2 beschrieben. Wie in 3B gezeigt, enthält das Protokoll L1 eine LastLSN (L1A) eine LastTSN (L1B), eine Tabellen-ID (L1C), eine Aufzeichnungs-ID (L1D), ein COMMIT-Flag L1E, ein Abbruch-Flag (Abort Flag) L1F, Daten L1G vor der Änderung und Daten L1H nach der Änderung. Das Protokoll L2 ist ähnlich.
  • Die LastLSN (L1A) und die Last TSN (L1B) sind ähnlich zur LastLSN (P1C) und der LastTSN (P1D), die in 3B gezeigt sind. Die Tabellen-ID (L1C) enthält Kennzeichnungsinformationen für eine Tabelle in der Datenbank, die ein Objekt einer im Protokoll aufgezeichneten Anweisung ist. Die Aufzeichnungs-ID (L1D) enthält Kennzeichnungsinformationen für eine Aufzeichnung, die als Erneuerungsobjekt im Protokoll zugewiesen ist. Obwohl in 3B nicht beschrieben, kann das Protokoll L1 Information enthalten, die eine DB-Adresse anzeigt, wo eine Aufzeichnung eines Aktualisierungsobjekts vorhanden ist.
  • Das COMMIT-Flag L1E ist ein Flag, welches anzeigt, ob eine im Protokoll aufgezeichnete Anweisung ein COMMIT ist, oder nicht. Das Abort-Flag L1F ist ein Flag, welches anzeigt, ob eine im Protokoll aufgezeichnete Anweisung ein ABORT (Abbruch) ist, oder nicht.
  • Die Daten L1G vor der Veränderung und die Daten L1E nach der Veränderung sind jeweils Daten, die Inhalte einer Aufzeichnung vor beziehungsweise nach der Durchführung einer Änderung enthalten, entsprechend einer in dem betreffenden Protokoll aufgezeichneten Anweisung.
  • 4 ist ein Diagramm, welches ein Beispiel des Aufbaus einer DB-Adress-Blockadress-Umwandlungstabelle zeigt. Die in 4 dargestellte Tabelle ist ein Beispiel einer DB-Adress-Blockadress-Umwandlungstabelle 27 von 2. Gerade diese Tabelle 27 hat einen solchen Aufbau, dass eine Blockadressausgabe 272 als Ergebnis einer Umwandlung für eine DB-Adresseingabe 271 erhalten wird.
  • Jede DB-Adresseingabe 271 umfasst Information auf der Tabellen-ID und der Tabellenadresse einer Tabelle in der Datenbank. Jede Blockadressausgabe 272 enthält die Vorrichtungs-ID einer Speichervorrichtung, die Volumen-ID einer Speicherplattenvorrichtung oder einer logischen Disk und eine Blockadresse, die einen Speicherdatenbereich in der Vorrichtungs-ID und in der Volumen-ID anzeigt. In 4 ist die Umwandlungsinformation für vier Eingänge dargestellt.
  • In der DB-Adress-Blockadress-Umwandlungstabelle 27 kann eine einzelne Tabelle der Datenbank als Mehrzahl von separaten Eingängen beschrieben werden. In 4 entsprechen eine DB-Adresseingabe 271A und eine DB-Adresseingabe 271B einer einzelnen Tabelle TBL1 der Datenbank. In diesem Beispiel wir die Tabellen-ID (Table ID) der DB-Adresseingabe 271A als „TBL1 (A)" beschrieben, während die Tabellen-ID der DB-Adresseingabe 271B als „TBL1 (B)" beschrieben ist, sodass diese zwei unterschieden sind. Es genügt jedoch die Beschreibung „TBL1" im Prinzip. Demzufolge kann die gleiche Tabellen-ID auf der Basis eines Unterschieds in der Tabellenadresse identifiziert werden. In 4 entspricht die DB-Adresseingabe 271A einer Vorrichtungs-ID 1 (Device ID 1) und einer Volumen-ID 1 (Volume ID 1) in einer zugehörigen Blockadressausgabe (Block Address) 272A. Dagegen entspricht die DB-Adresseingabe 271B einer Vorrichtungs-ID 2 und einer Volumen-ID 2 in einer zugehörigen Blockadressausgabe 272B. Somit entspricht eine einzelne Tabelle nicht Notwendigerweise einer einzelnen Speicherplattenvorrichtung oder logischen Disk.
  • Eine DB-Adresseingabe 271C für eine Tabelle TBL2 entspricht einer zugeordneten Blockadressausgabe 272C. In diesem Fall von 4 entspricht eine einzelne Tabelle einer einzelnen Speicherplattenvorrichtung oder logischen Disk. Eine DB-Adresseingabe 271D für LOG, welches ein Protokoll ist, das Tabellenbearbeitungen betrifft, entspricht einem zugehörigen Blockadressausgang 272D und einer einzelnen Speicherplattenvorrichtung oder logischen Disk.
  • 5 ist ein Diagramm welches ein Beispiel einer Paarzustandsverwaltungstabelle zeigt. Dieses Beispiel zeigt die Paarzustandsverwaltungstabelle 48 von 2. Insgesamt umfasst die Paarzustandsverwaltungstabelle 48 Information einer Paar-ID, Information einer Kopierquelle, Information eines Kopierziels und Information eines Paarzustands. Diese Informationsteile sind ausreichend, um die Fernkopie in den Speichervorrichtungen 3A, 3B, 3C und 3D zu steuern. Jede der Information der Kopierquelle und der Information des Kopierziels, wie oben beschrieben, enthalten eine Vorrichtungs-ID, eine Volumen-ID und die Startadresse und die Endadresse eines Speicherdatenbereichs. Dies ermöglicht den Speichervorrichtungen 3A, 3B, 3C und 3D die Blöcke der Kopierquelle und das Kopierziel in der Fernkopie zu erkennen.
  • An einem Eingang 481, in 5 dargestellt, ist dessen Paar-ID #1. Weiterhin sind eine Vorrichtungs-ID, eine Volumen-ID, eine Startadresse und eine Endadresse für jede Kopierquelle und Kopierziel angegeben. Das bedeutet, dass der Paarzustand „Duplex" ist. Dieser „Duplex"-Zustand gibt einen Zustand an, wonach die Fernkopie von einer Kopierquelle zu einem Kopierziel normal funktioniert, sodass die Tabelle dupliziert ist und wenn ein Fehler in der Ko pierquelle auftritt, kann das System umgeschaltet werden (Fehlerüberwindung) auf das Kopierziel. Paarzustände, anders als der Duplex-Zustand, schließen beispielsweise ein, Simplex, Suspend und Duplex-Pending.
  • Der Simplex-Zustand kennzeichnet einen Betriebszustand ähnlich dem eines gewöhnlichen einzelnen Speichers, wo keine Paarbildung für die Fernkopie durchgeführt wird. Die Bestimmung dieser Paarzustände wird später beschrieben.
  • Suspend zeigt einen Zustand an, bei dem einmal ein Fernkopiepaar gebildet worden ist, aber die Fernkopie gestopt worden ist, nachdem diese aus einem bestimmten Grund zurückgeführt wurde. Wenn eine Schreiboperation in eine Kopierquelle der Speichervorrichtung 3A (s. 1) in einem Suspend-Zustand durchgeführt wurde, zeichnet die Speichervorrichtung 3A als Kopierquelle in die Unterschieds-Bitmap die Position des nach dem Übergang in den Suspend-Status ausgeführten Aufschrieb als einen Bereich auf, wo die Dateninhalte variiert werden konnten, nach dem Übergang in den Suspend-Zustand. Das bedeutet, dass ein Bit in der Unterschieds-Bitmap entsprechend zu dem Speicherdatenbereich auftritt, welcher die Inhalte enthält, in denen der Schreibvorgang durchgeführt worden ist.
  • Der Duplex-Pending-Zustand zeigt einen Zustand an, bei dem die Kopie gestartet wurde, um ein Fernkopiepaar zu bilden, sodass ein Synchronisationsvorgang abläuft, das bedeutet, ein Zustand, bei dem die Kopie zur Ausbildung eines Paars in Bearbeitung ist und daher das Umschalten auf das Kopierziel (Fehlerüberwindung) nicht durchgeführt werden kann. Wenn eine Paarerzeugung für einen Speicherdatenbereich in einem Simplex-Zustand erhalten wird, oder alternativ ein Pairresync für einen Speicherdatenbereich in einem Suspend-Zustand erhalten wird, gehen diese Zustände in einen Duplex-Pending-Zustand über. Wenn das Kopieren zur Bildung eines Paars vollständig abgeschlossen ist, geht der Duplex-Pending-Zustand in einen Duplex-Zustand über.
  • Betrieb des Fernkopiersystems
  • Als nächstes wird der Betrieb des Fernkopiersystems 1 nachfolgend beschrieben. Im Fernkopiersystem 1 gibt der Host 2A eine Paarbetriebsanweisung sowie eine Paarbildungsanweisung aus. Dann arbeitet die Speichervorrichtung 3A entsprechend der empfangenen Anweisung. Der entsprechend durchgeführte Betrieb zu jeder Anweisung wird nachfolgend im Einzelnen beschrieben.
  • 6 ist ein Diagramm, welches die Verarbeitung einer UPDATE-Anweisung in der Datenbank zeigt.
  • Zuerst empfängt der DB-Server 21 eine UPDATE-Anweisung (eine UPDATE-Instruktion in SQL) (S11). Dann bestimmt der DB-Server 21, ob irgendeine notwendige Aufzeichnung in dem Tabellenpuffer 29 (s. 2) vorliegt, oder nicht (S12). Als Ergebnis der Bestimmung, wenn keine notwendige Aufzeichnung vorliegt („Nein" bei S12), liest der Pufferverarbeitungsbereich 25 in dem DB-Server 21 eine Aufzeichnung als Antwort auf die Anweisung von dem SQL-Ausführungsbereich 23 (S13). Dann geht der Vorgang zu Schritt S14. Im Gegensatz zu S12, geht der Vorgang, wenn eine notwendige Aufzeichnung vorliegt („Ja” bei S12) direkt zum Schritt S14 über.
  • Bei Schritt S14 aktualisiert der SQL-Ausführungsbereich 23 die LastLSN und die LastTSN und setzt das Benutzt-Flag P1E (s. 3A) (S14).
  • Dann setzt der SQL-Ausführungsbereich 23 das Aktualisierungs-Flag der Tabelle des Aktualisierungsobjekts (S15). Dabei wird ein Aktualisierungs-Flag für jede Tabelle vorgesehen. Dann erzeugt der SQL-Ausführungsbereich 23 ein Protokoll der Aktualisierung der Aufzeichung (S16) und gibt ein OK zurück für die UPDATE-Anweisung (S17). Dann ist das Verfahren abgeschlossen.
  • Zu 6 wurde eine UPDATE-Anweisung unter den SQL-Anweisungen als Beispiel beschrieben. Jedoch wird fast das gleiche Verfahren gleichermaßen für eine Anweisung, wie eine INSERT-Anweisung durchgeführt, die das Schreiben einer Aufzeichnung verlangt. Wenn eine Anweisung, die das Schreiben einer Aufzeichnung nicht erfordert, durchgeführt wird, ist Schritt S15 unnötig. Jedoch wird fast der gleiche Vorgang bezüglich den anderen Punkten durchgeführt. Der Fall einer COMMIT-Ausführung und eine ABORT-Ausführung werden später beschrieben.
  • 7 ist ein Diagramm, welches den Verfahrensablauf für eine COMMIT-Anweisung in der Datenbank zeigt. Dieser Verfahrenablauf wird nachfolgend zu dem Verfahrensablauf von 6 oder drgl. in vielen Fällen durchgeführt.
  • Zuerst empfängt der DB-Server 21 eine COMMIT-Anweisung (eine Anweisung in SQL zur Realisierung einer Aktualisierung und dergleichen) (S21). Dann erzeugt der DB-Server 21 ein Protokoll der COMMIT-Anweisung (S22). Dann schreibt als Antwort auf eine Anweisung von dem SQL-Ausführungsbereich 23 der Protokollverwaltungsbereich 24 die Daten des Protokollpuffers 28 in den Datenspeicherbereich wo das Protokoll gespeichert ist (S23) Wenn das Protokoll der COMMIT-Anweisung in den Protokollspeicherdatenbereich geschrieben worden ist, gibt der SQL-Ausführungsbereich 23 ein OK für die COMMIT-Anweisung zurück an den Pufferverwaltungsbereich 25 (S24).
  • Dann schreibt der Pufferverwaltungsbereich 25 zu einem Zeitraum, der unabhängig von einem solchen Verarbeitungsvorgang ist, die aktualisierte Seite auf dem Tabellenpuffer 29 in den Speicherdatenbereich, wo die Tabelle gespeichert wird (S25). Dann ist das Verfahren abgeschlossen.
  • 8 ist ein Diagramm, welches den Ablauf für eine Paarbildungsanweisung zeigt. Die Paarbildungsanweisung ist ähnlich zu der oben beschriebenen Paarerzeugungs-Anweisung (Paircreate-Statement).
  • Zuerst definiert der DB-Server 21 die Verbindung zur Speichervorrichtung 3A (S31). Dies definiert ein Paar zur Ausführung einer Fernkopie und definiert bei dem Host 2A, welcher Host und welche Speichervorrichtung das Computersystem bilden, um eine Kopierquellendatenbank zu verwalten, und welcher Host und welche Speichervorrichtung ein Computersystem zur Verwaltung einer Kopierzieldatenbank bilden. Beispielsweise ist in der in 1 gezeigten Konfiguration ein Paar so definiert, dass der Host 2A und die Speichervorrichtungen 3A und 3B eine Kopierquelle bilden und der Host 2B und die Speichervorrichtungen 3C und 3D ein Kopierziel bilden.
  • Dann empfängt der DB-Server 21 eine Paarbildungsanweisung für die Tabelle von einem Auftraggeber (S32). Der hier erwähnte Auftraggeber bezeichnet einen Computer, der die Ausführung einer SQL-Anweisung an den DB-Server 21 anfordert. Somit kann der Auftraggeber ein Host 2A oder 2B selbst sein, oder alternativ dazu ein anderer Computer über ein Netzwerk, der zu dem DB-Server 21 zugreift.
  • Dann bestimmt der SQL-Ausführungsbereich 23, ob der Protokollspeicherdatenbereich (ein Speicherdatenbereich in der Speichervorrichtung, in welcher das Protokoll gespeichert ist) eine Fernkopie durchläuft, oder nicht (S33). Dies kann geprüft werden, wenn eine Paarzustandsreferenzanweisung (Pairdisplay = Paaranzeige) in Bezug auf den Protokollspeicherdatenbereich ausgeführt wird.
  • Als Bestimmungsergebnis geht der Ablauf direkt zum Schritt S36, wenn der Protokollspeicherdatenbereich eine Fernkopie durchläuft („Ja” bei S33). Wenn dagegen der Protokollspeicherdatenbereich keiner Fernkopie unterzogen wird („Nein" bei S33), weist der Host 2A die Speichervorrichtung 3A an, eine Paarbildung des Protokollspeicherdatenbereichs (S34) durchzuführen. Dann startet die Speichervorrichtung 3A eine Paarbildungskopie des Protokollspeicherdatenbereichs und fügt dann den Protokollspeicherdatenbereich der Paarzustandsverwaltungstabelle 48 (S35) zu. Danach geht der Ablauf zu Schritt S36 über.
  • Bei Schritt S36 erhält der Host 2A den Speicherdatenbereich (nachfolgend: ein Tabellenspeicherdatenbereich) in der Speichervorrichtung, die von der Tabelle benutzt wird, entsprechend der DB-Adress-Blockadress-Umwandlungstabelle 27 und instruiert die Speichervorrichtung 3A eine Paarbildung durchzuführen (S36). Dann startet die Speichervorrichtung 3A eine Paarbildungskopie des Tabellenspeicherdatenbereichs und fügt dann den Tabellenspeicherdatenbereich der Paarzustandsverwaltungstabelle 48 (S37) hinzu. Dann ist der Vorgang abgeschlossen. Zu dem Zeitpunkt, bei dem der Vorgang dieser Paarbildung abgeschlossen ist, befindet sich der Paarzustand in einem Duplex-Pending-Zustand (Duplex ist anhängig). Weiterhin wird die gesamte notwendige Information in der Paarzustandsverwaltungstabelle bei Schritt S35 bis Schritt S37 vorgesehen. Jedoch kann die Information bei der Ausführung von Schritt S31 bereitgestellt werden.
  • 9 ist ein Diagramm, welches die Bearbeitung der Paarresynchronisationsanweisung zeigt. Die Paarresynchronisationsanweisung ist die gleiche wie die oben beschriebenen Pairresync-Anweisung.
  • Bei dieser Bearbeitung empfängt der DB-Server 21 zuerst eine Paarresynchronisationsanweisung für die Tabelle von dem Auftraggeber (S41). Dann bestimmt der DB-Server 21, ob der Protokollspeicherdatenbereich eine Fernkopie ausführt, oder nicht (S42). Als Bestimmungsergebnis geht die Bearbeitung direkt zum Schritt S45 über, wenn der Protokollspeicherdatenbereich eine Fernkopie durchläuft („Ja” bei S42). Dagegen instruiert der DB-Server 21 die Speichervorrichtung 3A eine Paarresynchronisation des Protokollspeicherdatenbereichs durchzuführen, wenn der Protokollspeicherdatenbereich keine Fernkopie durch läuft („Nein" bei S42) (S43). Dann wird eine Differenzkopie gestartet, die die Unterschieds-Bitmap des Protokollspeicherdatenbereichs verwendet (S44).
  • Danach geht die Bearbeitung bei Schritt S45 weiter. Die Unterschieds-Bitmap, die hier verwendet wird, ist eine Unterschieds-Bitmap, welche durch Ausführung einer logischen Summenbildung (OR) auf der Unterschieds-Bitmap erhalten wird, aufgezeichnet in der Kopierquellenspeichervorrichtung 3A und der Unterschieds-Bitmap aufgezeichnet in der Kopierzielspeichervorrichtung 3C, und wobei dann das Ergebnis gemischt wird.
  • Bei Schritt S45 wird der Speicherdatenbereich, der von der Tabelle verwendet wird, von der DB-Adress-Blockadress-Umwandlungstabelle 27 erhalten und dann die Speichervorrichtung 3A instruiert, eine Paarresynchronisationsanweisung auszuführen. Dann wird eine Differenzkopie des Tabellenspeicherdatenbereichs gestartet, der die Unterschieds-Bitmap verwendet. Dann ist die Bearbeitung abgeschlossen.
  • 10 ist ein Diagramm, welches die Verarbeitung für eine Paarzustandsreferenzanweisung für die Tabelle zeigt. Die Paarzustandsreferenzanweisung ist ähnlich zur Paardisplay-Anweisung, die oben beschrieben wurde. Die Anweisung wird beispielsweise bei der Überwachung verwendet, ob die Fernkopie normal durchgeführt worden ist, oder bei der Bestimmung, ob das Kopierziel ein Duplex-Zustand als Ergebnis der erstellten Kopie oder der Differenzkopie ist.
  • Zuerst empfängt der DB-Server 21 eine Paarzustandsreferenzanweisung entsprechend der Tabelle (S51). Dann prüft die Speichervorrichtung 3A den Paarzustand des Protokollspeicherdatenbereichs und des Tabellenspeicherdatenbereichs (S52). Bei diesem Schritt kann die Information der DB-Adress-Blockadress-Umwandlungstabelle 27 zum Erreichen des Protokollspeicherdatenbereichs und des Tabellenspeicherdatenbereichs verwendet werden. Es kann jedoch auch ein anderes Verfahren verwendet werden. Ein Beispiel für ein Verfahren besteht darin, dass eine Kennung zum DB-Server 21 als Reaktion auf die Paarbildungsanweisung für die Speichervorrichtung returniert wird und dass der DB-Server diese Kennung speichert und die Kennung in den nachfolgenden Paarbearbeitungen für den Speicherdatenbereich spezifiziert. Dann wird bestimmt, ob alle Speicherdatenbereiche in der Tabelle im Duplex-Zustand (gepaarter Zustand) sind, oder nicht (S53). Als Ergebnis, wenn alle im Duplex-Zustand sind („Ja” bei S53), wird ein Duplex-Zustand zurückgegeben (S57). Dann ist das Verfahren abgeschlossen. Wenn nicht alle Speicherdatenbereiche im Duplex-Zustand sind („Nein" bei S53), geht die Bearbeitung mit Schritt S54 weiter.
  • Bei Schritt S54 wird bestimmt, ob irgendein Speicherdatenbereich unter den gesamten Speicherdatenbereichen in der Tabelle sich im Simplex-Zustand (ungepaarter Zustand) befindet, oder nicht. Als Ergebnis dieser Bestimmung wir der Simplex-Zustand wieder hergestellt (S58), wenn irgendein Speicherdatenbereich sich im Simplex-Zustand („Ja” bei S54) befindet. Dann ist die Verarbeitung abgeschlossen. Befindet sich kein Speicherdatenbereich in einem Simplex-Zustand („Nein" bei S54), geht das Verfahren zum Schritt S55.
  • Bei Schritt S55 wird bestimmt, ob irgendein Speicherdatenbereich unter den gesamten Speicherdatenbereichen in der Tabelle sich im Suspend-Zustand befindet, oder nicht. Als Ergebnis erfolgt ein Zurückführen in den Suspend-Zustand (S59), wenn irgendein Speicherdatenbereich sich im Suspend-Zustand („Ja” bei S55) befindet. Dann ist die Verarbeitung abgeschlossen. Wenn sich kein Speicherdatenbereich in einem Suspend-Zustand („Nein" bei S55) befindet, erfolgt eine Rückkehr in den Duplex-Pending-Zustand (Paarbildungswartezustand) (S56). Damit ist die Verarbeitung abgeschlossen.
  • 11 ist ein Diagramm, welches die Verarbeitung für eine COMMIT-Anweisung in einem Fall zeigt, in welchem ein Tabellenschreibschutz gesetzt ist. Diese Verarbeitung wird gewöhnlich nach einer Schreibanweisung für den Tabellenpuffer 29 durchgeführt. Dieser Verarbeitung wird beispielsweise gerade in einem Zustand durchgeführt, dem die Verarbeitung einer UPDATE-Anweisung vorausgegangen ist, die in 6 beschrieben wurde.
  • Bei dieser Verarbeitung empfängt der DB-Server 21 zuerst eine COMMIT-Anweisung (S61). Dann wird geprüft, ob die Tabelle des Schreibobjekts oder des Aktualisierungsobjekts ein schreibgeschütztes Objekt ist, oder nicht (S62).
  • Ist der Schreibschutz nicht gesetzt („Nein" bei S62) geht die Verarbeitung direkt zum Schritt S65. Ist der Schreibschutz gesetzt („Ja” bei S62), wird der Paarzustand von dem Protokoll und den Tabellenspeicherdatenbereichen aus der Speichervorrichtung 3A entnommen (S63). Dann wird geprüft, ob irgendein Speicherdatenbereich sich im Suspend-Zustand befindet, oder nicht (S64). Als Ergebnis, wenn sich irgendein Speicherdatenbereich im Suspend-Zustand („Ja” bei S64) befindet, wird ein Verarbeitungsabbruch durchgeführt (S69). Damit ist der Vorgang abgeschlossen. Details des Verarbeitungsabbruchs bei Schritt S69 werden später beschrieben. Befindet sich kein Speicherdatenbereich in ei nem Suspend-Zustand („Nein" bei S64), geht die Verarbeitung zum Schritt S65 über.
  • Bei Schritt S65 wird ein Protokoll der COMMIT-Anweisung im Protokollpuffer 28 erzeugt. Dann wird der Protokollpuffer 28 ausgeschrieben (S66). Das bedeutet, dass die wiederbeschriebenen Inhalte des Protokollpuffers 28 bei Schritt S65 in der Speichervorrichtung 3A aufgezeichnet werden.
  • Danach wird aus der Speichervorrichtung 3A der Paarzustand des Protokollspeicherdatenbereichs gewonnen (S67). Dann wird geprüft, ob der Protokollspeicherdatenbereich sich in einem Suspend-Zustand befindet, oder nicht (S68). Im Falle des Suspend-Zustands („Ja” bei S68) wird ein Verarbeitungsabbruch durchgeführt (S69). Damit ist der Vorgang abgeschlossen. In einem. Falle, der anders ist als der Suspend-Zustand („Nein” bei S68), wird die Verarbeitung unmittelbar abgeschlossen. Wenn „Nein" bei S62 erhalten wird, wählt S68 immer „Nein" aus.
  • 12 ist ein Diagramm, welches den Verarbeitungsabbruch in einem Steuerungsprozess einer Fernkopie zeigt. Der Prozess ist eine detaillierte Verarbeitung des Schritts S69, der in 11 gezeigt ist.
  • Bei dieser Verarbeitung wird zuerst geprüft, ob ein Protokoll einer COMMIT-Anweisung im Protokollpuffer 28 vorliegt, oder nicht (S71). Wenn ein Protokoll einer COMMIT-Anweisung vorliegt („Ja” bei S71), wird das Protokoll der COMMIT-Anweisung in ein Protokoll einer Abbruch-Anweisung wieder eingeschrieben (S72). Dann geht die Verarbeitung zum Schritt S73 über. Wenn kein Protokoll einer COMMIT-Anweisung vorliegt („Nein" bei S71), wird ein Protokoll einer Abbruch-Anweisung erzeugt (S76). Dann geht die Verarbeitung zum Schritt S73 über.
  • Beim Schritt S73 kehrt der Tabellenpuffer 29 zurück in den Ursprungszustands, entsprechend den Inhalten (wie den Daten L1G vor der Aktualisierung in 3B), die im Protokoll aufgezeichnet sind. Dann wird der Protokollpuffer 28 ausgeschrieben zu der Speichervorrichtung 3A (S74). Dann wird ein NG (Kennzeichnung, dass das COMMIT nicht normal verarbeitet worden ist) für die COMMIT-Anweisung wiedergegeben wird. Damit ist der Vorgang abgeschlossen.
  • 13 ist ein Diagramm, welches die Verarbeitung für eine Paaraussetzanweisung (Pair Suspend Instruction) zeigt. Die Paaraussetzanweisung ist die Gleiche, wie die Paarsuspend-Anweisung, welche oben beschrieben wurde.
  • Bei dieser Verarbeitung empfängt der DB-Server 21 zuerst eine Paaraussetzanweisung für die Tabelle (S81). Dann wird der von der Tabelle verwendete Speicherdatenbereich von der DB-Adress-Blockadress-Umwandlungstabelle 27 angefordert und dann die Speichervorrichtung 3A angewiesen, eine Paaraussetzung (Pairsuspend) durchzuführen (S82). Als Reaktion auf diese Anweisung stopt die Kopierquellenspeichervorrichtung 3A (s. 1) die Kopie des instruierten Speicherdatenbereichs (S83).
  • Dann führt die Kopierzielspeichervorrichtung 3C (s. 1) unter Verwendung des Protokolls, welches die von dem Protokollspeicherdatenbereich erhaltene Tabelle betrifft, einen Wiederherstellungsvorgang zur Aufzeichnung im Aktualisierungsvorgang durch (S84). Der erwähnte Wiederherstellungsvorgang ist ähnlich zu dem Abbruchvorgang in der Datenbank, der in 12 beschrieben ist, und kennzeichnet am derartigen Vorgang, dass die aufgezeichneten Inhalte einer Transaktion, wo eine COMMIT-Anweisung nicht ausgeführt worden ist, in den Originalzustand zurückgeführt werden, sodass die Daten in dem Aktualisierungsvorgang nicht verbleiben sollen. Dies bedeutet, dass in diesem Vorgang die Ausführung eines Anweisungssatzes nacheinander unter Verwendung der Daten (entsprechend L1G von 3B) vor der Aktualisierung im Protokollspeicherdatenbereich gespeichert worden sind, zurückverfolgt werden, sodass die Inhalte in den Zustand zurückkehren (zurückgesetzt werden), der sogleich nach der Ausführung der letzten durchgeführten COMMIT-Ausführung erzeugt worden ist.
  • Bei dem Rücksetzvorgang in der Kopierzielspeichervorrichtung 3C wird ein Schreibprozess durchgeführt, der die Daten vor der Aktualisierung verwendet, um die aufgezeichneten Inhalte wiederherzustellen. Damit ändern sich die Daten der Kopierzielspeichervorrichtung 3C im Verarbeitungsablauf in einigen Fällen. Damit wird auch in der Kopierzielspeichervorrichtung 3C, ähnlich wie im Fall der Kopierquellenspeichervorrichtung 3A, die Schreibposition nach einem Suspend-Zustand (Aussetzzustand) in der Unterschieds-Bitmap aufgezeichnet. Weiterhin wird auch die Schreibposition im durchgeführten Schreibprozess beim Rücksetzvorgang auch in der Unterschieds-Bitmap aufgezeichnet.
  • Weiterhin wird im vorliegenden Ausführungsbeispiel angenommen, dass der Wiederherstellungsvorgang durch den Kopierziel-Host 2B (s. 1) durchgeführt wird. Jedoch können die Kopierzielspeichervorrichtungen 3C und 3D die Funktion haben, die Datenbank so zu bedienen, dass ein Wiederherstellungsvorgang durchgeführt wird.
  • Dann prüft der DB-Server 21, ob irgendeine andere Tabelle im Rahmen einer Fernkopie zurückbleibt, oder nicht (S85). Wenn keine derartige Tabelle vorliegt („Nein" bei S85) wird auch im Protokollspeicherdatenbereich ein Paaraussetzvorgang durchgeführt (S86). Damit ist der Vorgang abgeschlossen. Wenn eine solche Tabelle zurückbleibt („Ja” bei S85) liefert der DB-Server 21 keine Aussetzanweisung und der Vorgang wird in einem Zustand abgeschlossen, in dem die Fernkopie des Protokollspeicherdatenbereichs durch die Speichervorrichtungen 3A und 3C fortgeführt wird.
  • 14 ist ein Diagramm, welches einen Vorgang zeigt, der im Falle eines Fehlerstops der Fernkopie durchgeführt wird.
  • Bei diesem Vorgang wird zuerst geprüft, ob sich irgendein Speicherdatenbereich unter denen, die die Tabelle bilden, sich in einem Fehlerstop befinden, oder nicht (S91). Wenn kein derartiger Speicherdatenbereich vorliegt („Nein" bei S91), wird der Vorgang direkt abgeschlossen. Wenn sich irgendein Speicherdatenbereich in einem Fehlerstop („Ja” bei S91) befindet, wird eine Paaraussetzanweisung durchgeführt für alle die Speicherdatenbereiche, die die Tabelle bilden (S92). Dann führt die Kopierzielspeichervorrichtung 3C einen Wiederherstellungsvorgang unter Verwendung des Protokolls im Protokollspeicherdatenbereich durch (S93). Damit ist der Vorgang abgeschlossen. Der Wiederherstellungsvorgang, wie er hier durchgeführt wird, ist ähnlich dem oben beschriebenen.
  • Somit definiert der Host-Computer 2A gemäß dem ersten Ausführungsbeispiel eine Paarbildung zwischen der ersten Speichervorrichtung 3A, die als Kopierquelle dient und der zweiten Speichervorrichtung 3C, die als Kopierziel dient, entsprechend einer vorher bereitgestellten Anweisung, dann erzeugt er eine Umwandlungstabelle 27 zur Durchführung einer Adressumwandlung von einer Tabelle und einem Protokoll der Datenbank, die als Definitionsobjekt des gebildeten Paars zu einem Speicherdatenbereich dient, entsprechend der Tabelle und dem Protokoll in der ersten Speichervorrichtung 3A, und weist dann die erste Speichervorrichtung 3A an, eine definierte Paarbildung durchzuführen, unter Verwendung der erzeugten Umwandlungstabelle 27. Auf diese Instruktion vom Host-Computer 2A erzeugt die erste Speichervorrichtung 3A in der Paarzustandsverwaltungstabelle 48 das Paarverhältnis zwischen der Kopierquelle und dem Kopierziel.
  • Entsprechend dieser Konfiguration wird als Antwort auf die Instruktion vom Host 2A eine Paarbildung zwischen der Kopierquellenspeichervorrichtung 3A und der Kopierzielspeichervorrichtung 3C ausgeführt, sodass das Fernkopieren möglich wird.
  • Entsprechend dem ersten Ausführungsbeispiel aktualisiert die erste Speichervorrichtung 3A abhängig von dem Paarbildungszustand der Tabelle und des Protokolls die Paarzustandsverwaltungstabelle 48 und führt eine Datenfernkopie der Kopierquelle in die zweite Speichervorrichtung 3C durch, die als Kopierziel dient.
  • Diese Konfiguration erlaubt die Ausführung einer Fernkopie zwischen der Kopierquellenspeichervorrichtung 3A und der Kopierzielspeichervorrichtung 3C.
  • Gemäß dem ersten Ausführungsbeispiel ordnet der Host 2A und die erste Speichervorrichtung 3A erneut einen Speicherdatenbereich korrespondierend zur Tabelle zu, wenn der Datenumfang der Tabelle anwächst, und definiert dann in der Paarzustandsverwaltungstabelle 48 eine Paarbildung eines erneut zugeordneten Datenbereichs und führt dann eine Datenfernkopie des Kopierobjekts in die zweite Speichervorrichtung 3C durch, die als Kopierziel dient.
  • Diese Konfiguration erlaubt dem Fernkopiersystem 1, einen Umfangszuwachs in der Tabelle der Datenbank automatisch zu bearbeiten.
  • Gemäß dem ersten Ausführungsbeispiel setzt die zweite Speichervorrichtung 3C ein Bit in die Unterschieds-Bitmap, welches einen Unterschied zwischen Daten der betreffenden zweiten Speichervorrichtung 3C und der ersten Speichervorrichtung 3A bezüglich zugehöriger, wiederhergestellter Daten kennzeichnet, in einem Fall, bei dem die Fernkopie einer Tabelle, die als Host-Computer 2A gekennzeichnet ist, ausgesetzt wird und die veränderten Daten durch eine unvollständige Transaktion wiederhergestellt wurden, unter Verwendung der Protokollinformation der zugehörigen Tabelle.
  • Diese Konfiguration ermöglicht, dass das Fernkopieren in einen wiederaufnehmbaren Zustand ausgesetzt wird.
  • Entsprechend dem ersten Ausführungsbeispiel, welches die gebildete Unterschieds-Bitmap verwendet, realisiert die erste Speichervorrichtung 3A in der zweiten Speichervorrichtung 3C eine Datenaktualisierung, die nach dem Aussetzen der Fernkopie durchgeführt wurde, und nimmt dann das Fernkopieren der gekennzeichneten Tabelle wieder auf.
  • Entsprechend dieser Konfiguration wird eine Änderung, die in der Kopierquelle während des Aussetzens durchgeführt wurde, im Kopierziel realisiert und dann die ausgesetzte Fernkopie wieder hergestellt.
  • Gemäß dem ersten Ausführungsbeispiel prüft die erste Speichervorrichtung 3A außerdem den Paarzustand des Speicherdatenbereichs, der dem Protokoll und der Tabelle zugeordnet ist. Dann, wenn der Speicherdatenbereich zu dem Protokoll und der Tabelle verdoppelt ist, gibt die Vorrichtung diesen Zustand zurück. Wenn der Speicherdatenbereich entsprechend dem Protokoll und der Tabelle kein verdoppeltes Objekt ist, gibt die Vorrichtung diesen Zustand zurück. Wenn die Verdoppelung des Speicherdatenbereichs entsprechend dem Protokoll und der Tabelle ausgesetzt ist, gibt die Vorrichtung diesen Zustand zurück. Weiterhin, wenn der Speicherdatenbereich entsprechend dem Protokoll und der Tabelle sich in einer vorbereitenden Stufe zur Durchführung einer Kopie zur Verdoppelung befindet, gibt die Vorrichtung diesen Zustand zurück.
  • Diese Konfiguration ermöglicht den Zustand der Fernkopie zu bestimmen, wenn dies notwendig ist.
  • Diese Konfiguration erlaubt einen Fernkopierbetrieb zur Bearbeitung der Daten, die in einer speziellen Anwendung behandelt werden, was beim Stand der Technik nicht einfach war. Speziell, wenn Fernkopieren einer Datenbank tabellenweise durchgeführt wird, ist eine Feineinstellung für die Verdoppelung möglich. Außerdem wird die Einstellung nicht in einer Betriebssystemebene des Computers vorgenommen, sondern durch Verwendung von Anweisungssätzen, die der SQL-Sprache des Datenbankverwaltungssystems zugefügt sind. Dadurch kann sogar ein Datenbankadministrator, der unerfahren ist im Betrieb eines Computers, das Verdoppeln einrichten und ausführen.
  • Weiterhin führt die Speichervorrichtung die Fernkopie aus. Somit ist das Fernkopieren fast ohne Belastung des Host durchführbar. Entsprechend wird die Verdoppelung ohne Verringerung der Verarbeitungsgeschwindigkeit des Host erreicht. Dies ermöglicht den Aufbau eines stabilen und zuverlässigen Systems.
  • Zweites Ausführungsbeispiel
  • 15 ist ein Diagramm, welches den Gesamtaufbau zeigt, der ein Fernkopiersystem gemäß einem zweiten Ausführungsbeispiel umfasst. Ein Merkmal des zweiten Ausführungsbeispiels, welches von dem ersten Ausführungsbeispiel abweicht, ist dass die Hosts 102A und 102B das Fernkopieren durchführen, anstelle der Speichervorrichtungen 103A und 103B. Andererseits schließt die Gesamtanordnung ein Fernkopiersystem 10 ein, welches annähernd das Gleiche ist, wie das des ersten Ausführungsbeispiels. Jedoch ist im Gegensatz zum ersten Ausführungsbeispiel der Kopierziel-Host 102B eine unverzichtbare Komponente. Die Speichervorrichtung 103A im zweiten Ausführungsbeispiel muss von dem Typ sein, der das Fernkopieren unterstützt.
  • Wie in 15 gezeigt, umfasst das Fernkopiersystem 10 einen Kopierquellen-Host 102A, die Kopierquellenspeichervorrichtung 103A, den Kopierziel-Host 102B und die Kopierzielspeichervorrichtung 103B. Der Kopierquellen-Host 102A und der Kopierziel-Host 102B schließen jeweils DB-Server 105A und 105B sowie Volumenmanager 106A und 106B ein. Die Speichervorrichtungen 103A und 103B enthalten jeweils Speicherplattenvorrichtungen 104A und 104B. Die Anzahl der Speicherplattenvorrichtungen, die in den Speichervorrichtungen 103A und 103B enthalten sind, ist nicht begrenzt und kann beliebig sein.
  • Im Gegensatz zum ersten Ausführungsbeispiel, wo die Speichervorrichtungen 3A, 3B, 3C und 3D ein Fernkopierprogramm und eine Paarzustandsverwaltungstabelle aufbewahren, sind das Programm und die Tabelle in den Volumenmanagern 106A und 106B der Hosts 102A und 102B im vorliegenden Ausführungsbeispiel enthalten. Die weiteren Punkte beim Grundbetrieb und der Konfiguration sind fast die gleichen, wie die des ersten Ausführungsbeispiels. Daher werden unter schiedliche Punkte gegenüber dem ersten Ausführungsbeispiel in der nachfolgenden Beschreibung herausgestellt.
  • Im zweiten Ausführungsbeispiel wird das Fernkopieren erreicht, wenn eine Zugriffsanweisung, ausgegeben vom Volumenmanager 106A zur Speichervorrichtung 103A, ausgeführt wird, und wenn die gleiche Zugriffsanweisung vom Volumenmanager 106A des Kopierquellen-Host 102A zum Kopierziel-Host 102B übertragen worden ist.
  • Beispielsweise, wenn der Kopierquellen-Host 102A eine SCSI-Schreibanweisung als Zugriffsanweisung zur Speichervorrichtung 103A ausgibt, überträgt der Volumenmanager 106A die SCSI-Anweisung zur Speichervorrichtung 103A und gleichzeitig die gleiche Zugriffsanweisung auch zu dem Kopierzielvolumenmanager 106B. Dann überträgt der Kopierzielvolumenmanager 106B die empfangene Zugriffsanweisung unverändert zur Speichervorrichtung 103B oder alternativ eine Anweisung zu der Speichervorrichtung 103B nach einer Umwandlung der empfangenen Anweisung entsprechend gemäß der Situation des Speicherdatenbereichs der Kopierzielspeichervorrichtung 103B. Als Ergebnis wird, wenn keine Umwandlung durchgeführt wird, eine Verdopplung an der exakt gleichen Adresse in der Kopierquelle und im Kopierziel durchgeführt. Weiterhin, wenn eine Umwandlung durchgeführt wurde, wird ebenso eine Verdopplung durchgeführt, obwohl die Speicheradresse zwischen der Kopierquelle und dem Kopierziel unterschiedlich ist.
  • Das vorliegende Ausführungsbeispiel wurde für den Fall beschrieben, bei dem die Volumenmanager 106A und 106E die Initiative zur Durchführung der Fernkopie übernehmen. Jedoch kann auch ein File-System die Initiative übernehmen. In diesem Fall umfasst das File-System einen Mechanismus zur Durchführung des Fernkopierens, einen Mechanismus zur Verwaltung eines gekennzeichneten Bereichs (entsprechend einem Block) im File und den Daten, entsprechend der Paarzustandsverwaltungstabelle.
  • Demgemäß, entsprechend dem zweiten Ausführungsbeispiel, wird eine Blockverdoppelung mittels Fernkopie entsprechend der Tabelle der Datenbank erreicht, sogar wenn Speichervorrichtungen verwendet werden, die nicht mit einem speziellen Mechanismus versehen sind. Weiterhin können Hosts, die aus einem gewöhnlichen Computer bestehen, verwendet werden, um so ein kostengünstiges Fernkopiersystem aufzubauen.
  • Die Ausführungsbeispiele der Erfindung können abgewandelt werden, ohne vom Schutzumfang der Erfindung abzuweichen, wie dieser in den Ansprüchen gekennzeichnet ist.

Claims (20)

  1. Fernkopiersystem (1) mit einem Host-Computer (2A) und einer ersten Speichervorrichtung (3A), in der eine Datenaktualisierung für den Host-Computer durchgeführt wird, wobei der Host-Computer entsprechend einer vorab gegebenen Anweisung eine Paarbildung zwischen der ersten Speichervorrichtung (3A), die als Kopierquelle dient, und einer zweiten Speichervorrichtung (3C), die als Kopierziel dient, festlegt, dadurch gekennzeichnet, dass der Host-Computer einen Datenbankserver (21) aufweist und eingerichtet ist, den Datenbankserver zu betreiben und mehrere Tabellen und eine Umwandlungstabelle (27) zu verwalten, die beide im Datenbankserver (21) enthalten sind und von denen die Umwandlungstabelle (27) Beziehungen zwischen den Tabellen und Orten von Datenbereichen in der ersten Speichervorrichtung (3A) für die Tabellen speichert, wenn eine mindestens eine der Tabellen bezeichnende Fernkopieranweisung empfangen wird: die genannten Tabelle zu bezeichnen, entsprechend der Umwandlungstabelle (27) Orte von Datenbereichen in der ersten Speichervorrichtung (3A) für die bezeichnete Tabelle und ein von der bezeichneten Tabelle verwendetes Protokoll zu gewinnen und die erste Speichervorrichtung (3A) anzuweisen, einen Fernkopiervorgang des Datenbereichs der Orte der bezeichneten Tabelle und des Protokolls auszuführen, weiterhin dadurch gekennzeichnet, dass die erste Speichervorrichtung (3A) eingerichtet ist, den Fernkopiervorgang von der ersten Speichervorrichtung (3A) zur zweiten Speichervorrichtung (3C) für den Datenbereich der genannten Orte auszuführen, und in Antwort darauf, dass der Host-Computer (2A), der die Fernkopieranweisung erhalten hat, die genannte Tabelle bezeichnet, in einer Paarzustandsverwaltungstabelle (48) die festgelegte Paarbeziehung zwischen der Kopierquelle und dem Kopierziel zu erzeugen.
  2. System nach Anspruch 1, wobei die erste Speichervorrichtung (3A) die Paarzustandsverwaltungstabelle (48) in Abhängigkeit vom Paarbildungszustand der genannten Tabelle und des Protokolls aktualisiert.
  3. System nach Anspruch 2, wobei die erste Speichervorrichtung (3A) dann, wenn die Menge der Daten der genannten Tabelle anwächst, einen der Tabelle entsprechenden Datenbereich neu zuordnet, in der Paarzustandsverwaltungstabelle (48) eine Paarbildung für den neu zugeordneten Datenbereich festlegt und dann einen Fernkopiervorgang von Daten des Kopierobjekts in die als Kopierziel dienende zweite Speichervorrichtung (3C) ausführt.
  4. System nach Anspruch 3, wobei die zweite Speichervorrichtung (3C) dann, wenn ein Fernkopiervorgang einer vom Host-Computer (2A) bezeichneten Tabelle angehalten wird und Daten, die in einer unvollendeten Transaktion geändert wurden, unter Verwendung von Informationen des Protokolls der betreffenden Tabelle wiederhergestellt werden, ein Bit in einer Unterschieds-Bitmap setzt, das einen Unterschied zwischen Daten der betreffenden zweiten Speichervorrichtung und der ersten Speichervorrichtung für die betreffenden wiederhergestellten Daten anzeigt.
  5. System nach Anspruch 4, wobei die erste Speichervorrichtung (3A) in der zweiten Speichervorrichtung (3C) eine nach dem Halten des Fernkopiervorgangs ausgeführte Datenaktualisierung bewirkt, indem die gebildete Unterschieds-Bitmap verwendet wird, und dann den Fernkopiervorgang der bezeichneten Tabelle wieder aufnimmt.
  6. System nach Anspruch 5, wobei die erste Speichervorrichtung (3A) einen Paarzustand für den dem Protokoll und der genannten Tabelle entsprechenden Datenbereich prüft, wobei sie seinen jeweiligen Zustand für den jeweiligen Fall zurückgibt, wie beispielsweise, dass der dem Protokoll und der Tabelle entsprechende Datenbereich verdoppelt ist, dass der dem Protokoll und der Tabelle entsprechende Datenbereich kein Verdopplungsobjekt ist, dass eine Verdopplung des dem Protokoll und der Tabelle entsprechenden Datenbereichs angehalten ist und dass sich der dem Protokoll und der Tabelle entsprechende Datenbereich in einem Vorbereitungszustand zur Ausführung eines Kopiervorgangs für die Verdopplung befindet.
  7. System nach Anspruch 6, wobei die erste Speichervorrichtung (3A) im Fall, dass die Tabelle des Aktualisierungsobjekts kein geschütztes Objekt ist, und andererseits im Fall, dass die Tabelle ein geschütztes Objekt ist und eine Verdopplung nicht angehalten ist, in Antwort auf eine Anweisung zum Bewirken einer Aktualisierung eine Aktualisierung des Datenbereichs bewirkt.
  8. System nach Anspruch 6, wobei die erste Speichervorrichtung (3A) im Fall, dass die Tabelle des Aktualisierungsobjekts ein geschütztes Objekt ist und eine Verdopplung angehalten ist, in Antwort auf eine Anweisung zum Wiederherstellen einer Aktualisierung einen Wiederherstellungsprozess für den Datenbereich unter Verwendung eines Protokolls ausführt.
  9. System nach Anspruch 6, wobei die erste Speichervorrichtung (3A) dann, wenn in einem Teilbereich ein Fehler auftritt, eine Verdopplung für alle anderen von der Tabelle verwendeten Bereiche anhält und für den Datenbereich einen Wiederherstellungsprozess unter Verwendung von Informationen eines Protokolls in der als Kopierziel dienenden zweiten Speichervorrichtung (3C) ausführt.
  10. System nach Anspruch 6, wobei die erste Speichervorrichtung (3A) im Fall, dass die Tabelle des Aktualisierungsobjekts kein geschütztes Objekt ist oder die Tabelle ein geschütztes Objekt ist, wobei eine Verdopplung nicht angehalten ist, in Antwort auf eine Anweisung zum Bewirken einer Aktualisierung eine Aktualisierung des Datenbereichs bewirkt und andererseits die erste Vorrichtung (3A) im Fall, dass die Tabelle des Aktualisierungsobjekts ein geschütztes Objekt ist und eine Verdopplung angehalten ist, in Antwort auf eine Anweisung zum Wiederherstellen einer Aktualisierung einen Wiederherstellungsprozess für den Datenbereich unter Verwendung von Informationen des Protokolls ausführt, und außerdem dann, wenn ein Fehler in einem Teilbereich darin auftritt, die erste Speichervorrichtung (3A) eine Verdopplung für alle anderen von der Tabelle verwendeten Bereiche anhält und die zweite Speichervorrichtung (3C) einen Wiederherstellungsprozess für den Datenbereich unter Verwendung der Informationen des Protokolls ausführt.
  11. Verfahren zur Verwendung in einem Fernkopiervorgang, der von einem Fernkopiersystem (1) ausgeführt wird, das einen Host-Computer (2A) und eine erste Speichervorrichtung (3A) aufweist, in der von und zum Host-Computer eine Datenaktualisierung ausgeführt wird, wobei der Host-Computer folgenden Schritt ausführt: Festlegen einer Paarbildung zwischen der als Kopierquelle dienenden ersten Speichervorrichtung und einer als Kopierziel dienenden zweiten Speichervorrichtung (3C) entsprechend einer vorab gegebenen Anweisung, dadurch gekennzeichnet, dass der Host-Computer einen Datenbankserver (21) aufweist und folgende weitere Schritte ausführt: Betreiben des Datenbankservers (21) und Verwalten mehrerer Tabellen sowie einer Umwandlungstabelle (27), die beide im Datenbankserver (21) enthalten sind und von denen die Umwandlungstabelle (27) Beziehungen zwischen den Tabellen und Orten von Datenbereichen in der ersten Speichervorrichtung (3A) speichert, die von den Tabellen verwendet werden, und wenn eine mindestens eine der Tabellen bezeichnende Fernkopieranweisung empfangen wird: Bezeichnen der genannten Tabelle, Gewinnen von Orten von Speicherbereichen in der ersten Speichervorrichtung (3A) für die bezeichnete Tabelle und ein von der bezeichneten Tabelle verwendetes Protokoll gemäß der Umwandlungstabelle (27), und Anweisen der ersten Speichervorrichtung (3A), einen Fernkopiervorgang für den Datenbereich der Orte der bezeichneten Tabelle und des Protokolls auszuführen, und dadurch, dass die erste Speichervorrichtung (3A) den Fernkopiervorgang von der ersten Speichervorrichtung (3A) zur zweiten Speichervorrichtung (3C) für den Datenbereich der genannten Orte ausführt und in Antwort darauf, dass der Host-Computer (2A), der die Fernkopieranweisung empfangen hat, die genannte Tabelle bezeichnet, in einer Paarzustandsverwaltungstabelle (48) die festgelegte Paarbeziehung zwischen der Kopierquelle und dem Kopierziel erzeugt.
  12. Verfahren nach Anspruch 11, wobei die erste Speichervorrichtung (3A) außerdem folgende Schritte ausführt: Aktualisieren der Paarzustandsverwaltungstabelle (48) in Abhängigkeit vom Paarbildungszustand der genannten Tabelle und des Protokolls.
  13. Verfahren nach Anspruch 12, wobei die erste Speichervorrichtung (3A) dann, wenn die Datenmenge der genannten Tabelle zunimmt, außerdem folgende Schritte ausführt: neues Zuordnen eines der Tabelle entsprechenden Datenbereichs, Festlegen einer Paarbildung für den neu zugeordneten Datenbereich in der Paarzustandsverwaltungstabelle (48) und Ausführen eines Fernkopiervorgangs für Daten eines Kopierobjekts in die als Kopierziel dienende zweite Speichervorrichtung (3C).
  14. Verfahren nach Anspruch 13, wobei die zweite Speichervorrichtung (3C) einen Schritt zum Anhalten eines Fernkopiervorgangs einer vom Host-Computer bezeichneten Tabelle im Fall, dass Daten, die in einer unvollständigen Transaktion geändert wurden, unter Verwendung von Informationen des Protokolls der betreffenden Tabelle wiederhergestellt werden, und die Vorrichtung außerdem einen Schritt zum Setzen eines Bits in einer Unterschieds-Bitmap ausführt, das einen Unterschied zwischen Daten der betreffenden zweiten Speichervorrichtung und der ersten Speichervorrichtung (3A) für die betreffenden wiederhergestellten Daten anzeigt.
  15. Verfahren nach Anspruch 14, wobei die erste Speichervorrichtung (3A) außerdem folgende Schritte ausführt: Bewirken einer nach dem Anhalten des Fernkopiervorgangs ausgeführten Datenaktualisierung in der zweiten Speichervorrichtung (3C) unter Verwendung der gebildeten Unterschieds-Bitmap, und Wiederaufnehmen des Fernkopiervorgangs der bezeichneten Tabelle.
  16. Verfahren nach Anspruch 15, wobei die erste Speichervorrichtung (3A) außerdem einen Schritt zum Prüfen des Paarzustands des dem Protokoll und der Tabelle entsprechenden Datenbereichs ausführt, die Vorrichtung einen Schritt zum Zurückgeben ihres Zustands im Fall, dass der dem Protokoll und der Tabelle entsprechende Datenbereich verdoppelt wurde, ausführt, die Vorrichtung einen Schritt zum Zurückgeben ihres Zustands im Fall, dass der dem Protokoll und der Tabelle entsprechende Datenbereich kein Verdopplungsobjekt ist, ausführt, die Vorrichtung einen Schritt zum Zurückgeben ihres Zustands im Fall, dass eine Verdopplung des dem Protokoll und der Tabelle entsprechenden Datenbereichs angehalten ist, ausführt, und die Vorrichtung einen Schritt zum Zurückgeben ihres Zustands in Fall, dass sich der dem Protokoll und der Tabelle entsprechende Datenbereich im Vorbereitungszustand zur Ausführung eines Kopiervorgangs zur Verdopplung befindet.
  17. Verfahren nach Anspruch 16, wobei im Fall, dass die Tabelle des Aktualisierungsobjekts kein geschütztes Objekt ist, und andererseits im Fall, dass die Tabelle ein geschütztes Objekt ist und die Verdopplung nicht angehalten ist, die erste Speichervorrichtung (3A) in Antwort auf eine Anweisung zum Bewirken einer Aktualisierung außerdem einen Schritt zum Bewirken der Aktualisierung des Datenbereichs ausführt.
  18. Verfahren nach Anspruch 16, wobei im Fall, dass die Tabelle des Aktualisierungsobjekts ein geschütztes Objekt ist und die Verdopplung angehalten ist, die erste Speichervorrichtung (3A) in Antwort auf eine Anweisung zum Wiederherstellen einer Aktualisierung außerdem einen Schritt zum Ausführen eines Wiederherstellungsprozesses für den Datenbereich unter Verwendung der Informationen aus dem Protokoll ausführt.
  19. Verfahren nach Anspruch 16, wobei dann, wenn in einem Teilbereich ein Fehler auftritt, die erste Speichervorrichtung (3A) außerdem einen Schritt zum Anhalten einer Verdopplung für alle anderen von der Tabelle verwendeten Speicherbereiche ausführt und außerdem die als Kopierziel dienende zweite Speichervorrichtung (3C) einen Schritt zum Ausführen eines Wiederherstellungsprozesses für den Datenbereich unter Verwendung der Informationen des Protokolls ausführt.
  20. Verfahren nach Anspruch 16, wobei im Fall, dass die Tabelle des Aktualisierungsobjekts kein geschütztes Objekt ist und andererseits im Fall, dass die Tabelle ein geschütztes Objekt ist und eine Verdopplung nicht angehalten ist, die erste Speicher vorrichtung (3A) in Antwort auf eine Anweisung zum Bewirken einer Aktualisierung außerdem einen Schritt zum Bewirken einer Aktualisierung des Datenbereichs ausführt, und, im Fall, dass die Tabelle eines Aktualisierungsobjekts ein geschütztes Objekt ist und dass eine Verdopplung angehalten ist, die erste Speichervorrichtung (3A) in Antwort auf eine Anweisung zum Wiederherstellen einer Aktualisierung außerdem einen Schritt zur Ausführung eines Wiederherstellungsprozesses für den Datenbereich unter Verwendung der Informationen des Protokolls ausführt, und die erste Speichervorrichtung (3A) außerdem einen Schritt zum Anhalten einer Verdopplung für alle anderen von der Tabelle verwendeten Bereiche ausführt, wenn in einem Teilbereich ein Fehler aufgetreten ist, während die zweite Speichervorrichtung (3C) außerdem einen Schritt zur Ausführung eines Wiederherstellungsprozesses für den Datenbereich unter Verwendung der Informationen des Protokolls ausführt.
DE602005002024T 2005-04-13 2005-10-03 Fernkopiersystem und Fernkopierverfahren Expired - Fee Related DE602005002024T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005116083 2005-04-13
JP2005116083A JP2006293850A (ja) 2005-04-13 2005-04-13 リモートコピーシステムおよびリモートコピー方法

Publications (2)

Publication Number Publication Date
DE602005002024D1 DE602005002024D1 (de) 2007-09-27
DE602005002024T2 true DE602005002024T2 (de) 2008-05-08

Family

ID=35539574

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005002024T Expired - Fee Related DE602005002024T2 (de) 2005-04-13 2005-10-03 Fernkopiersystem und Fernkopierverfahren

Country Status (4)

Country Link
US (1) US20060236049A1 (de)
EP (2) EP1826674A1 (de)
JP (1) JP2006293850A (de)
DE (1) DE602005002024T2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7784098B1 (en) * 2005-07-14 2010-08-24 Trend Micro, Inc. Snapshot and restore technique for computer system recovery
US8161548B1 (en) 2005-08-15 2012-04-17 Trend Micro, Inc. Malware detection using pattern classification
JP2007066154A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd データをコピーして複数の記憶装置に格納するストレージシステム
US8117099B1 (en) * 2006-05-15 2012-02-14 Sprint Communications Company L.P. Billing systems conversions
JP5057366B2 (ja) 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
JP5042644B2 (ja) * 2007-01-24 2012-10-03 株式会社日立製作所 リモートコピーシステム
US20080294705A1 (en) * 2007-05-24 2008-11-27 Jens Brauckhoff Performance Improvement with Mapped Files
JP4400653B2 (ja) * 2007-06-11 2010-01-20 株式会社日立製作所 情報システム、および、情報システムの情報保存方法
US8990527B1 (en) * 2007-06-29 2015-03-24 Emc Corporation Data migration with source device reuse
WO2009019772A1 (ja) * 2007-08-08 2009-02-12 Fujitsu Limited 記憶部制御装置,データ処理装置,記憶部制御システム,及び記憶部制御プログラム
US8452730B2 (en) * 2007-12-12 2013-05-28 Teradata Us, Inc. Archiving method and system
JP5194962B2 (ja) * 2008-04-03 2013-05-08 富士通株式会社 データ処理方法、ストレージ装置およびストレージシステム
JP5365128B2 (ja) * 2008-10-03 2013-12-11 富士通株式会社 一括登録されるデータに係る情報システム、方法、およびプログラム
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
US8751767B2 (en) 2009-04-23 2014-06-10 Hitachi, Ltd. Computer system and its control method
US20120278553A1 (en) * 2011-04-28 2012-11-01 Mudhiganti Devender R System and method for migration of data clones
US9294546B2 (en) * 2011-06-03 2016-03-22 Apple Inc. Sending files from one device to another device over a network
US11196806B2 (en) * 2016-04-25 2021-12-07 Hitachi, Ltd. Method and apparatus for replicating data between storage systems
US10528279B2 (en) * 2016-09-15 2020-01-07 Hitachi, Ltd. Storage management server, method of controlling storage management server, and computer system
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
KR0128271B1 (ko) 1994-02-22 1998-04-15 윌리암 티. 엘리스 재해회복을 위한 일관성 그룹 형성방법 및 레코드갱싱의 섀도잉 방법, 주시스템, 원격데이타 섀도잉 시스템과 비동기 원격데이타 복제 시스템
JP3552505B2 (ja) 1997-11-25 2004-08-11 松下電器産業株式会社 磁気記録再生装置
DE69938378T2 (de) * 1998-08-20 2009-04-30 Hitachi, Ltd. Kopieren von Daten in Speichersystemen
JP3726559B2 (ja) * 1999-06-01 2005-12-14 株式会社日立製作所 ダイレクトバックアップ方法および記憶装置システム
JP4282030B2 (ja) * 1999-06-03 2009-06-17 株式会社日立製作所 データ二重化制御方法および二重化した記憶サブシステム
JP2002358222A (ja) * 2001-06-04 2002-12-13 Hitachi Ltd データ二重化システム及び方法
JP2003162378A (ja) * 2001-11-26 2003-06-06 Hitachi Ltd データ複写方法
JP3957278B2 (ja) * 2002-04-23 2007-08-15 株式会社日立製作所 ファイル転送方法およびシステム
JP4393762B2 (ja) * 2002-12-19 2010-01-06 株式会社日立製作所 データベース処理方法及び装置並びにその処理プログラム
JP2004334574A (ja) 2003-05-08 2004-11-25 Hitachi Ltd ストレージの運用管理プログラム、運用管理方法及び管理計算機
JP2005062928A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 複数のサイトにリモートコピーを行うシステム
JP2005157712A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd リモートコピーネットワーク
JP4575762B2 (ja) * 2004-06-03 2010-11-04 株式会社日立製作所 データ処理方法および装置並びにストレージ装置およびその処理プログラム
JP2006119745A (ja) * 2004-10-19 2006-05-11 Hitachi Ltd コンピュータシステム及びコンピュータシステムの制御方法

Also Published As

Publication number Publication date
EP1712998B1 (de) 2007-08-15
US20060236049A1 (en) 2006-10-19
DE602005002024D1 (de) 2007-09-27
EP1712998A1 (de) 2006-10-18
JP2006293850A (ja) 2006-10-26
EP1826674A1 (de) 2007-08-29

Similar Documents

Publication Publication Date Title
DE602005002024T2 (de) Fernkopiersystem und Fernkopierverfahren
DE60317383T2 (de) Datenwiederherstellungsvorrichtung unter Verwendung von Journaldaten und Identifikationsinformation
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
DE4497149B4 (de) Computerbezogenes Verfahren zur Datenreplikation in Peer-to-Peer-Umgebung
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE60038364T2 (de) Computersystem und Speicherauszugsdatenverwaltungsverfahren
DE602005001041T2 (de) Speicherauszugssystem
DE68927142T2 (de) Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE69730449T2 (de) Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten
DE112018003084B4 (de) Asynchrones lokales und entfernt angeordnetes erzeugen von konsistenten zeitpunkt-momentkopien in konsistenzgruppen
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE60224598T2 (de) Umkehr eines Kommunikationspfades zwischen Speichergeräten
DE602004011181T2 (de) Speicherplattenanordnungsgerät
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE602004006084T2 (de) Fernkopiersystem mit garantierter Konsistenz eines Daten-Paares
DE69119222T2 (de) Datensicherung und Beseitigung in einem Datenverarbeitungssystem
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69116065T2 (de) Datenrückgewinnung in massenspeicherdatenbanksystemen
DE60018872T2 (de) System und Methode für das Löschen von Datenbank-Aktualisierungsbilddateien nach Abschluss der dazugehörigen Transaktionen
DE602004008808T2 (de) Verfahren und vorrichtung zur durchführung von operationen an gewählten daten in einem speicherbereich
DE3908459C2 (de) Netzwerkserver
DE69920713T2 (de) Datei-system bild-übertragung
DE3689664T2 (de) Verfahren und Gerät zur Verwaltung von veralteten Datenobjekten.

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: IWAMURA, TAKASHIGE, TOKYO 100-8220, JP

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee