JP4283576B2 - トランザクション同期方法、データベースシステム及びデータベース装置 - Google Patents

トランザクション同期方法、データベースシステム及びデータベース装置 Download PDF

Info

Publication number
JP4283576B2
JP4283576B2 JP2003087773A JP2003087773A JP4283576B2 JP 4283576 B2 JP4283576 B2 JP 4283576B2 JP 2003087773 A JP2003087773 A JP 2003087773A JP 2003087773 A JP2003087773 A JP 2003087773A JP 4283576 B2 JP4283576 B2 JP 4283576B2
Authority
JP
Japan
Prior art keywords
query
computer system
transaction
server
transferred
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
JP2003087773A
Other languages
English (en)
Other versions
JP2004295540A5 (ja
JP2004295540A (ja
Inventor
芳生 鈴木
真二 藤原
恒彦 馬場
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
Priority to JP2003087773A priority Critical patent/JP4283576B2/ja
Priority to US10/637,556 priority patent/US7181479B2/en
Publication of JP2004295540A publication Critical patent/JP2004295540A/ja
Publication of JP2004295540A5 publication Critical patent/JP2004295540A5/ja
Priority to US11/647,201 priority patent/US7593974B2/en
Application granted granted Critical
Publication of JP4283576B2 publication Critical patent/JP4283576B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/2097Error 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 maintaining the standby controller/processing unit updated
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • 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/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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/953Organization of data
    • Y10S707/959Network
    • 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
    • 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
    • Y10S707/99953Recoverability
    • 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
    • Y10S707/99955Archiving or backup

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

【0001】
【発明が属する技術分野】
本発明は、データベースシステムに関し、特に、データベースシステム間のトランザクションの転送制御に関する。
【0002】
【従来の技術】
ビジネスにおいて、ITシステムの重要性はますます高まっている。例えば、金融業界では、ITシステムが停止する障害によって、数千億ドルの損失が生じるといわれている。よって、計算機システムを、正サイトと副サイトとに二重化して、正サイトに障害が発生した時には副サイト系に切り替えて、サービスを継続させるためのHA技術(High Availability技術)が重要となっている。
【0003】
システム障害の原因には、システムエラー、人為的操作ミス、停電など様々であるが、大規模災害においてもサービスやITシステムの復旧を迅速に行うD/R(Disaster Recover)技術が注目されている。D/R技術では、正サイトと副サイトとに二重化された計算機システム間でデータのコピーを行うことにより、データ保護を図っており、データ保護、すなわち、データ欠損がないことが最も重要な要件である。さらに、大規模災害に対応するために、副サイトをより遠隔地に構築したいという要求が高まっている。
【0004】
従来のD/Rシステムの構成を図16に示す。
【0005】
従来のD/Rシステム (Disaster Recover system)は、正サイト100と遠隔地にある副サイト110とから構成されている。正サイト100ではデータの記録、検索等の業務を行う。一方、副サイト110は正サイト100と同一の内容を記憶しており、正サイト100のバックアップサイトとしての役割を果たす。
【0006】
各サイト100、110は、DBMS103を含むサーバ101及びストレージ(DB)102によって構成され、両サイト100、110は、サーバ間ネットワーク122及び/又はストレージ間ネットワーク121で接続される。
【0007】
正サイト100は、クライアント130(UAP(user application))から入力を受け付け、結果をDB(Database)102に反映する。UAPからの入力は、通常、トランザクションとして認識される。ここで、トランザクションは、DBMS(database management system)に対する標準言語であるSQLを用いた複数の問い合わせから構成される。問い合わせは、挿入(Insert)、更新(Update)、コミット(Commit)などいくつかの種類がある。トランザクションに含まれる問い合わせがコミットないで場合は、問い合わせの結果は、正サイト100のサーバ101のDBMS103内のバッファに記録されるだけである。そしてコミットが実行されて初めて、一連の問い合わせの結果がストレージ102に反映され、トランザクションが確定する。正サイト100は、トランザクション及びトランザクション処理結果であるデータ(DBMSのテーブル等)を、何らかのタイミングで副サイト101に転送しておく。障害が発生した場合は、系を切り替え、バックアップサイトであった副サイト101が業務を引き継いで実行する。
【0008】
従来より、サイト間のトランザクションの転送には、サーバ間ネットワーク121を用いたコピーが行われてきたが、近年は、ストレージ間ネットワーク122によるコピーも用いられるようになっている。これは、コピー時にサーバへの負荷がないこと、ストレージはサーバより信頼性が高いためである(例えば、非特許文献1参照。)。
【0009】
このコピーには、サーバ間、ストレージ間に関わらず、同期コピーと非同期コピーとがある。
【0010】
正サイト100から副サイト110への同期コピーでは、正サイトのサーバ101が同期コピーを指示すると、データは正サイトに接続されるストレージ(正)102のディスクキャッシュに書き込まれる。続いて、ストレージ(正)102は、副サイト110のストレージ(副)102のディスクキャッシュにコピーを行う。さらに、ストレージ(正)102は、ストレージ(副)102からのデータ受信の応答を受けると、転送元のサーバ101へ同期コピー完了の応答を返す。コミットに同期して副サイト110へ同期コピーを行うことによって、データ欠損がないデータコピーが実現される。しかし、同期コピーでは、ストレージ(副)102からの応答を待つ遅延が生じるため、サイト間距離が長距離となる場合には、この遅延が問題となる。
【0011】
一方、非同期コピーを用いた場合は、ストレージ(正)102のディスクキャッシュにデータが書き込まれた時点で、転送元のサーバ101へ応答が返され、ストレージ(副)102へのコピーは別のタイミングで行われる。コピーの遅延はないが、転送元サーバ101に応答が返った時点で、データが副サイト110にコピーされていることが保障されず、データ欠損が生じる可能性がある。
【0012】
この非同期コピーと同期コピーとを組み合わせた中間的な方法として、非同期コピーの完了確認のためのコマンドを有し、同期が不要な場合は非同期コピーを行うが、同期が必要になった時点で該コマンドを実行し、非同期コピー完了が確認されるまで、以降の処理を中断することにより、データ欠損がないことを実現する方法が提案されている(例えば、特許文献1参照。)。
【0013】
D/Rシステムでは、障害発生時に副サイト110において、DBの整合性確認などの回復処理を行った後、副サイト110で業務を継続する。まず、非同期コピーを用いた場合は、データ欠損が生じるため、完全な回復を行うことができない。一方、同期コピーを用いた場合であっても、障害発見後に初めて回復処理を開始するような場合は、多大な回復時間を要する可能性がある。例えば、長期間隔で行われるフルバックアップのコピーと、フルバックアップからの増分バックアップのコピーを利用した回復が行う場合があげられる。すなわち、そのような回復処理では、最初にフルバックアップをリストアした後、増分バックアップのコピーを順次適用していくため、バックアップのサイズ、個数によっては、回復処理に多大な時間を要する。
【0014】
【特許文献1】
特開2002−49517号公報
【非特許文献1】
”EMC Symmetrix Remote Data Facility”、[online]、インターネット<URL:http://japan.emc.com/local/ja/JP/products/product_pdfs/srdf/srdf.pdf>
【0015】
【発明が解決しようとする課題】
以上説明した従来のD/Rシステムでは、以下の問題点がある。
【0016】
トランザクション欠損なしを実現しようとした場合、同期コピーを用いる方法が一般的であるが、特にサイト間距離が長い場合は、同期コピーの完了待ちによる遅延が問題となる。非同期コピーを用いた場合は、遅延は生じないが、トランザクションが副サイトへコピーされたことを保障できなくなる。すなわちトランザクション欠損なしが実現できない。
【0017】
また、非同期コピーを用いた場合は、トランザクション欠損が生じることがあり、障害が発生した場合に、完全な回復は行えない。同期コピーを用いた場合であっても、障害回復後に初めて回復処理をスタートし、フルバックアップに対し更新差分(増分バックアップ)を適用していく回復方法では、多大な処理時間を要するため、迅速に業務を回復することができない。
【0018】
よって、サイト間距離が長距離である場合に、トランザクション処理性能への影響を最小限にしながらトランザクション欠損なしのD/Rシステムを実現することが望まれている。
【0019】
また、サイト間距離が長距離であるD/Rシステムにおいて、障害発生後の迅速な回復を実現することが望まれている。
【0020】
【課題を解決するための手段】
本発明のトランザクション同期方法は、計算装置及びストレージ装置を有する第1情報処理装置と、計算装置及びストレージ装置を有する第2情報処理装置との間で、1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、前記第1情報処理装置は、クエリを実行する際に、該クエリが前記第2情報処理装置へ転送されているか否かを判定し、該クエリが既に転送されている場合は、該クエリを実行し、該クエリが未転送である場合は、該クエリが前記ストレージ装置の記憶内容への反映を伴うコミット処理であるときには、受け付けたクエリのうち未転送のクエリを前記第2情報処理装置に一括して転送(例えば、同期コピー)する。
【0021】
また、クエリを実行する際に未転送のクエリを一括して転送(例えば、同期コピー)する第1の転送方法に加え、受け付けたクエリを所定のタイミングで監視し、未転送のクエリがある場合は、前記未転送のクエリを、前記第2情報処理装置に一括して転送(例えば、同期コピー又は非同期コピー)する第2の転送方法によってクエリを転送する。
【0022】
また、前記第1情報処理装置は、前記コミット処理の実行情報が、前記第2情報処理装置に転送されたか否かを管理し、前記コミット処理の実行後に、該コミット処理の実行情報が前記第2情報処理装置に転送されていない場合は、受け付けたクエリのうち、前記実行情報が未転送のクエリに関する実行情報を、前記第2情報処理装置に一括して転送(例えば、非同期コピー)する。
【0023】
また、計算装置及びストレージ装置を有する第1情報処理装置と、計算装置及びストレージ装置を有する第2情報処理装置との間で、1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、前記第1情報処理装置は、コミット処理を実行する際に、該コミット処理が未転送である場合は、受け付けたクエリのうち未転送のクエリを、前記第2情報処理装置に一括して転送し、前記第2情報処理装置は、前記第1情報処理装置から転送されたクエリより前に転送されたクエリは、前記第1情報処理装置で既に実行されたと判定し、該判定されたクエリを実行する。
【0024】
また、計算装置及びストレージ装置を有する第1情報処理装置と、計算装置及びストレージ装置を有する第2情報処理装置との間で、1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、前記第2情報処理装置は、前記第1情報処理装置から転送されたクエリを受信し、前記転送されたクエリの範囲を記録し、当該の転送範囲及び直前の転送範囲に含まれるクエリを調査し、該直前の転送範囲内で、ストレージ装置の記憶内容へ反映を伴うコミット処理が行われていないトランザクションに関する情報を回復用の情報として記録する。
【0025】
また、計算装置及びストレージ装置を有する第1情報処理装置と、計算装置及びストレージ装置を有する第2情報処理装置との間で、1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、前記第2情報処理装置は、前記第1情報処理装置から転送されたクエリを受信して、障害回復用の情報を生成し、前記第1情報処理装置の障害を検知すると、前記第1情報処理装置からの直前の転送範囲内で、ストレージ装置の記憶内容への反映を伴うコミット処理が行われていないトランザクションについては、当該トランザクションの開始前の状態に戻すロールバック処理の対象として、前記回復用情報から削除し、前記第1情報処理装置からの直前の転送範囲内で、ストレージ装置の記憶内容への反映が行われているトランザクションは、前記回復用情報に記憶する。
【0026】
【発明の作用及び効果】
本発明のトランザクション同期方法では、第1情報処理装置は、クエリを実行する際に、該クエリが第2情報処理装置へ転送されているか否かを判定し、該クエリが既に転送されている場合は、該クエリを実行し、該クエリが未転送である場合は、該クエリが前記ストレージ装置の記憶内容への反映を伴うコミット処理であるときには、受け付けたクエリのうち未転送のクエリを前記第2情報処理装置に一括して転送するので、コミット処理の実行前に必ず第2情報処理装置側へのクエリの転送が完了していることが保障されているため、遠距離であってもトランザクション処理のスループット性能への影響を抑制しつつ、トランザクション欠損のないD/Rシステムを実現することができる。
【0027】
【発明の実施の形態】
図1は、本発明の実施の形態のD/Rシステムのシステム構成図である。
【0028】
本実施の形態のD/Rシステム (Disaster Recover system)は、正サイト100と遠隔地にある副サイト110とから構成されている。正サイト100では、データの記録、検索等の業務を行う。一方、副サイト110は、正サイト100と同一の内容を記憶しており、正サイト100のバックアップサイトとしての役割を果たす。
【0029】
正サイト100は、DBMS103を含むサーバ101及びストレージ(DB)311によって構成され、副サイト110は、DBMS103を含むサーバ101及びストレージ(DB)323によって構成される。また、両サイト100、110は、サーバ間ネットワーク122及び/又はストレージ間ネットワーク121で接続される。
【0030】
正サイト100は、クライアント130(UAP(userapplication))から入力を受け付け、結果をDB(Database)311に反映する。UAPからの入力は、通常、トランザクションとして認識される。ここで、トランザクションは、DBMS(database managementsystem)に対する標準言語であるSQLを用いた複数の問い合わせから構成される。問い合わせは、挿入(Insert)、更新(Update)、コミット(Commit)などいくつかの種類がある。トランザクションに含まれる問い合わせがコミットないで場合は、問い合わせの結果は、正サイト100のサーバ101のDBMS103内のバッファに記録されるだけである。そしてコミットが実行されて初めて、一連の問い合わせの結果がストレージ311に反映され、トランザクションが確定する。正サイト100は、トランザクション及びトランザクション処理結果であるデータ(DBMSのテーブル等)を、何らかのタイミングで副サイト110に転送しておく。障害が発生した場合は、系を切り替え、バックアップサイトであった副サイト110が業務を引き継いで実行する。
【0031】
DBMS103は、トランザクション管理部(Tr管理部)200を有し、トランザクション管理部200が、正サイト100と副サイトとの間110でトランザクションを転送する。なお、トランザクション管理部200は、DBMS103に備わってなくてもよく、TPモニタなどのソフトウェアによってトランザクション管理部200が、正サイト100、副サイト110間でトランザクションを管理するようにしてもよい。
【0032】
図2は、本発明の第1の実施の形態のトランザクション管理部の構成図である。
【0033】
正サイトのトランザクション管理部300は、トランザクション受付部(Tr受付部)301、トランザクション同期化・実行部(Tr同期化・実行部)302、トランザクションキュー310の3つのソフトウェアコンポーネントより構成される。
【0034】
クライアント(UAP)から入力されたトランザクションは、一度、トランザクションキュー310に記録された後に実行される。トランザクションキュー310では、トランザクションの内容(トランザクションを構成するクエリ)だけでなく、トランザクションの状態(副サイトへのコピーの有無、実行の有無)も管理する。
【0035】
トランザクション受付部301は、入力されたトランザクションを受け付け、トランザクションキュー310へ登録する。
【0036】
トランザクション同期化・実行部302は、トランザクションの実行及びトランザクションのコピーをする。すなわち、トランザクション同期化・実行部302は、トランザクションを構成するクエリをトランザクションキュー310から取り出すと、該クエリを実行する。また、該クエリの状態に応じて、クエリを副サイトのトランザクション管理部320へ転送して、トランザクションをコピーする。
【0037】
すなわち、図5で詳述するように、トランザクションキュー310から取り出したクエリが、副サイトのトランザクション管理部320に既にコピーされていたら、クエリを実行する。このクエリがコミットである場合は、該クエリに関わるトランザクションが確定されたことになり、トランザクションの実行結果がストレージ311に反映される。クエリがコミットでない場合は、トランザクションの実行途中の結果がDBMS103中のDBバッファに記録される。
【0038】
一方、トランザクションキュー310から取り出したクエリが、副サイトのトランザクション管理部320にコピーされていなかったら、トランザクション同期化・実行部302は、副サイトへコピーが必要か否かを判定する。該クエリがコミットでない場合は、コピーを行わず該クエリを直ちに実行する。一方、該クエリがコミットである場合は、副サイトのトランザクション管理部320に対する同期コピーを実行する。ただし、同期コピーの際には、該クエリだけでなく、トランザクションキュー310に記録されている未コピーであるトランザクション情報を一括して同期コピーし、その後にクエリを実行する。従って、トランザクション同期化・実行部302により、コミット前に、必ず該コミットに関連するトランザクション情報が副サイトのトランザクション管理部320に転送され、コピーされるため、トランザクション欠損が生じないことが保障される。
【0039】
副サイトのトランザクション管理部320は、トランザクション受信・実行部321、障害回復部340、トランザクションキュー322及び回復テーブル341によって構成される。トランザクション受信・実行部321は、正サイト100からコピーされたトランザクションを受信し、コミットが確定したトランザクションを実行する。また、正サイト100で障害が発生した場合は、副サイト110では、障害回復処理を実行し、正サイト100で行っていた業務を引き継いで行う。
【0040】
トランザクション受信・実行部321は、トランザクション受信部330とトランザクション実行部331によって構成される。トランザクション受信部330は、正サイトのトランザクション同期化・実行部302と通信を行い、正サイト100から送信されたトランザクションを受信し、トランザクションキュー322へ保存する。トランザクション実行部331は、正サイト100でコミットが実行されたトランザクションを実行する。
【0041】
このとき、トランザクション受信部330は、トランザクション情報のコピー状態(最新の一括同期コピーで送られたかどうか)を管理する。トランザクション実行部は、コピー状態により、トランザクションが正サイトでコミットされているか否かを判断する。既にコミットが実行されていると判断される場合は、該トランザクションのコミットを副サイトでも実行する。一方、正サイトで未だコミットが実行されていないと判断される場合には、必要なトランザクション情報を回復テーブル341に保存する。
【0042】
トランザクション受信・実行部321は、コピーが実行される度に回復テーブル341にコピーが実行されたトランザクション情報を更新する。回復テーブル341へ記録する情報は、正サイト100でのコミットの実行が確定できないトランザクションの情報である。例えば、コミットそのものが投入されていない(コミットを投入される前に、何らかの障害が発生した)場合、及び、コミットは投入されているが、コミットを実行したかどうかが判断できない場合が、コミットが実行されていないトランザクションとして考えられる。
【0043】
本実施の形態では、コミットの実行前に該トランザクションに関する情報をコピーしているため、副サイト110では、そのコピーを受信した時に、正サイト100においてコミットが投入されたことは分かる。しかし、副サイト110では、該コミットが確かに実行されたかを判定することはできない。副サイト110は、該コミットを含むコピーの次のコピーが行われて初めて、該コミットが実行されたことがわかる。すなわち、上述した一括コピーの手順では、正サイト100、副サイト110へトランザクションをコピーした後、該コピーに係るトランザクションを実行する。そして、該コピーに含まれる全てのトランザクションが実行された後、次のコピーを行うので、コピーが行われた(副サイト110でクエリを受信した)ときに、該コピーに含まれるトランザクションは正サイトで全て実行されていると判定できるのである
【0044】
障害回復部340は、正サイト100で障害が発生した際に、副サイト110で業務を引き継ぐために必要な障害回復処理を行う。障害回復部340は、受信したトランザクションについて、正サイト100においてコミットが投入されたが、コミットが実行されたかを判定できないグレートランザクションを調査し、グレーなトランザクションに関係するデータへのアクセスを制限して、限定的に業務を再開する。同時に、グレーなトランザクションを手動回復する。手動回復が完了した時点で、アクセス制限を解除し、完全に業務を再開する。
【0045】
以上説明した、正サイト100から副サイト110へのトランザクションのコピーは、同期コピーを用いるとよいが、同期コピーではなく非同期コピーを用いるようにしてもよい。
【0046】
図3は、本発明の第1の実施の形態の正サイトのトランザクションキュー310の構成例を示す説明図である。
【0047】
トランザクションは一つ又は複数のクエリより構成されるため、クエリ毎にクエリに関する属性をテーブル500に記録する。テーブルには属性として、トランザクションに一意に与えられるトランザクションID、クエリの内容、クエリがコピーされたかどうかを表すコピーフラグ、クエリが実行されたかどうかを表す実行フラグが記録される。このフラグは”ON”、”OFF”、”null”の3種の値を取り得る。
【0048】
また、テーブル500には、3つのポインタを用意する。第1のポインタ(コピーポインタ:PI)501は、最後にコピーされたクエリを指す。つまり、コピーポインタPIの次が、コピーされていないクエリの内、最も古いのクエリである。第2のポインタ(最後尾ポインタ:LI)502は、最後にトランザクションキューに入力されたクエリ(最新のクエリ)を指す。第3のポインタ(実行ポインタ:EI)503は、これから実行処理手順を決定する対象のクエリ(未実行クエリのうち、最も古いクエリ)を指す。
【0049】
図4は、本発明の第1の実施の形態のトランザクション受付部の処理のフローチャートである。
【0050】
正サイトのトランザクション受付部301は、外部よりトランザクション(トランザクションを構成するクエリ)を受付け、登録可能であれば、受け付けたトランザクションをトランザクションキュー310に登録する。登録が行われた場合は、LIポインタが更新される。
【0051】
まず、各ポインタ(PI、EI、LI)を初期化する(ステップ601)。
【0052】
次に、テーブル500の内容を消去して、トランザクションキュー310を初期化する。フラグの初期化時には、フラグの値は”null”に設定される(ステップ602)。
【0053】
次に、クライアント(UAP)からクエリの入力を監視して、クエリの入力あるか否かを判定する(ステップ604)。
【0054】
クエリの入力がある場合には、クエリが登録可能か否かを判定する(ステップ606)。すなわち、既にクエリの情報が登録されているが、実行フラグ、コピーフラグとも”ON”であれば、コピー、実行共に完了しているので、該領域にクエリを上書きしてもよい。また、LI+1が指す領域の実行フラグ、コピーフラグとも”null”である場合には、トランザクションキューに未登録の空きがある。
【0055】
クエリの新規登録が不可能な場合は、クライアント(UAP)に対しクエリの受付ができないことを通知し(ステップ607)、ステップ604へ戻る。
【0056】
一方、クエリの新規登録が可能な場合は、LI+1が指す領域にクエリが属するトランザクションのID、クエリの内容をセットする(ステップ609)。コピーフラグ、実行フラグは共にOFFにセットされる。続いて、ステップ610において、LIポインタを更新(LI=LI+1にインクリメント)し、ステップ604へ戻る。
【0057】
図5は、本発明の第1の実施の形態のトランザクション同期化・実行部の処理のフローチャートである。
【0058】
正サイトのトランザクション同期化・実行部302では、コピー済みのクエリについては、クエリを実行する。一方、未コピークエリに関しては、クエリがコミットでなければ実行し、クエリがコミットである場合は、キュー内の未コピークエリを一括同期コピーする。
【0059】
まず、実行ポインタEIが指す実行処理手順判定の対象のクエリが未実行であるかを判定する(ステップ702)。すなわち、EIが指すクエリが未実行であれば、実行すべきクエリがあることが分かる。
【0060】
実行すべきクエリがない場合は、実行ポインタEIの更新(インクリメント)の可否(すなわち、新たなクエリが入力されたか)を判定する(ステップ704)。EIが更新可能なら、EIを更新し(ステップ706)、ステップ709へ進む。一方、EIが更新不可能なら、ステップ704へ戻る。
【0061】
ステップ702において、EIポインタが指すクエリが未実行であると判定されると、該クエリがコピー済みであるか否かを判定する(ステップ709)。
【0062】
EIポインタが指すクエリが未コピーである場合は、該クエリがコミットであるか否かを判定する(ステップ711)。該クエリがコミットでない場合は、該クエリを実行し、該クエリの実行フラグをONにする(ステップ712)。続いて、EIの更新可否を判定し(ステップ713)、EIが更新可能なら、EIを更新し(ステップ715)、ステップ711へ戻る。一方、EIが更新不可能なら、ステップ702へ戻る。
【0063】
ステップ711において、クエリがコミットであると判定されると、LIポインタの値をレジスタL0(図示せず)へ退避する(ステップ717)。続いて、キュー内の未コピークエリ(PI+1からL0までのクエリ)を全て、一括同期コピーする(ステップ718)。同期コピーの完了後、コピーしたクエリのコピーフラグを全てONにし、PIポインタをL0に更新する(ステップ719)。そして、EIポインタが指すクエリを実行し、該クエリの実行フラグをONにする(ステップ720において)。
【0064】
続いて、EIの更新可否を判定し(ステップ721)、EIが更新可能なら、EIを更新し(ステップ723)、ステップ709へ戻る。一方、EIが更新不可能なら、ステップ702へ戻る。
【0065】
ステップ709において、クエリがコピー済みであると判定されると、ステップ725において、該クエリを実行後、実行フラグをONにする。続いて、ステップ725において、EIの更新可否を判定し(ステップ726)、EIが更新可能なら、EIを更新し(ステップ728)、ステップ708へ戻る。一方、EIが更新不可能なら、ステップ701へ戻る。
【0066】
図6は、第1の実施の形態のコピー時の正サイト100と副サイト110との間のトランザクションキューの動作例を示す説明図である。
【0067】
図6(a)は、2番目のクエリ(EIポインタ804が指すクエリ)を実行するときの、正サイトのトランザクションキュー310、及び、副サイトのトランザクションキュー322の状態を表す。
【0068】
EIポインタ804が指すクエリは、未実行、未コピー、かつ、コミット(C)であるため(図5のステップ711で”y”)、実行前に、キュー内の未コピークエリ(ウィンドウ840に含まれる、PIポインタ802の次からLIポインタ805までのクエリ)は、副サイト110へ一括同期コピーされる(図5のステップ718)。そして、一括コピーが完了すると、正サイト及び副サイトのトランザクションキュー310、322は、図6(a)に示す状態となる。
【0069】
その後、正サイトのトランザクションキュー310では、コピー済みクエリの最後尾を表すPIポインタは、PIポインタが802の位置から803の位置へ更新される。続いて、コピーが完了したクエリのコピーフラグがONにされ(図5のステップ719)、最後に、正サイト100でEIポインタ804が指すクエリ(コミット)が実行され、該クエリの実行フラグがONにされる(図5のステップ720)。
【0070】
図6(b)は、ウィンドウ840内のクエリのコピーを行ってから次のコピーが行われるまでのトランザクションキュー310、322の動作を表す。
【0071】
正サイト100では、任意のタイミングで、クエリが投入されており、図6(b)に示す状態では、新たに4つのクエリが投入され、LIポインタが815の位置へ更新されている。
【0072】
ここで、コピー済みのクエリに対してはクエリの種類にかかわらず実行が可能なため、ウィンドウ840内のクエリ(トランザクションキュー310内の3番目、4番目のクエリ)は、副サイト110との連携を考慮することなく、正サイト100で実行される。また、ウィンドウ841の外であっても、クエリがコミット以外であれば、副サイト110との連携を考慮することなく実行することができる。そのため、トランザクションキュー310内の5番目のクエリ(U:アップデイト)は、次のコピーを行う前に実行される。ただし、クエリがコミットの場合は、コピー後に実行されることになる。
【0073】
図6(c)は、6番目のクエリ(EIポインタ824が指すクエリ)を実行するときのトランザクションキュー310、322の動作例を表す。
【0074】
該6番目のクエリは、未実行、未コピー、かつ、コミットであるため(図5のステップ711で”y”)、クエリの実行前に、キュー内の未コピークエリ(ウィンドウ850に含まれる、PIポインタ803の次からLIポインタ815までのクエリ)は、副サイト110へ一括同期コピーされる(図5のステップ718)。そして、一括コピーが完了すると、正サイト及び副サイトのトランザクションキュー310、322は、図6(c)に示す状態となる。
【0075】
その後、正サイトのトランザクションキュー310では、PIポインタをPIポインタは803の位置から823の位置へ更新され、コピーしたクエリのコピーフラグがONにされ(図5のステップ719)、最後に、正サイト100EI824ポインタが指すクエリが実行され、実行フラグがONにされる(図5のステップ720)。
【0076】
図6(d)は、2回目のコピーを行ってから、3回目のコピーが行われるまでの間のトランザクションキュー310、320の動作を表す。
【0077】
正サイトのトランザクションキュー310では、ウィンドウ850内のクエリはコピー済みであり、その種類に関わらず、副サイト110との連携を考慮することなく実行可能なため、7番目のクエリが実行されている。
【0078】
次に、副サイト110における処理について説明する。
【0079】
図7は、本発明の第1の実施の形態のトランザクション受信部330の処理のフローチャートである。
【0080】
副サイトのトランザクション受信部330では、正サイトのトランザクション同期化・実行部302が送信したトランザクション情報を受信し、トランザクションのコピー状態を管理する。具体的には、トランザクションのコピー状態として、最新のコピーの範囲であるコピーウィンドウ(Wn)と、Wnの直前のコピー範囲であるコピーウィンドウ(Wp)とを管理する。
【0081】
まず、ランザクション受信部330では、Wn、Wpを初期化する(ステップ901)。次に、正サイト100からコピーされるクエリの転送を待つ(ステップ903)。コピーがある場合には、転送されたクエリを受付け、Wn、Wpを更新する(ステップ905)。
【0082】
図8は、本発明の第1の実施の形態のトランザクション実行部331の処理のフローチャートである。
【0083】
トランザクション実行部では、コピーが行われる度に、Wp内のクエリを実行する。このとき、正サイト100でコミットが実行されたか否かを判断し、判断できない場合には、回復テーブルに情報を記録する。
【0084】
まず、直前のコピーウィンドウWp内に未調査のクエリがあるか否かを判定する(ステップ911)。未調査クエリがある場合には、該クエリを取り出し(ステップ914)、該クエリを実行する(ステップ915)。そして、該クエリがコミットであるか否かを判定し(ステップ916)、コミットでない場合には、該クエリが属するトランザクションの情報が回復テーブルに登録されているか否かを判定する(ステップ917)。そして、該クエリが属するトランザクションの情報が回復テーブルに登録されていない場合は、該クエリが属するトランザクションの情報を登録する(ステップ918)。ここで、回復テーブルには、少なくとも、トランザクションのIDが登録される。
【0085】
一方、ステップ917において、該クエリが属するトランザクションの情報が回復テーブルに登録されていると判定された場合は、トランザクション情報(クエリの内容やコピーの時間等)を回復テーブルに追加する(ステップ920)。なお、トランザクションのIDのみを登録する場合には、ステップ920の処理は不要である。
【0086】
ステップ916において、クエリがコミットであると判定された場合は、該コミットが正サイト100側で実行されたことがわかる。なぜなら、Wp内のクエリは最新のコピーによるものではなく、正サイト100が、前回コピーしたクエリを全て実行した後に、クエリのコピーを行うからである。従って、該コミットが属する該トランザクション情報を、回復テーブル341から削除する(ステップ915)。
【0087】
このようにトランザクション実行部331の処理によって、Wp内のクエリは全て実行される。また、正サイト100でコミットが実行されたかどうか判断できないトランザクションに関する情報は、回復テーブル341に記録される。
【0088】
図9は、本発明の第1の実施の形態のコピー時の副サイトのトランザクションキューの動作例を示す説明図であり、図9(a)及び(b)が通常運用時の、図9(c)が障害発生時の、トランザクションキュー322及び回復テーブル341の状態を示す。
【0089】
回復テーブル341には、トランザクション毎に、トランザクションID、フラグ及びトランザクションの内容(クエリ)が記録される。特に重要なのは、トランザクションIDとフラグである。回復テーブルには、コミットが実行されていないトランザクションの情報が含まれているが、そこには、コミットそのものが投入されていない場合と、コミットは投入されているが該コミットの実行までは判断できない(グレー)場合の二つのケースがある。フラグは、この2つを分けて管理するためのもので、後者の場合には、フラグの値を”G”に設定する。
【0090】
トランザクションの内容には、トランザクションに属するクエリの内容を記録する。ただし、クエリの内容はDBMSのトランザクションログにも記録されるため、回復テーブル341への記録を省略することもできる。
【0091】
図9(a)は、1001のウィンドウがコピーされた直後の、副側のトランザクションキュー322と回復テーブル341の状態を表す。副側トランザクションキュー322では、ウィンドウ1000がWp(直前のコピー範囲)、ウィンドウ1001がWn(最新のコピーの範囲)を表す。コピー直後のため、回復テーブル341には何も記録されていない。
【0092】
図9(b)は、トランザクション実行部331が、トランザクションキュー322を調査し、回復テーブル341を更新した直後の、トランザクションキュー322と回復テーブル341の状態を表す。トランザクション実行部331は、ウィンドウ1000を調査し、IDが0、1、2であるトランザクションの情報を回復テーブルに記録する。しかし、IDが0と1のトランザクションについては、直前に受信したウィンドウWpであるウィンドウ1000内にコミットがあるため、正サイト100で既にコミットが実行されたと判断できる。従って、IDが0と1のトランザクションの情報を回復テーブル1021から削除する。その結果、回復テーブル1021には、IDが2のトランザクションの情報のみが記録される。
【0093】
トランザクション実行部331では、コピーが行われる度に、コミットの実行が判断できないトランザクションの情報を更新していく。グレーかどうかの最終的な判断は、障害が発生した後に行われるため、障害発生前はフラグには値は設定されていない。
【0094】
次に、正サイト100で障害が生じた場合は、副サイト110で障害回復を行い業務を引き継ぐ処理について説明する。
【0095】
図10は、本発明の第1の実施の形態の副サイト110での障害回復処理のフローチャートである。
【0096】
障害発生時は、Wnに未調査のクエリが無くなるまで、最初に、グレーな部分の判定を行う(ステップ1214〜1225)。
【0097】
まず、正サイトの障害を検知する(ステップ1201)。例えば、定期的に正サイトと副サイトの間でalive checkの通信を行い、予め定めた期間にalive checkが連続して失敗した場合に障害を検知したとすることができる。
【0098】
次に、最新のコピーの結果であるWn内のクエリを調査し、未調査のクエリがあるか否かを判定する(ステップ1203)。そして、未調査のクエリがあれば、該クエリを取り出し(ステップ1214)、該クエリがコミットかどうかを調査する(ステップ1215)。
【0099】
該クエリがコミットでない場合は、回復テーブル341に該クエリが属するトランザクションに関する情報が既に回復テーブルに記録されているか否かを判定する(ステップ1216)。該トランザクションに関する情報が未登録であると判定された場合は、新規に該トランザクションの情報を回復テーブル341に登録する(ステップ1217)。一方、該トランザクションに関する情報が既に登録されている場合は、回復テーブルの内容部分にクエリの内容を追加登録する(ステップ1219)。
【0100】
ステップ1215において、クエリがコミットであると判定されると、該クエリの実行フラグがONであるか否かが判定される(ステップ1221)。該クエリの実行フラグがONではない場合は、該クエリが属するトランザクションはグレーと判定される。なぜなら、該コミットは最新のコピーであることから、正サイト100で最新のコピー範囲に含まれるコミットは実行されたかを判定できないためである。従って、回復テーブルの該クエリ(コミット)が属するトランザクションに関するフラグを”G”にセットする(ステップ1222)。一方、実行フラグがONである場合は、該コミットの実行が確認されたため、該クエリ(コミットと該トランザクションで未実行であるクエリ)を実行して(ステップ1224)、該クエリが属するトランザクションの情報を回復テーブルから削除する(ステップ1225)。
【0101】
障害検知時の、回復テーブルの動作例を図9(c)に示す。ウィンドウ1000が直前のコピー範囲を表すWpであり、ウィンドウ1001が最新のコピー範囲を表すWnである。Wn1001を調査した結果、IDが2のトランザクションに関しては、クエリの内容(U、C)が追加される。また、Wn1001内にコミット(C)があり、かつ、実行フラグがONでないため、IDが2のトランザクションのコミット(C)は正サイト100で実行されているかが分からないので、該トランザクションはグレーと判定され、フラグが”G”にセットされる。一方、新たなトランザクションとして、IDが3、4のトランザクションが登録されるが、これらはWn1001内にコミットが含まれていないため、フラグの値はセットされない。
【0102】
次に、図10に戻って、副サイトでの業務再開のための回復処理(ステップ1204〜1213)について説明する。
【0103】
ステップ1203においてWn内の調査が終了が確認されると、まず、回復テーブルにおいてフラグが”G”でない(コミットが投入されていない)トランザクションをロールバックして、該トランザクションの開始以前の状態に戻す(ステップ1204)。
【0104】
続いて、回復テーブル341中でフラグが”G”であるトランザクション、すなわち、コミットの実行が判断できないグレーなトランザクションを特定する。そして、該トランザクションが使用したリソースを調査し、該リソースへのアクセスが拒否されるようなアクセス制限を設定する(ステップ1205)。例えば、DMBSのテーブルの特定の行やセルに排他ロックをかけてアクセスを制限する。
【0105】
次に、正サイト100から副サイト110に系を切り替え、副サイト110においてアクセス制限つきで限定的に業務を再開する(ステップ1206)。
【0106】
次にステップ1208以降で、グレーなトランザクションの回復処理を行う。まず、グレーなトランザクションを全て回復したか否かを判定する(ステップ1208)。グレーなトランザクションを回復が終了しておらず、グレーなトランザクションがある場合は、グレーなトランザクションの手動で回復する(ステップ1209)。例えば、該トランザクションを発行した企業やユーザに問い合わせることによって手動回復をする。そして、手動回復完了したら、該トランザクションが使用していたリソースに対するアクセス制限を解除する(ステップ1210)。一方、グレートランザクションを回復が全て完了した場合、完全な業務を再開する(ステップ1212)。
【0107】
以上説明した副サイトの処理(図7〜図10)では、第2情報処理装置である副サイト110は、第1情報処理装置である正サイト100から転送されたクエリを受信し、障害回復用の情報を生成し(図8のステップ918、920)、正サイト100の障害を検知すると(図10のステップ1201)、正サイト100からの直前の転送範囲Wp内で、ストレージ装置311の記憶内容への反映が行われていないトランザクションについては、該トランザクション開始前の状態に戻すロールバック処理の対象とし、前記回復用情報から削除し(図10のステップ1224)、正サイト100からの直前の転送範囲Wp内で、ストレージ装置311の記憶内容への反映が行われているトランザクションについては、前記回復用情報に追加する(図10のステップ1217、1219)。よって、正サイト100からの直前の転送範囲Wp内で、ストレージ装置311の記憶内容へ反映するコミット処理が行われているトランザクションについては、前記回復用情報に追加する(図10のステップ1222)ことで、手動回復対象とすることができる。
【0108】
以上説明した第1の実施の形態では、正、副サイト内のDBMSにトランザクションキュー300、320を設け、クライアント130から入力されたトランザクション情報は、一旦、トランザクションキュー300に保存され、正サイト100において、トランザクションをコミットする際には、トランザクションキュー内にある未コピークエリを副サイト110へ一括して同期コピーを行い、コミット前に副サイト110へのコピーが完了していることが保障されているため、遠距離であってもトランザクション欠損のないD/Rシステムを実現することができる。
【0109】
すなわち、正サイト100は未転送のクエリの実行時に、受け付けたクエリのうち未転送のクエリを転送し、副サイト110は、正サイト100からクエリを受信するので、正サイト100から転送されたクエリより前に転送されたクエリは、正サイト100で既に実行されたと判定することができ、該判定されたクエリを実行して、正サイト100と副サイト110とのトランザクションの同期を図ることができる。
【0110】
また、コピー時には、トランザクションキュー310内の未コピートランザクションを一括コピーするため、コピーの頻度を下げることができ、遠距離であってもトランザクション処理のスループット性能を維持することができる。
【0111】
また、副サイト110は、コピーされたトランザクションの順序関係から、正サイト100でコミットが実行されているかどうかを判断し、コミット済みと判断できる場合は、障害発生前から順次実行しておく。傷害発生時には、コミット済みか判断不能なトランザクションのみを手動回復対象とする。判断が不能なトランザクションが関連するリソースに対してはアクセスを制限し、限定的に業務を再開するので、副サイト110では、正サイト100でのトランザクションのコミット実行を完全に把握することはできないが、転送されたトランザクションを、コミットが実行されたトランザクション、コミットが実行されたかも知れないトランザクションに切り分けることが可能である。従って、障害後の回復作業においては、コミットされたかもしれないトランザクションだけに範囲を限定することができる。
【0112】
また、副サイト110では、コミット済みのトランザクションについては、順次実行していくことにより、正サイト100側での変更が準リアルタイムで反映させていくことが可能である。したがって、正サイト100で障害が発生し、副サイト110に系が切り替わる場合にも、データ反映のほとんどが完了しており、迅速な業務再開が可能となる。
【0113】
また、障害発生時は、グレーな部分のみアクセスを制限することによって、限定的な業務を再開することが可能となる。
【0114】
次に、本発明の第2の実施の形態について説明する。
【0115】
図11は、本発明の第2の実施の形態のトランザクション管理部の別な構成図である。図11に示す実施の形態では、正サイトのトランザクション管理部300に、ポーリング部400が設けられている。
【0116】
ポーリング部400は、トランザクションキューを(例えば、定期的に)監視しており、未コピーのクエリを一括コピーする。
【0117】
ポーリング部400によって、トランザクション同期化・実行部302でトランザクションキュー310よりクエリを取り出した際に、コピー済みである場合が増えるため、副サイトへのトランザクションのコピーによるトランザクション処理性能への影響を小さくすることができる。トランザクション同期化・実行部302では、トランザクションキュー310から取り出したクエリが未コピーであれば、前述した第1の実施の形態(図2)と同様の処理を行う。
【0118】
図12は、本発明の第2の実施の形態のポーリング部の処理のフローチャートである。
【0119】
正サイトのポーリング部400が、トランザクションのコピーを定期的に実行するため、トランザクション同期化・実行部302の処理において、クエリの実行時に、該クエリがコピー済みである場合が増えるため、正サイトのトランザクション処理への影響を小さくすることができる。
【0120】
まず、タイマを初期化(リセット)する(ステップ1101)。
【0121】
次に、予め定めたΔTを経過しているか否かを判定する(ステップ1103)。
【0122】
ΔTを経過している場合は、トランザクションキュー310内に未コピーのクエリがあるか否かを判定する(ステップ1105)。
【0123】
未コピークエリがある場合には、キュー内の未コピークエリを一括コピーする(ステップ1107〜1110)。この一括コピーでは、まず、キューの最後備を表すLIポインタの値をL0に退避し(ステップ1107)、未コピーであるPI+1〜L0のクエリを一括コピーする(ステップ1108)。コピーの完了後、クエリのコピーフラグをONにし、コピー済みクエリの最後尾を表すPIポインタをL0で更新する(ステップ1109)。最後にタイマをリセットし(ステップ1110)、ステップ1103へ戻る。
【0124】
なお、この一括コピー(ステップ1107〜1110)は、同期コピー又は非同期のどちらでもよく、非同期コピーの場合には、コピーの完了を待たずに、ステップ1109において、クエリのコピーフラグをONにし、コピー済みクエリの最後尾を表すPIポインタを更新することができる。
【0125】
図13は、本発明の第2の実施の形態のトランザクション同期化・実行部の処理のフローチャートである。
【0126】
ポーリング部400による非同期コピーが行われない場合のトランザクション同期化・実行部の処理(図5)と、ステップ1301において相違する。すなわちステップ725においてコピー済みのクエリを実行する前に、非同期コピーが完了しているかが確認される(ステップ1301)。非同期コピーの完了を確認してから、コピー済みのクエリが実行される(ステップ725)。これらの処理によって、ポーリング部400で非同期コピーを用いた場合でも、正サイト100におけるコミットの実行前に、副サイト110へのコピーが完了していることを保障させることできる。
【0127】
なお、正サイトのポーリング部400で、非同期コピーではなく、同期コピーを用いると、コピーの度にコピーの完了を確認するので、ステップ1301のようなクエリ実行前の非同期コピーの完了確認は不要となる。
【0128】
次に、本発明の第3の実施の形態について説明する。
【0129】
本発明では、正サイト100から副サイト110へのクエリの同期コピーが実施されるのは、クエリの実行前であるため、クエリの実行状況は副サイト110に伝わらない。しかし、実行が終了した時点で、実行状況もコピーすることによって、副サイト110にクエリの実行状況を反映させることもできる。
【0130】
図14は、本発明の第3の実施の形態のトランザクション同期化・実行部の処理のフローチャートである。
【0131】
前述した第1の実施の形態のトランザクション同期化・実行部の処理(図5)と、ステップ1500、1501、1502、1503、1504において相違する。すなわち、クエリの実行(ステップ720)の直後に、実行状況の通知を行う(ステップ1500)。ただし、トランザクション処理性能への影響を最小限とするために、非同期コピーを用いる。なぜなら、コミット前の同期コピーはトランザクション欠損をなくすためには確実性が必要であるのに対し、グレー判定容易化のための実行状況の通知は確実性が低くてもよいためである。
【0132】
第3の実施の形態においては、クエリの実行状況を通知するため、トランザクションキュー310、322を、図15に示すように、実行状況コピーの有無を示すコピーフラグ2(1401)を追加して構成する。非同期コピーによって実行状況を通知した時点で、このコピーフラグ2(1401)の値をONにする。
【0133】
具体的には、クエリがコミットである場合(ステップ711)、該クエリを実行(ステップ720)した後、コピーフラグ2がONでない(実行状況が未コピーである)クエリを一括して非同期コピーする(ステップ1500)。そして、コピーしたクエリのコピーフラグ2をONにする(ステップ1501)。
【0134】
また、クエリがコピー済みである場合(ステップ709)、コピー済みクエリを実行(ステップ725)した後に、該クエリがコミットかどうかを判定し(ステップ1502)、該クエリがコミットである場合には、実行状況が未通知であるクエリを一括して非同期コピーする(ステップ1503)。そして、コピーしたクエリのコピーフラグ2をONにする(ステップ1504)。
【0135】
このように第3の実施の形態では、正サイト100から副サイト110へ、クエリの実行状況を通知することによって、障害発生時の副サイトでのグレー判断処理を容易化することができる。すなわち、Wn内のコミットであっても、トランザクションの実行を確認することができ、グレーと判定され手動回復に頼らなければならない範囲を狭めることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のD/Rシステムのシステム構成図である。
【図2】本発明の第1の実施の形態のトランザクション管理部の構成図である。
【図3】本発明の第1の実施の形態の正サイトのトランザクションキュー310の説明図である。
【図4】本発明の第1の実施の形態のトランザクション受付部の処理のフローチャートである。
【図5】本発明の第1の実施の形態のトランザクション同期化・実行部の処理のフローチャートである。
【図6】本発明の第1の実施の形態のコピー時の正サイト100と副サイト110との間のトランザクションキューの説明図である。
【図7】本発明の第1の実施の形態のトランザクション受信部330の処理のフローチャートである。
【図8】本発明の第1の実施の形態のトランザクション実行部331の処理のフローチャートである。
【図9】本発明の第1の実施の形態のコピー時の副サイトのトランザクションキューの動作例を示す説明図であり
【図10】本発明の第1の実施の形態の副サイト110での障害回復処理のフローチャートである。
【図11】本発明の第2の実施の形態のトランザクション管理部の別な構成図である。
【図12】本発明の第2の実施の形態のポーリング部の処理のフローチャートである。
【図13】本発明の第2の実施の形態のトランザクション同期化・実行部の処理のフローチャートである。
【図14】本発明の第3の実施の形態のトランザクション同期化・実行部の処理のフローチャートである。
【図15】本発明の第3の実施の形態の正サイトのトランザクションキュー310の説明図である。
【図16】従来のD/Rシステムのシステム構成図である。
【符号の説明】
100 情報処理装置(正サイト)
101 サーバ
102 ストレージ
103 DBMS(database management system)
110 情報処理装置(副サイト)
121 ストレージ間ネットワーク
122 サーバ間ネットワーク
130 クライアント(UAP)
300 トランザクション管理部(正サイト)
301 トランザクション受付部(正サイト)
302 トランザクション同期化・実行部(正サイト)
305 未コピートランザクション(一括同期コピー)
306 コピー済みトランザクション(実行)
310 トランザクションキュー(正サイト)
311 ストレージ(正サイト)
320 トランザクション管理部(副サイト)
321 トランザクション受信・実行部(副サイト)
322 トランザクションキュー(副サイト)
323 ストレージ(副サイト)
330 トランザクション受信部
331 トランザクション実行部
340 障害回復部
341 回復テーブル
400 ポーリング部
401 未コピートランザクション(一括同期/非同期コピー)

Claims (18)

  1. サーバ及びストレージ装置を有する第1計算機システムと、サーバ及びストレージ装置を有する第2計算機システムとの間で、それぞれが1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、
    前記第1計算機システムが受け付けたクエリを順次実行するステップを有し、
    前記第1計算機システムは、前記受け付けられたクエリによって構成されるトランザクションを記録するトランザクションキューを備え、
    前記トランザクションキューには、前記トランザクションを構成するクエリが前記第2計算機システムに転送されたか否かを示す情報が記録され、
    前記トランザクション同期方法は、
    前記第1計算機システムのサーバが、クエリを実行しようとする際に、前記トランザクションキューに記録された情報に基づいて、該クエリが前記第2計算機システムへ転送されているか否かを判定し、
    前記第1計算機システムのサーバが、該クエリが既に転送されていると判定した場合は、該クエリを実行し、
    前記第1計算機システムのサーバが、該クエリが未転送であると判定した場合は、該クエリが前記ストレージ装置の記憶内容への反映を伴うコミット処理であるときには、受け付けたクエリのうち未転送のクエリを前記第2計算機システムに一括して転送し、その後に前記実行しようとするクエリを実行することを特徴とするトランザクション同期方法。
  2. 前記第1計算機システムのサーバが、前記実行しようとするクエリが前記第2計算機システムに未転送であると判定した場合でも、該クエリがコミット処理以外であれば、直ちに該クエリを実行することを特徴とする請求項1に記載のトランザクション同期方法。
  3. 前記クエリは、前記サーバ間を接続するネットワークを介して転送されることを特徴とする請求項1に記載のトランザクション同期方法。
  4. 前記クエリは、前記ストレージ装置間を接続するネットワークを介して転送されることを特徴とする請求項1に記載のトランザクション同期方法。
  5. 前記コミット処理であるクエリを実行しようとする際の一括転送に加えて、
    前記第1計算機システムのサーバが、前記受け付けたクエリを所定のタイミングで監視し、前記トランザクションキューに未転送のクエリがある場合は、その未転送のクエリを、前記第2計算機システムに一括して転送する追加ステップを更に有することを特徴とする請求項1に記載のトランザクション同期方法。
  6. 前記追加ステップの転送によって前記第1計算機システムから第2計算機システムへのクエリの非同期コピーが成され、
    前記第1計算機システムのサーバが、前記非同期コピーの完了を確認した後に、前記コミット処理を実行することを特徴とする請求項5に記載のトランザクション同期方法。
  7. 前記トランザクションキューには、前記コミット処理の実行情報が、前記第2計算機システムに転送されたか否かを管理する情報が含まれ
    前記コミット処理の実行後に、該コミット処理の実行情報が前記第2計算機システムに転送されていない場合は、前記第1計算機システムのサーバが、前記受け付けたクエリのうち、前記実行情報が未転送のクエリに関する実行情報を、前記第2計算機システムに一括して転送することを特徴とする請求項1に記載のトランザクション同期方法。
  8. サーバ及びストレージ装置を有する第1計算機システムと、サーバ及びストレージ装置を有する第2計算機システムとの間で、それぞれが1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、
    前記第1計算機システムは、前記受け付けられたクエリによって構成されるトランザクションを記録するトランザクションキューを備え、
    前記トランザクションキューには、前記トランザクションを構成するクエリが前記第2計算機システムに転送されたか否かを示す情報が記録され、
    前記第1計算機システムのサーバが、コミット処理を実行しようとする際に、前記トランザクションキューに記録された情報に基づいて該コミット処理が未転送であると判定された場合は、受け付けたクエリのうち未転送のクエリを前記第2計算機システムに一括して転送し、その後に前記コミット処理を実行し、
    前記第2計算機システムのサーバが、前記第1計算機システムから一括して転送されたクエリを受信したとき、前回に転送されたクエリは、前記第1計算機システムで既に実行されたと判定し、該判定されたクエリを実行することを特徴とするトランザクション同期方法。
  9. サーバ及びストレージ装置を有する第1計算機システムと、サーバ及びストレージ装置を有する第2計算機システムとの間で、それぞれが1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、
    前記第2計算機システムのサーバが、前記第1計算機システムから転送されたクエリを受信し、
    前記第2計算機システムのサーバが、前記転送されたクエリの範囲を記録し、
    前記第2計算機システムのサーバが、当該の転送範囲及び直前の転送範囲に含まれるクエリを調査し、
    前記第2計算機システムのサーバが、該直前の転送範囲内で、ストレージ装置の記憶内容へ反映を伴うコミット処理が行われていないトランザクションに関する情報を回復用の情報として記録することを特徴とするトランザクション同期方法。
  10. サーバ及びストレージ装置を有する第1計算機システムと、サーバ及びストレージ装置を有する第2計算機システムとの間で、それぞれが1又は2以上のクエリから構成されるトランザクションを同期化するトランザクション同期方法であって、
    前記第2計算機システムのサーバが、前記第1計算機システムから転送されたクエリを受信して、障害回復用の情報を生成し、
    前記第2計算機システムのサーバが、前記第1計算機システムの障害を検知すると、
    前記第2計算機システムのサーバが、前記第1計算機システムからの直前の転送範囲内で、前記ストレージ装置の記憶内容への反映を伴うコミット処理が行われていないトランザクション、当該トランザクションの開始前の状態に戻すロールバック処理の対象として、前記回復用情報から削除し、
    前記第2計算機システムのサーバが、前記第1計算機システムからの直前の転送範囲内で、前記ストレージ装置の記憶内容への反映が行われているトランザクション、前記回復用情報に記憶することを特徴とするトランザクション同期方法。
  11. 前記第2計算機システムのサーバが、前記第1計算機システムからの直前の転送範囲内の最新のコピー範囲のトランザクション情報の調査が完了すると、
    前記第2計算機システムのサーバが、ロールバック処理の対象となったトランザクションについて、ロールバック処理を行い、
    前記第2計算機システムのサーバが、前記回復用情報に記憶されたトランザクションが使用するストレージ装置の記憶内容についてのアクセスを制限し、
    前記第2計算機システムのサーバが、前記第2計算機システムにおいて、投入されるトランザクションの処理を開始することを特徴とする請求項10に記載のトランザクション同期方法。
  12. 前記第2計算機システムのサーバが、前記アクセスが制限されたストレージ装置の記憶内容についての回復処理が完了した後に、該記憶内容のアクセス制限を解除することを特徴とする請求項11に記載のトランザクション同期方法。
  13. サーバ及びストレージ装置を有する第1計算機システムと、サーバ及びストレージ装置を有する第2計算機システムと、前記第1計算機システムと前記第2計算機システムとを接続する通信回線とから構成されるデータベースシステムにおいて、
    前記第1計算機システムは、
    前記第1計算機システムが受け付けたクエリによって構成されるトランザクションが、前記トランザクションを構成するクエリが前記第2計算機システムに転送されたか否かを示す情報とともに記録されるトランザクションキューと、
    クエリを実行する際に、前記トランザクションキューに記録された情報に基づいて、該クエリが前記第2計算機システムへ転送されているか否かを判定するクエリ転送判定手段と、
    該クエリが既に転送されている場合は、該クエリを実行するクエリ実行手段と、
    該クエリが未転送である場合は、該クエリが前記ストレージ装置の記憶内容への反映を伴うコミット処理であるときには、受け付けたクエリのうち未転送のクエリを、前記第2計算機システムに一括して転送するクエリ転送手段とを備えることを特徴とするデータベースシステム。
  14. 前記クエリ転送手段は、
    受け付けたクエリを所定のタイミングで監視し、
    未転送のクエリがある場合は、前記未転送のクエリを、前記第2計算機システムに一括して転送することを特徴とする請求項13に記載のデータベースシステム。
  15. 前記第1計算機システムは、
    前記コミット処理の実行情報が、前記第2計算機システムに転送されたか否かを管理する転送管理手段を備え、
    前記クエリ転送手段は、前記コミット処理の実行後に、該コミット処理の実行情報が前記第2計算機システムに転送されていない場合は、受け付けたクエリのうち、前記実行情報が未転送のクエリに関する実行情報を、前記第2計算機システムに一括して転送することを特徴とする請求項13に記載のデータベースシステム。
  16. 前記第2計算機システムは、前記第1計算機システムから一括して転送されたクエリを受信したとき、前回に転送されたクエリは、前記第1計算機システムで既に実行されたと判定し、該判定されたクエリを実行するクエリ実行手段を備えることを特徴とする請求項13に記載のデータベースシステム。
  17. 前記第2計算機システムは、
    前記第1計算機システムから転送されたクエリを受信して、障害回復用の情報を生成する回復用情報生成手段と、
    前記第1計算機システムの障害を検知すると、
    前記第1計算機システムからの直前の転送範囲内で、ストレージ装置の記憶内容への反映を伴うコミット処理が行われていないトランザクションについては、当該トランザクションの開始前の状態に戻すロールバック処理の対象として、前記回復用情報から削除し、
    前記第1計算機システムからの直前の転送範囲内で、ストレージ装置の記憶内容への反映が行われているトランザクションは、前記回復用情報に記憶する障害回復処理手段と、を備えることを特徴とする請求項13に記載のデータベースシステム。
  18. 前記障害回復処理手段は、
    前記直前の転送範囲内の最新のコピー範囲のトランザクション情報の調査が完了すると、
    ロールバック処理の対象となったトランザクションについて、ロールバック処理を行い、
    前記回復用情報に記憶されたトランザクションが使用するストレージ装置の記憶内容についてのアクセスを制限し、
    前記第2計算機システムにおいて、投入されるトランザクションの処理を開始することを特徴とする請求項17に記載のデータベースシステム。
JP2003087773A 2003-03-27 2003-03-27 トランザクション同期方法、データベースシステム及びデータベース装置 Expired - Fee Related JP4283576B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003087773A JP4283576B2 (ja) 2003-03-27 2003-03-27 トランザクション同期方法、データベースシステム及びデータベース装置
US10/637,556 US7181479B2 (en) 2003-03-27 2003-08-11 Method and database system for duplicating transactions between remote sites
US11/647,201 US7593974B2 (en) 2003-03-27 2006-12-29 Method and database system for duplicating transactions between remote sites

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003087773A JP4283576B2 (ja) 2003-03-27 2003-03-27 トランザクション同期方法、データベースシステム及びデータベース装置

Publications (3)

Publication Number Publication Date
JP2004295540A JP2004295540A (ja) 2004-10-21
JP2004295540A5 JP2004295540A5 (ja) 2006-05-11
JP4283576B2 true JP4283576B2 (ja) 2009-06-24

Family

ID=32985177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003087773A Expired - Fee Related JP4283576B2 (ja) 2003-03-27 2003-03-27 トランザクション同期方法、データベースシステム及びデータベース装置

Country Status (2)

Country Link
US (2) US7181479B2 (ja)
JP (1) JP4283576B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070266061A1 (en) * 2004-11-08 2007-11-15 Kenichirou Fujiyama Data Multiplexing System
JP4249719B2 (ja) * 2005-03-29 2009-04-08 株式会社日立製作所 バックアップシステム、プログラム及びバックアップ方法
US7685170B2 (en) * 2005-08-04 2010-03-23 International Business Machines Corporation Journaling database queries for database replication
US8417680B2 (en) * 2005-12-02 2013-04-09 International Business Machines Corporation System for improving access efficiency in database and method thereof
US20070203978A1 (en) * 2006-02-09 2007-08-30 Mats Ljungqvist Reduction of I/O-operations in a server at a trading system
WO2008136107A1 (ja) * 2007-04-25 2008-11-13 Fujitsu Limited 切替処理方法
US8051486B2 (en) * 2007-05-24 2011-11-01 Oracle International Corporation Indicating SQL injection attack vulnerability with a stored value
US20090006402A1 (en) * 2007-06-28 2009-01-01 Holger Bohle Methods and systems for the dynamic selection of a locking strategy
US8266139B2 (en) * 2008-02-12 2012-09-11 Microsoft Corporation System and interface for co-located collaborative web search
JP4481338B2 (ja) * 2008-03-28 2010-06-16 株式会社日立製作所 バックアップシステム、ストレージ装置及びデータのバックアップ方法
US8234243B2 (en) * 2008-06-19 2012-07-31 Microsoft Corporation Third tier transactional commit for asynchronous replication
US9239767B2 (en) * 2008-12-22 2016-01-19 Rpx Clearinghouse Llc Selective database replication
US8266126B2 (en) * 2010-03-24 2012-09-11 Matrixx Software, Inc. System with multiple conditional commit databases
GB2493242A (en) 2010-05-18 2013-01-30 Ibm Transaction processing system
ZA201106261B (en) * 2010-09-15 2012-10-31 Tata Consultancy Services Ltd System and method for replicating block of transactions from primary site to secondary site
US9424362B2 (en) * 2010-12-17 2016-08-23 Microsoft Technology Licensing, Llc Storing and publishing contents of a content store
US8914390B2 (en) * 2011-07-12 2014-12-16 Facebook, Inc. Repetitive query recognition and processing
US8756217B2 (en) 2011-07-12 2014-06-17 Facebook, Inc. Speculative switch database
US8903951B2 (en) 2011-07-12 2014-12-02 Facebook, Inc. Speculative database authentication
US9619508B2 (en) 2011-07-12 2017-04-11 Facebook, Inc. Speculative begin transaction
JP6000608B2 (ja) * 2012-04-12 2016-09-28 株式会社東芝 レプリケーション実行装置
US8856070B2 (en) 2012-12-21 2014-10-07 International Business Machines Corporation Consistent replication of transactional updates
US9298398B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Fine-grained control of data placement
US9423981B2 (en) 2013-04-16 2016-08-23 International Business Machines Corporation Logical region allocation with immediate availability
US9104597B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Destaging cache data using a distributed freezer
US9619404B2 (en) 2013-04-16 2017-04-11 International Business Machines Corporation Backup cache with immediate availability
US9298617B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Parallel destaging with replicated cache pinning
US9104332B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
US9329938B2 (en) 2013-04-16 2016-05-03 International Business Machines Corporation Essential metadata replication
US9304865B2 (en) * 2014-03-26 2016-04-05 International Business Machines Corporation Efficient handing of semi-asynchronous raid write failures
WO2017094096A1 (ja) * 2015-12-01 2017-06-08 株式会社野村総合研究所 トランザクション処理システムおよびトランザクション制御方法
US9965538B2 (en) 2016-01-19 2018-05-08 Microsoft Technology Licensing, Llc Early thread return with secondary event writes
US11354247B2 (en) 2017-11-10 2022-06-07 Smart IOPS, Inc. Devices, systems, and methods for configuring a storage device with cache
US10394474B2 (en) 2017-11-10 2019-08-27 Smart IOPS, Inc. Devices, systems, and methods for reconfiguring storage devices with applications
US10949416B2 (en) 2018-07-13 2021-03-16 International Business Machines Corporation Workload management across multiple data sites capable of providing active services
JP7308887B2 (ja) * 2020-08-04 2023-07-14 株式会社三菱Ufj銀行 システム及びプログラム

Family Cites Families (12)

* 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
US5515502A (en) * 1993-09-30 1996-05-07 Sybase, Inc. Data backup system with methods for stripe affinity backup to multiple archive devices
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
WO1997013201A1 (en) 1995-10-06 1997-04-10 Advanced Micro Devices, Inc. Unified multi-function operation scheduler for out-of-order execution in a superscalar processor
US6324654B1 (en) 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
US6422706B1 (en) * 1999-05-21 2002-07-23 Karur S. Rangan Apparatus and method for positioning a mirror in a motor vehicle to ensure correct coverage of a critical field of view
US6529921B1 (en) * 1999-06-29 2003-03-04 Microsoft Corporation Dynamic synchronization of tables
US6594676B1 (en) * 2000-04-10 2003-07-15 International Business Machines Corporation System and method for recovery of multiple shared database data sets using multiple change accumulation data sets as inputs
EP1158409B1 (en) 2000-05-25 2008-05-28 Hitachi, Ltd. Storage system making possible data synchronisation confirmation at time of asynchronous remote copy
JP4546629B2 (ja) 2000-05-25 2010-09-15 株式会社日立製作所 記憶システム、記憶システムの応答方法及び記録媒体
US6993539B2 (en) 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US6785789B1 (en) 2002-05-10 2004-08-31 Veritas Operating Corporation Method and apparatus for creating a virtual data copy

Also Published As

Publication number Publication date
US20040193583A1 (en) 2004-09-30
US20070226276A1 (en) 2007-09-27
JP2004295540A (ja) 2004-10-21
US7181479B2 (en) 2007-02-20
US7593974B2 (en) 2009-09-22

Similar Documents

Publication Publication Date Title
JP4283576B2 (ja) トランザクション同期方法、データベースシステム及びデータベース装置
US7925633B2 (en) Disaster recovery system suitable for database system
US7275074B2 (en) Propagating commit times
CA2550003C (en) Geographically distributed clusters
JP4668763B2 (ja) ストレージ装置のリストア方法及びストレージ装置
CA2550614C (en) Cluster database with remote data mirroring
JP3790589B2 (ja) 分散データベーストランザクションのコミットメント方法
US7668874B2 (en) Disaster recovery processing method and apparatus and storage unit for the same
JP5049618B2 (ja) ディザスタリカバリシステムおよび方法
US7599967B2 (en) No data loss system with reduced commit latency
US7464113B1 (en) Disaster recovery with bounded data loss
US20060179347A1 (en) Reliable standby database failover
US20030220935A1 (en) Method of logical database snapshot for log-based replication
US20080027987A1 (en) Replicating data between heterogeneous data systems
US20050262170A1 (en) Real-time apply mechanism in standby database environments
EP1618475A2 (en) Flashback database
US20100088556A1 (en) Fault management system in multistage copy configuration
JP2010033398A (ja) トランザクションを処理する本番システムと該本番システムのバックアップ・システムである代行システムとを含む本番−代行システム
JP4289056B2 (ja) 計算機システム間のデータ二重化制御方法
JP4998010B2 (ja) データベースシステム管理、データベースシステム、プログラム及び処理装置
Hvasshovd et al. Shared-Nothing Approaches
Hu et al. Failure Handling in an Optimized Two-Safe Approach to Maintaining Remote Backup Systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060320

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090317

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090319

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees