(57)【特許請求の範囲】
【請求項１】
外部システムと通信して情報処理する第１のシステムと第２のシステムの情報処理方法において、
前記第１のシステムは、
前記外部システムと通信して稼働している現システムであり、
情報処理を行う複数の第１のサーバと、
前記外部システムから受信した通信を転送する第１のロードバランサと、
前記複数の第１のサーバが情報処理の対象とするデータの格納された第１のＤＢとを備え、
前記第１のロードバランサは前記外部システムから受信した通信を前記第１のサーバへ転送し、前記第１のサーバは前記第１のＤＢへアクセスして情報処理し、
前記第２のシステムは、
前記第１のシステムから移行される新システムであり、
情報処理を行う複数の第２のサーバと、
前記外部システムから受信した通信を転送する第２のロードバランサと、
前記複数の第２のサーバが情報処理の対象とするデータの格納された第２のＤＢとを備え、
前記第１のシステムから前記第２のシステムへの移行を制御するために、前記第１のシステムと前記第２のシステムを制御する管理装置は、
前記第２のサーバに対し、前記第１のＤＢのデータを前記第２のＤＢに移行する移行処理を開始させ、
前記外部システムの通信の宛先を、前記第１のシステムから前記第２のシステムへ変更し、
前記第２のロードバランサに、前記外部システムから受信した通信を前記第１のロードバランサに転送するよう制御して、前記第１のロードバランサが前記外部システムからの要求を前記第１のサーバへ負荷分散し、
前記第１のサーバは、
前記第２のロードバランサから前記第１のロードバランサに転送された前記外部システムからの要求に対して、前記第１のＤＢへアクセスして情報処理し、前記外部システムに応答し、
前記管理装置は、
前記第１のＤＢと前記第２のＤＢのデータが一致したか判定し、
一致すると判定した場合、前記第２のロードバランサによる前記第１のロードバランサへの転送を終了させ、前記第２のロードバランサに対し、前記外部システムから受信した通信を前記第２のサーバに転送するよう制御し、
前記第２のサーバは、前記第２のロードバランサを介して前記外部システムから受信した通信を、前記第２のＤＢへアクセスして情報処理を行うこと
を特徴とする情報処理方法。
【請求項２】
請求項１に記載の情報処理方法において、
前記管理装置は、
前記第１のＤＢと前記第２のＤＢのデータが一致した後、前記第２のＤＢの更新により発生した差分データを、前記第２のサーバから前記第１のサーバに転送して、前記第１のＤＢに反映するよう制御すること
を特徴とする情報処理方法。
【請求項３】
請求項１に記載の情報処理方法において、
前記管理装置による、
前記外部システムの通信の宛先の前記第１のシステムから前記第２のシステムへ変更は、前記外部システムの送信する通信の宛先を、前記第１のロードバランサから前記第２のロードバランサへ変更することであること
を特徴とする情報処理方法。
【請求項４】
請求項１に記載の情報処理方法において、
前記管理装置は、前記第１のＤＢのデータを前記第２のＤＢに移行を開始するためのコマンドを、前記第２のサーバに送信すること
を特徴とする情報処理方法。
【請求項５】
請求項１に記載の情報処理方法において、
前記第２のロードバランサは転送先の情報を有し、
前記移行処理を開始されると、前記第２のロードバランサの転送先の情報は前記第１のロードバランサへ設定され、
前記第２のＤＢのデータと前記第１のＤＢのデータが一致すると、前記第２のロードバランサの転送先の情報は前記第２のサーバへ設定されること
を特徴とする情報処理方法。
【請求項６】
請求項２に記載の情報処理方法において、
前記第２のＤＢへ格納された差分データを、前記第１のＤＢに反映し、前記第２のサーバあるいは前記第２のＤＢに障害を検出した場合、前記第２のロードバランサは前記外部システムから受信した通信を前記第１のロードバランサへ転送し、前記第１のロードバランサは前記外部システムから受信した通信を前記第１のサーバへ転送し、前記第１のサーバは前記第１のＤＢへアクセスして情報処理すること
を特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法および制御方法に関するものである。
【背景技術】
【０００２】
計算機システムにおいて、現システムが古くなり、新システムが導入され、現システムから新システムへ移行されることは広く行われていることである。このような新システムへの移行では、現システムから新システムへの例えばデータベースなどの移行と、現システムから新システムへのアクセスの変更が、移行作業の大きな負担となる。そして、現システムから新システムへの切り替え時に、現システムの停止時間が問題となる場合もある。
【０００３】
２つのシステム間で処理を切り替える技術に関して、特許文献１には「正系システムの正常運転時に、正系ロードバランサ12の転送先を、プライマリに正系WEB/APサーバ14が設定された平常時用から、プライマリに架空のアドレスが設定され、セカンダリに副系ロードバランサ22が設定された副系移行時用に切り替え、プライマリがタイムアウトするまでの間に、正系DBサーバ16→副系DBサーバ26間のレプリケーションを完了させると共に、レプリケーション方向の反転設定を完了させる。タイムアウト後、クライアント端末40からのリクエストは、正系ロードバランサ12→副系ロードバランサ22→副系WEB/APサーバ24に転送され、副系WEB/APサーバ24による処理結果は、副系DBサーバ26→正系DBサーバ16の順に反映される」ことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１０８９３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された技術を用いれば、２つのサーバ間でDB（データベース）のデータを転送し、処理を切り替えることは可能である。しかしながら、特許文献１には移行のための切り替えの技術は見当たらない。
【０００６】
そこで、本発明の目的は、移行に適したシステムの切り替えを提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る代表的な情報処理方法は、外部システムと通信して情報処理する第１のシステムと第２のシステムの情報処理方法において、前記第１のシステムは、情報処理を行う複数の第１のサーバと、前記外部システムから受信した通信を転送する第１のロードバランサと、前記複数の第１のサーバが情報処理の対象とするデータの格納された第１の記憶装置とを備え、前記第２のシステムは、情報処理を行う複数の第２のサーバと、前記外部システムから受信した通信を転送する第２のロードバランサと、前記複数の第２のサーバが情報処理の対象とするデータの格納された第２の記憶装置とを備え、前記第１のロードバランサは前記外部システムから受信した通信を前記第１のサーバへ転送し、前記第１のサーバは前記第１の記憶装置へアクセスして情報処理し、第１の条件を満たすと判定した場合、前記第２のロードバランサは前記外部システムから受信した通信を前記第１のロードバランサへ転送し、前記第１のロードバランサは前記外部システムから受信した通信を前記第１のサーバへ転送し、前記第１のサーバは前記第１の記憶装置へアクセスして情報処理し、前記第１の記憶装置に格納されたデータを前記第２の記憶装置に反映し、第２の条件を満たすと判定した場合、前記第２のロードバランサは前記外部システムから受信した通信を前記第２のサーバへ転送し、前記第２のサーバは前記第２の記憶装置へアクセスして情報処理することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、移行に適したシステムの切り替えを提供することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】現システムと新システムの接続の例を示す図である。
【図２】移行処理の例を示すフロー図である。
【図３】移行前のアクセスの例を示す図である。
【図４】ＤＢデータの移行と移行中のアクセスの例を示す図である。
【図５】移行後のアクセスの例を示す図である。
【図６Ａ】移行中の転送先情報の例を示す図である。
【図６Ｂ】移行後の転送先情報の例を示す図である。
【図６Ｃ】移行中のＤＢ毎の転送先情報の例を示す図である。
【図６Ｄ】移行後のＤＢ毎の転送先情報の例を示す図である。
【図７】障害処理の例を示すフロー図である。
【図８】２段階の移行処理の例を示すフロー図である。
【図９】中継機器を用いた現システムと新システムの接続の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて、本発明の好ましい実施例を説明する。
【実施例１】
【００１１】
図１は、現システム１１０と新システム１２０の接続の例を示す図である。外部システム１３０（外部システム１３０ａ、１３０ｂ、１３０ｃを特に区別することなく指し示す場合、外部システム１３０と記載し、他の符号についても同様に記載する）は、現システム１１０のデータベース（以下、ＤＢと略す）へアクセスするシステムである。
【００１２】
例えば、外部システム１３０ａはＤＢ参照系のシステムであり、外部システム１３０ｂはＤＢ更新系のシステムであり、外部システム１３０ｃは現システム１１０の単にクライアントとなるシステムであるが、これらに限定されるものではなく、外部システム１３０の数も３に限定されるものではない。また、外部システム１３０は現システム１１０に対向するシステムであるから対向システムと称されることもある。
【００１３】
ネットワーク１５１はバックボーンネットワークであり、複数の外部システム１３０間を接続するとともに、外部システム１３０と現システム１１０を接続する。現システム１１０は現在稼働している移行前のシステムであり、外部システム１３０からＤＢの参照や更新の要求を処理する。ロードバランサ１１１は外部システム１３０からの要求を複数のサーバ１１２へ分散する。
【００１４】
サーバ１１２は、現ＤＢ１１３を用いて、ロードバランサ１１１により分散された要求を処理するサーバである。現ＤＢ１１３はＤＢを構成するデータであり、ＤＢを管理するための情報が含まれてもよく、現ＤＢ１１３はそのようなデータと情報が格納される記憶装置でもよい。この記憶装置はハードディスクドライブであってもよいし、ソリッドステートドライブであってもよい。なお、サーバ１１２はＤＢ以外の処理を実行してもよいし、そのＤＢ以外の処理が外部システム１３０からの要求に基づく処理であってもよい。
【００１５】
ネットワーク１５２はＯ＆Ｍ（Ｏｐｅｒａｔｉｏｎ  ａｎｄ  Ｍａｉｎｔｅｎａｎｃｅ）ネットワークであり、図示を省略した端末と現システム１１０を接続し、ロードバランサ１１１とサーバ１１２の設定情報と状態情報を通信可能にする。また、ＤＢのデータが通信可能であってもよい。なお、ネットワーク１５２は存在しなくてもよい。また、ネットワーク１５１、１５２はパケットネットワークでもよい。
【００１６】
以上で説明した構成へ新システム１２０と管理装置１４０が追加され、現システム１１０が新システム１２０へ移行される。ここで、ネットワーク１５２が存在しない場合は、ネットワーク１５２と管理装置１４０が追加されてもよいし、ネットワーク１５２が既存の場合は、ネットワーク１５２へ既に接続されているコンピュータが管理装置１４０となってもよい。
【００１７】
基本的には、ロードバランサ１２１はロードバランサ１１１に相当し、サーバ１２２はサーバ１１２に相当し、新ＤＢ１２３は現ＤＢ１１３に相当するが、これらのそれぞれは同じ機種であってもよいし、異なる機種であってもよい。ただし、新システム１２０のこれらの構成の方が、現システム１１０のこれらの構成よりも、高性能であったり、消費電力が少なかったりする方が好ましい。
【００１８】
新システム１２０はネットワーク１５１に接続され、外部システム１３０と通信可能となるとともに、現システム１１０とも通信可能になる。また、新システム１２０は、ネットワーク１５２経由で現システム１１０と通信可能となってもよい。以下で説明する現システム１１０と新システム１２０との間の移行や転送のための通信は、ネットワーク１５１、１５２のいずれが使用されてもよい。さらに、現システム１１０と新システム１２０とは移行専用のネットワークで接続されてもよい。
【００１９】
ロードバランサ１２１は、サーバ１２２へ外部システム１３０からの要求を分散する以外に、ロードバランサ１１１をサーバ１２２と同じ接続対象として、ロードバランサ１１１へ要求やデータを転送する。ロードバランサ１２１が、外部システム１３０、サーバ１２２、ロードバランサ１１１の中のどれとどれとの間で通信を転送するかは、ロードバランサ１２１に設定される。
【００２０】
サーバ１２２は、ロードバランサ１２１から分散された要求を処理する以外に、移行ツールのプログラムがインストールされ、サーバ１１２と通信して現ＤＢ１１３から新ＤＢ１２３へデータベースを移行する。移行ツールのプログラムの実行は、管理装置によりネットワーク１５２経由で制御される。
【００２１】
管理装置１４０は、プロセッサ、メモリ、ネットワークインタフェース、ユーザインタフェースを備えたコンピュータであり、管理装置１４０へインストールされたプログラムにしたがって、現システム１１０と新システム１２０を制御する。また、ネットワーク１５２がネットワーク１５１を構成するネットワークスイッチやネットワークルータ、および外部システム１３０などの機器にも接続され、接続されたこれらの機器を制御してもよい。ユーザインタフェースは、キーボード、マウス、ディスプレイであってもよい。
【００２２】
図２は、管理装置１４０の移行処理の例を示すフロー図である。このフロー図は管理装置１４０にインストールされたプログラムのフローチャートであってもよい。図２に示した以下で説明する３つのステップにおけるＤＢへのアクセスの状態の例を図４〜６に示し、それぞれのステップで説明する。
【００２３】
まず、図３を用いて、ＤＢを移行する前すなわちステップ２０１の前のＤＢへのアクセスを説明する。図３は現システム１１０のＤＢへのアクセスの例を示す図である。この例では、新システム１２０と管理装置１４０がネットワーク１５１とネットワーク１５２へ物理的には接続されているが、ネットワーク１５１を経由した動作はない。
【００２４】
図３に示した太い矢印のように、外部システム１３０はネットワーク１５１経由で現システム１１０と通信し、ロードバランサ１１１は外部システム１３０からの要求を複数のサーバ１１２へ負荷分散する。サーバ１１２は現ＤＢ１１３へアクセスし、必要に応じて、ロードバランサ１１１とネットワーク１５１を介して、外部システム１３０へデータを応答する。
【００２５】
図２に示したステップ２０１において、管理装置１４０がネットワーク１５２経由でサーバ１２２にインストールされた移行ツールのプログラムを起動することにより、ＤＢのデータの移行が開始される。この起動は、オペレータによる管理装置１４０のキーボードかマウスの操作を受け付けて、サーバ１２２へ起動のためのコマンドを送ってもよいし、オペレータが管理装置１４０へ起動時刻を予め設定したことを受け付けて、管理装置１４０が内蔵の時計と起動時刻が一致したことを検出し、サーバ１２２へ起動のためのコマンドを送ってもよい。
【００２６】
サーバ１２２による移行ツールのプログラムの実行は、以下で説明する管理装置１４０によるステップ２０２の実行などとは関わりなく、進行する。ここでの移行ツールは、移行ツールのプログラムが起動される前に現ＤＢ１１３へ格納されたデータと、移行ツールのプログラムが起動された後に現ＤＢ１１３で更新されたデータとを、ＤＢとして矛盾なく新ＤＢ１２３へ移行するプログラムである。
【００２７】
ステップ２０２において、外部システム１３０から現システム１１０への通信を新システム１２０への通信に変更する。この変更のために、外部システムの管理装置（図示せず）は、外部システム１３０における現システム１１０を宛先とする情報を、新システム１２０を宛先とする情報に変更してもよいし、ネットワーク１５１を構成するルータのルーティングテーブルを変更してもよいし、それぞれの変更を指示するコマンドを送ってもよい。
【００２８】
管理装置１４０によるステップ２０２の実行は、管理装置１４０がステップ２０１を実行した後に直ちに行われてもよい。また、ＤＢの移行の進捗とは関係がないため、ステップ２０１の実行後でありステップ２０５の開始までに、それぞれの外部システム１３０により任意のタイミングでステップ２０２が実行されてもよい。すなわち、ステップ２０１とステップ２０５との間は、現システム１３０に送信する外部システムと新システム１２０に送信する外部システムとが共存してもよい。
【００２９】
ステップ２０３において管理装置１４０は、ロードバランサ１２１が外部システム１３０から受信した通信をロードバランサ１１１へ転送するように制御する。この制御のために、管理装置１４０はネットワーク１５２経由でロードバランサ１２１に転送先の情報を設定してもよい。
【００３０】
図６Ａはロードバランサ１１１が参照する転送先情報の例を示す図である。図６Ａに示した情報はロードバランサ１１１内のメモリに記憶され、管理装置１４０からの情報あるいはコマンドによって更新されてもよい。図６Ａに示した転送先の「現システムロードバランサ」はロードバランサ１１１のアドレスであり、「新システムサーバＡ」はサーバ１２２ａのアドレス、「新システムサーバＢ」はサーバ１２２ｂのアドレス、「新システムサーバＣ」はサーバ１２２ｃのアドレスであり、これらのアドレスを宛先として転送する。なお、これらのアドレスは、実際はＩＰアドレスなどの数値であってもよい。
【００３１】
図６Ａに示した状態の「ｅｎａｂｌｅ」は転送を可能にするフラグであり、「ｄｉｓａｂｌｅ」は転送を禁止するフラグである。このため、図６Ａの例では、ロードバランサ１１１への転送が可能であり、サーバ１２２ａ、１２２ｂ、１２２ｃへの転送が禁止されていることを示す。
【００３２】
図６Ａに示した転送先情報は、ステップ２０２より前あるいはステップ２０１より前に設定されてもよい。この設定により、ステップ２０２の実行に応じてロードバランサ１２１が受信するようになった通信を、ステップ２０３でロードバランサ１２１が転送するようになってもよい。
【００３３】
図４は、新システム１２０を使用したＤＢの移行とＤＢへのアクセスの例を示す図であり、これらの移行とアクセスはステップ２０３の後の状態である。図４に示した太い矢印のように、外部システム１３０はネットワーク１５１経由で新システム１２０へ送信し、ロードバランサ１２１は外部システム１３０からの要求をロードバランサ１１１へ転送し、ロードバランサ１１１は外部システム１３０からの要求を複数のサーバ１１２へ負荷分散する。
【００３４】
サーバ１１２は現ＤＢ１１３へアクセスし、必要に応じて、ロードバランサ１１１とネットワーク１５１を介して、外部システム１３０へデータを応答する。なお、ロードバランサ１１１はロードバランサ１２１経由で外部システム１３０へデータを応答してもよい。
【００３５】
外部システム１３０によるＤＢへのアクセスとは別に、サーバ１２２の移行ツールのプログラムは、サーバ１１２へアクセスし、現ＤＢ１１３のデータを新ＤＢ１２３へ移行する。この移行の状態は管理装置１４０により監視されてもよい。このために、管理装置１４０はネットワーク１５２経由でサーバ１１２から現ＤＢ１１３の状態情報とサーバ１２２から新ＤＢ１２３の状態情報の両方を取得してもよいし、サーバ１２２から移行の進捗情報を取得してもよい。
【００３６】
図２に示したステップ２０４において、管理装置１４０は現ＤＢ１１３と新ＤＢ１２３のデータが一致したかを判定する。ステップ２０４において管理装置１４０は、一致していないと判定した場合、移行により一致するまで待機するためにステップ２０４へ戻り、一致していると判定した場合、新ＤＢ１２３が使用可能な状態となったため、ステップ２０５へ進んでロードバランサ１２１の転送を終了するように制御する。なお、ステップ２０４における一致の判定は、一致したときに発生する別の情報で判定してもよい。
【００３７】
この制御のために、管理装置１４０はネットワーク１５２経由でロードバランサ１２１に転送先の情報を設定してもよく、図６Ａに示した転送先が「現システムロードバランサ」に対応する状態の「ｅｎａｂｌｅ」を「ｄｉｓａｂｌｅ」に設定してもよい。その後、図６Ｂに示すように転送先が「新システムサーバＡ」「新システムサーバＢ」「新システムサーバＣ」のそれぞれに対応する状態の「ｄｉｓａｂｌｅ」を「ｅｎａｂｌｅ」に設定してもよい。
【００３８】
ロードバランサ１２１が転送しないと、サーバ１１２は要求を受けないため、既に要求を受けた処理を終了し、現ＤＢ１１３を更新しなくなる。これにより、現ＤＢ１１３からの移行は実質的に発生しなくなるが、ステップ２０７のために、ステップ２０６にて管理装置１４０は移行の処理を終了するようにサーバ１２２を制御する。この制御のために、管理装置１４０はサーバ１２２に実行状態になっている移行ツールのプログラムを停止するように、ネットワーク１５２経由で停止のコマンドを送ってもよい。
【００３９】
なお、現ＤＢ１１３と新ＤＢ１２３のデータが一致した後、直ちにステップ２０５を実行せず、外部システム１３０の要求により現ＤＢ１１３が更新され、一致しなくなっても、その後の移行により一致するようになる。直ちにステップ２０５を実行する必要がないため、ステップ２０４では一致するかの判定以外に、オペレータによる管理装置のキーボードかマウスの操作内容を判定してもよい。
【００４０】
ロードバランサ１２１がロードバランサ１１１への転送を終了し、複数のサーバ１２２へ要求を分散すると、新システム１２０がＤＢとして稼働開始したことになる。要求に応じて新ＤＢ１２３は更新されるため、現ＤＢ１１３と新ＤＢ１２３のデータは一致しなくなる。
【００４１】
ステップ２０７で管理装置１４０は、新ＤＢ１２３の更新により発生した差分データで現ＤＢ１１３も更新する処理を開始し、現ＤＢ１１３が新ＤＢ１２３と一致するように制御する。この制御のために、管理装置１４０はネットワーク１５２経由でサーバ１２２の移行ツールのプログラムに含まれる新ＤＢ１２３から現ＤＢ１１３への差分データの転送と更新の処理を起動するコマンドを送ってもよい。また、この処理のために移行ツールとは別のプログラムがサーバ１２２へインストールされていてもよい。
【００４２】
図５は、移行後の新システム１２０の新ＤＢ１２３へのアクセスの例を示す図である。ステップ２０７の後では、図５に示した太い矢印のように、新システム１２０は外部システム１３０からアクセスされ、サーバ１２２からサーバ１１２へ差分データが転送されて現ＤＢ１１３に反映する。
【００４３】
以上の処理により、現ＤＢ１１３から新ＤＢ１２３へデータを移行し、現ＤＢ１１３と新ＤＢ１２３のデータを一致した状態とする。なお、移行ツールのプログラムは、サーバ１１２にインストールされてもよいし、サーバ１１２、１２２の両方にインストールされて移行ツール同士が通信するものでもよい。
【００４４】
次に、図５に示したように、新システム１２０が外部システム１３０からの要求を処理し、現ＤＢ１１３と新ＤＢ１２３のデータが一致した状態において、新システム１２０に障害の発生した場合の処理について説明する。稼働実績のあるシステムに対して、一般に新しいシステムは稼働開始してからしばらくの期間に障害の発生する可能性があるため、現システム１１０を残しておくことが好ましい。
【００４５】
新システム１２０のロードバランサ１２１やサーバ１２２は、一般的なロードバランサやサーバと同様に障害を検出して、ネットワーク１５２経由で管理装置１４０へ障害の検出を通知する。ロードバランサ１２１とサーバ１２２と新ＤＢ１２３とが相互に監視してもよい。あるいは、管理装置１４０がロードバランサ１２１とサーバ１２２と新ＤＢ１２３とのそれぞれをネットワーク１５２経由で監視してもよい。
【００４６】
図７は、管理装置１４０の障害処理の例を示すフロー図である。このフロー図は管理装置１４０にインストールされたプログラムのフローチャートであってもよい。管理装置１４０は障害の通知を受信する、あるいは監視により障害を検出すると、ステップ７０１から処理を開始する。まず、通知あるいは検出した障害の情報に基づき、ステップ７０２で管理装置１４０はロードバランサ１２１が正常であるかを判定する。
【００４７】
ステップ７０２でロードバランサ１２１が正常であると判定すると、管理装置１４０はステップ７０３へ進み、ロードバランサ１２１からロードバランサ１１１へ要求を転送するように制御する。この制御はステップ２０３と同じである。また、ロードバランサ１２１が正常でないと判定すると、管理装置１４０はステップ７０４へ進み、外部システム１３０の通信先を現システム１１０へ変更するように制御する。
【００４８】
このステップ７０４はステップ２０２と変更先が異なり、外部システム１３０から新システム１２０への通信を現システム１１０への通信に変更する。この変更のために、ネットワーク１５２やネットワーク１５１などを介して管理装置１４０は、外部システム１３０における新システム１２０を宛先とする情報を、現システム１１０を宛先とする情報に変更してもよいし、ネットワーク１５１を構成するルータのルーティングテーブルを変更してもよい。
【００４９】
ステップ７０５で管理装置１４０は、サーバ１２２と新ＤＢ１２３が正常であるかを判定する。ステップ７０５でサーバ１２２と新ＤＢ１２３が正常であると判定すると、ステップ２０７で開始した新ＤＢ１２３から現ＤＢ１１３への差分データの転送が終了するように、ステップ７０６で管理装置１４０は制御する。この制御のために管理装置１４０は、ステップ２０７で起動したプログラムを停止するコマンドを送ってもよい。
【００５０】
ステップ７０７で管理装置１４０は、現ＤＢ１１３から新ＤＢ１２３への差分データの転送による移行を開始するように、サーバ１２２を制御する。この制御のために、管理装置１４０はネットワーク１５２経由でサーバ１２２の移行ツールのプログラムを起動するコマンドを送ってもよい。これにより、新システム１２０が障害から復帰すると、移行が完了した状態になっている。
【００５１】
ステップ７０５ではサーバ１２２と新ＤＢ１２３が正常であるかの判定以外に、オペレータによる管理装置のキーボードかマウスの操作内容を判定してもよい。現ＤＢ１１３のデータを後で移行することも可能であるから、新システム１２０の障害からの復帰のために、新システム１２０全体を停止する必要のある場合など、必ずしもステップ７０６、７０７を実行する必要はない。
【００５２】
ステップ７０５でサーバ１２２と新ＤＢ１２３のいずれか一方あるいは両方が正常ではないと判定した場合、ステップ２０７で開始された差分データの転送は行われないはずであるが、現ＤＢ１１３へ何らかの影響を与える可能性がある場合、ステップ７０６を実行してもよい。また、障害によりサーバ１２２を制御できない場合、新ＤＢ１２３から現ＤＢ１１３へ差分データを転送するための経路をネットワーク１５１とネットワーク１５２の中で遮断するように制御してもよい。
【００５３】
なお、管理装置１４０は障害を検出せずに、オペレータによる管理装置１４０のキーボードかマウスの操作を受け付けて、その操作内容に応じてステップ７０１からの処理を開始したり、ステップ７０２の判定をしたりしてもよい。
【００５４】
また、新システム１２０の動作が事前に十分検証されているのであれば、図７を用いて説明した処理を省略してもよい。そして、図２に示したステップ２０７の処理を省略し、ステップ２０７の代わりに管理装置１４０は現システム１１０を停止するように制御してもよい。この制御のために、管理装置１４０はネットワーク１５２経由でロードバランサ１１１とサーバ１１２へ停止のためのコマンドを送ってもよい。
【００５５】
また、ステップ２０７は実行された後で、オペレータによる管理装置１４０のキーボードかマウスの操作を受け付けて、管理装置１４０は、新ＤＢ１２３から現ＤＢ１１３への差分データの転送を終了するためのコマンドをサーバ１２２へ送り、ロードバランサ１１１とサーバ１１２へ処理を停止するためのコマンドを送ってもよい。
【００５６】
以上の説明では、現ＤＢ１１３のデータを新ＤＢ１２３へ移行する例を説明したが、例えば現ＤＢ１１３が複数のＤＢから構成され、複数のＤＢの中の一部のＤＢの移行であってもよい。この移行のために、外部システム１３０からの通信はどのＤＢのための通信であるかの情報を含み、その情報をロードバランサ１２１は判定し、転送先を決定してもよい。
【００５７】
そして、図６Ａを用いて説明した転送情報の代わりに図６Ｃに示す転送先情報をロードバランサ１２１は参照してもよい。図６Ｃに示した例では、現ＤＢ１１３は「ＤＢ−Ａ」と「ＤＢ−Ｂ」から構成され、現ＤＢ１１３からデータの移行される新ＤＢ１２３も「ＤＢ−Ａ」と「ＤＢ−Ｂ」から構成でき、図６Ａに示した転送先情報に対応する。
【００５８】
ロードバランサ１２１は、外部システム１３０からの通信に含まれる情報に基づき、通信が「ＤＢ−Ａ」のための通信であるか、「ＤＢ−Ｂ」のための通信であるかを判定し、その通信に対応する状態が「ｅｎａｂｌｅ」の転送先へ転送する。図６Ｄに示した例は、「ＤＢ−Ａ」のみが、図６Ｂに示した転送先情報と同じである。ここで、「ＤＢ−Ａ」と「ＤＢ−Ｂ」はそれぞれが別のサービスに対応し、サービス毎に「ｅｎａｂｌｅ」と「ｄｉｓａｂｌｅ」が設定されてもよい。
【００５９】
以上で説明したように、現ＤＢ１１３のデータを新ＤＢ１２３へ移行し、現システム１１０から新システム１２０へ切り替えることができる。現ＤＢ１１３のデータを新ＤＢ１２３へ移行する間も、外部システム１３０は現ＤＢ１１３へアクセスすることが可能であり、このアクセスは新システム１２０で転送させることにより、外部システム１３０の通信先の変更を移行完了までの任意のタイミングで実施することができ、移行の作業の自由度が高くなる。
【００６０】
また、ロードバランサ１２１の１つの転送先として現システム１１０を設定できるため、外部システム１３０からの要求を新システム１２０から現システム１１０へ転送するのは容易である。そして、新システム１２０のサーバ１２２による処理を開始する場合も、ロードバランサ１２１の転送先の設定により、外部システム１３０からの要求の転送先を変更できるため、現システム１１０から新システム１２０への切り替え時間を短縮できる。
【００６１】
さらに、新システム１２０で処理を開始した後も現システム１１０へ差分データを反映させることにより、新システム１２０での移行後の障害に対して現システム１１０へ戻すことも可能である。
【実施例２】
【００６２】
実施例１では、現ＤＢ１１３から新ＤＢ１２３へのデータの移行（図２のステップ２０１）において、外部システム１３０からの要求による現ＤＢ１１３の更新により発生した差分データを含めて移行する例を説明したが、実施例２では、初回の移行として特定の時点あるいは特定の範囲のデータ全件を現ＤＢ１１３から新ＤＢ１２３へ移行し、その初回の移行後に現ＤＢ１１３の更新により発生した差分データをさらに移行して新ＤＢ１２３へ反映させる例を説明する。
【００６３】
図８は管理装置１４０の２段階の移行処理の例を示すフロー図である。このフロー図は管理装置１４０にインストールされたプログラムのフローチャートであってもよい。まず、ＤＢを移行する前すなわちステップ８０１およびステップ８１１の前のＤＢへのアクセスは、既に図３を用いて説明したとおりである。
【００６４】
図８の例では、ステップ８０１〜８０８の処理のフローと、ステップ８１１〜８１６の処理のフローに分けて説明するが、このようにフローを分けることに限定されるものではない。分けられたフローの処理の一部が他方のフローにあってもよいし、分けられたフローの一部が統合されてもよい。処理の２つのフローは、それぞれが別のプロセスなどであってもよい。
【００６５】
ステップ８０１において管理装置１４０は、ネットワーク１５２経由でサーバ１２２にインストールされた移行ツールのプログラムを起動することにより、ＤＢのデータを移行する。この起動は、オペレータによる管理装置１４０のキーボードかマウスの操作を受け付けて、サーバ１２２へ起動のためのコマンドを送ってもよいし、オペレータが管理装置１４０へ起動時刻を予め設定したことを受け付けて、管理装置１４０が内蔵の時計と起動時刻が一致したことを検出し、サーバ１２２へ起動のためのコマンドを送ってもよい。
【００６６】
ステップ８０１における起動時あるいは起動前に、現ＤＢ１１３の中で移行されるＤＢの範囲が設定されてもよい。移行されるＤＢの範囲は、例えばＤＢの静止点までの範囲やＤＢのロールバックされるチェックポイントまでの範囲などであってもよく、その後の現ＤＢ１１３の更新により発生する差分データを反映させてもＤＢの整合性を維持できる範囲のデータ全件であってもよい。そして、移行ツールのプログラムの実行により、設定された範囲のデータ全件が移行され、移行が完了する。
【００６７】
ステップ８０２において管理装置１４０は、差分移行を開始するか判定する。この判定のため、オペレータによる管理装置１４０のキーボードかマウスの操作を受け付けて、その操作内容を判定してもよいし、オペレータが管理装置１４０へ開始時刻を予め設定したことを受け付けて、管理装置１４０が内蔵の時計と開始時刻が一致したことを検出してもよい。これにより、定期的に差分移行を開始してもよい。
【００６８】
ステップ８０２において管理装置１４０は、差分移行を開始しないと判定すると、ステップ８０２の判定を繰り返す。また、ステップ８０２において管理装置１４０は、差分移行を開始すると判定すると、ステップ８０３へ進み、ネットワーク１５２経由でサーバ１２２の移行ツールへ差分移行開始のコマンドを送り、移行ツールはそれ以前の移行後に現ＤＢ１１３の更新により発生した差分データを移行して新ＤＢ１２３へ反映させる。
【００６９】
ステップ８０３の移行が完了し、現ＤＢ１１３と新ＤＢ１２３とが一致すると、ステップ８０４において管理装置１４０は、現システム１１０から新システム１２０へ切り替えるかを判定する。この判定のため、オペレータによる管理装置１４０のキーボードかマウスの操作を受け付けて、その操作内容を判定してもよい。ステップ８０４において管理装置１４０は、切り替えないと判定すると、続けて外部システム１３０からの要求により現ＤＢ１１３の更新される可能性があるため、ステップ８０２へ戻る。
【００７０】
ステップ８０４において管理装置１４０は、切り替えると判定するとステップ８０５へ進む。ここで、管理装置１４０のステップ８１１からの処理について説明する。ステップ８０３の実行までの任意のタイミングで、管理装置１４０はステップ８１１からの処理を開始する。この開始のため、オペレータによる管理装置１４０のキーボードかマウスの操作を受け付けて、その操作内容に基づいて処理を開始してもよい。
【００７１】
ステップ８１１、８１２のそれぞれは、既に説明したステップ２０２、２０３と同じ処理内容である。このため、ステップ８１１、８１２が実行されるか否かに関わらず、外部システム１３０は現ＤＢ１１３を更新したり参照したりすることが可能であり、ステップ８１１、８１２はステップ８０３の実行までの任意のタイミングで実行されればよい。また、ステップ８０１あるいはステップ８０３による移行実行中に、ステップ８１２が終了した後は、図４を用いて説明したとおりのアクセスである。
【００７２】
ステップ８０５も含めて説明すると、ステップ８０５において管理装置１４０は、ロードバランサ１２１の転送を終了するように、ロードバランサ１２１の転送を開始させた処理へ通知し、ステップ８１３において管理装置１４０は、転送終了が指示されたと判定すると、ステップ８１４へ進み、ロードバランサ１２１の転送を終了するように制御する。
【００７３】
この制御のために、管理装置１４０はネットワーク１５２経由でロードバランサ１２１に転送先の情報を設定してもよい。例えば、図６Ａに示した転送先が「現システムロードバランサ」に対応する状態の「ｅｎａｂｌｅ」を「ｄｉｓａｂｌｅ」に設定し、すべての状態を「ｄｉｓａｂｌｅ」としてもよい。これにより、外部システム１３０との通信が遮断され、ＤＢを静止化することができる。
【００７４】
ステップ８０６において管理装置１４０は、ステップ８０３を最後に実行して差分データを移行してから、ステップ８１４を実行してロードバランサ１２１の転送を終了されてまでに、現システム１１０が受け取った要求などをサーバ１１２が処理し、現ＤＢ１１３を更新するように制御する。なお、管理装置１４０からの制御がなくても、受け取った要求などをサーバ１１２が処理するのであれば、この制御は省略してもよいが、受け取った要求などの処理がすべて完了したことを確認する。
【００７５】
この確認のために、管理装置１４０はネットワーク１５２経由でサーバ１１２の処理状況、特に処理待ちの有無と処理中の有無の情報を取得して、処理がすべて完了したことを判定してから、ステップ８０７へ進んでもよい。ステップ８０７において管理装置１４０は、ステップ８０６の更新で発生した差分データを新ＤＢ１２３へ移行して反映するように移行ツールを制御する。
【００７６】
ステップ８０７はステップ８０３と同じ処理内容であり、差分データの移行が終了すると、ロードバランサ１２１のロードバランサ１１１への転送が終了された処理へ通知し、ステップ８１５において差分データの移行が終了したと判定し、ステップ８１６へ進み、ロードバランサ１２１からサーバ１２２へ負荷分散するように制御する。
【００７７】
この制御のために、管理装置１４０はネットワーク１５２経由でロードバランサ１２１に転送先の情報を設定してもよく、図６Ｂに示すように転送先が「新システムサーバＡ」「新システムサーバＢ」「新システムサーバＣ」のそれぞれに対応する状態の「ｄｉｓａｂｌｅ」を「ｅｎａｂｌｅ」に設定してもよい。この制御により、サーバ１２２の新ＤＢ１２３に対する処理が開始され、新システム１２０が稼働して、外部システム１３０からの要求に応じて新ＤＢ１２３が更新される。
【００７８】
また、この更新により新ＤＢ１２３には差分データが発生する。管理装置１４０はステップ２０７と同じ処理内容のステップ８０８により、新ＤＢ１２３から差分データを転送して現ＤＢ１１３へ反映するように制御する。ステップ８０７からステップ８０８へ進む前に、管理装置１４０は移行ツールのプログラムを一時的に停止させ、新ＤＢ１２３の整合性を確保してもよい。以上の処理により、図５を用いて説明したとおりとなる。
【００７９】
以上で説明したように、初回の移行後に差分データの移行を繰り返すことができるため、現システム１１０から新システム１２０への切り替えのタイミングの自由度が高くなる。また、切り替えまでの任意のタイミングで外部システム１３０の通信先の変更を実施することができ、移行の作業の自由度がさらに高くなる。
【００８０】
また、切り替え時にロードバランサ１２１からの転送を終了し、終了するまでに転送された要求に対して現ＤＢ１１３を更新し、転送の無い状態で、その更新により発生した差分データも新ＤＢ１２３へ反映できるため、安定した状態を反映することが可能である。
【実施例３】
【００８１】
実施例１、２では、ロードバランサ１２１による新システム１２０から現システム１１０への転送の例を説明したが、実施例３では、ロードバランサ１２１の代わりに中継機器９２１が新システム１２０から現システム１１０へ転送する例を説明する。図９は中継機器を用いた現システム１１０と新システム１２０の接続の例を示す図である。図１を用いて説明したものは同じ符号を付して説明を省略する
中継機器９１１、９２１は、ネットワークパケットを中継するネットワーク機器であり、例えばルータなどである。ロードバランサ１１１、１２１は負荷分散するためにそれぞれ２以上のサーバ１１２、１２２が接続されるが、中継機器９１１、９２１のそれぞれは１以上のサーバ１１２、１２２が接続される。
【００８２】
また、ロードバランサ１１１、１２１はそれぞれネットワークアドレスを有しても有さなくてもよいが、中継機器９１１、９２１のそれぞれはネットワークアドレスを有さず、サーバ１１２、１２２のネットワークアドレスにしたがってネットワークパケットを中継する。
【００８３】
新システム１２０が転送に使用されない場合、例えば、サーバ１１２のネットワークアドレスを宛先とするネットワークパケットを、ネットワーク１５１を構成するネットワーク機器のルーティングテーブルは現システム１１０の中継機器９１１へルーティングするように設定され、中継機器９１１のルーティングテーブルはサーバ１１２へルーティングするように設定される。
【００８４】
そして、外部システム１３０は、サーバ１１２のネットワークアドレスを宛先とするネットワークパケットを送信すると、ネットワーク１５１経由で中継機器９１１にネットワークパケットが到着し、中継機器９１１はサーバ１１２へネットワークパケットを中継する。
【００８５】
また、新システム１２０が転送に使用される場合、例えば、サーバ１１２のネットワークアドレスを宛先とするネットワークパケットを、ネットワーク１５１を構成するネットワーク機器のルーティングテーブルは新システム１２０の中継機器９２１へルーティングするように設定され、中継機器９２１のルーティングテーブルは現システム１１０の中継機器９１１へルーティングするように設定され、中継機器９１１のルーティングテーブルはサーバ１１２へルーティングするように設定される。
【００８６】
そして、外部システム１３０は、サーバ１１２のネットワークアドレスを宛先とするネットワークパケットを送信すると、ネットワーク１５１経由で中継機器９２１にネットワークパケットが到着し、中継機器９２１は中継機器９１１へネットワークパケットを中継し、中継機器９１１はサーバ１１２へネットワークパケットを中継する。
【００８７】
サーバ１２２はサーバ１１２と同じネットワークアドレスが設定されてもよい。これにより、サーバ１１２のネットワークアドレスを宛先とするネットワークパケットを中継機器９１１へルーティングすると設定されたルーティンテーブルの内容を、サーバ１２２へルーティングする内容へ変更することにより、サーバ１２２へ中継することができる。
【００８８】
ロードバランサ１１１、１２１と中継機器９１１、９２１との違い以外は、既に図１〜８を用いて説明したとおりである。
【００８９】
以上で説明したように、外部システム１３０は現システム１１０のサーバ１１２を宛先として、設定を変更されることなく、新システム１２０の中継機器９２１に転送させることが可能になり、その後は、新システム１２０のサーバ１２２へ要求を送信することが可能になる。このため、外部システム１３０の設定作業を不要にすることができる。
【００９０】
以上の説明では、実施例１と実施例２と実施例３を分けて説明したが、各実施例は独立したものではなく、各実施例の説明の一部を他の実施例の説明の一部に置き換えてもよい。
【符号の説明】
【００９１】
１１０：現システム
１１１：ロードバランサ
１１２：サーバ
１１３：現ＤＢ
１２０：新システム
１２１：ロードバランサ
１２２：サーバ
１２３：新ＤＢ
１３０：外部システム
１４０：管理装置
１５１：ネットワーク
１５２：ネットワーク
【図１】
0006674272.tif 000002
【図２】
0006674272.tif 000003
【図３】
0006674272.tif 000004
【図４】
0006674272.tif 000005
【図５】
0006674272.tif 000006
【図６Ａ】
0006674272.tif 000007
【図６Ｂ】
0006674272.tif 000008
【図６Ｃ】
0006674272.tif 000009
【図６Ｄ】
0006674272.tif 000010
【図７】
0006674272.tif 000011
【図８】
0006674272.tif 000012
【図９】
0006674272.tif 000013