(57)【要約】  一実施形態に従って、リモートサーバ（例えば、リモートデータベースサーバ）からの異種データベースレプリケーションのためのシステムおよび方法を本明細書に記載する。リモートサーバのレプリケーションスレーブとしてキャプチャプロセスが登録され得る。キャプチャプロセスは、当該サーバからトランザクションイベントデータを受信するように構成され得る。リモートサーバにおけるデータベースの変更に関連付けられたトランザクションログイベントが処理され、１つ以上の異種ターゲット（例えば、ターゲットデータベースサーバまたはメッセージキュー）用のカノニカルフォーマット出力における変更データとして出力され得る。このプロセスにより、異なるコンピュータもしくはネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内に位置し得るリモートサーバにおけるデータベーストランザクションに関連付けられたトランザクションログイベントを、そのトランザクションログのコピーを追加的に作成する必要なくキャプチャすることが可能になる。
2021509980.tif 000002
【特許請求の範囲】
【請求項１】
リモートサーバからの異種データベースレプリケーションのためのシステムであって、
プロセッサを有するコンピュータを備え、
前記コンピュータはさらに、前記コンピュータ上で動作してデータベースサーバ間でのデータのレプリケートを可能にする変更データシステムを有し、
リモートサーバにキャプチャプロセスが登録され、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、システム。
【請求項２】
前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、請求項１に記載のシステム。
【請求項３】
環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、請求項１または２に記載のシステム。
【請求項４】
前記変更データキャプチャシステムは、前記リモートサーバとは異なるコンピュータにおいて、または異なるネットワーク上に提供される、請求項３に記載のシステム。
【請求項５】
前記リモートサーバは、アクセスが制限された環境内、またはクラウド環境内に提供される、前述の請求項のいずれか１項に記載のシステム。
【請求項６】
前記リモートサーバはＭｙＳＱＬサーバである、前述の請求項のいずれか１項に記載のシステム。
【請求項７】
リモートサーバからの異種データベースレプリケーションのための方法であって、
プロセッサを備えるコンピュータにおいて、前記コンピュータ上で動作してデータベースサーバ間でのデータのレプリケートを可能にする変更データシステムと、リモートサーバに登録されるキャプチャプロセスとを提供するステップを含み、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、方法。
【請求項８】
前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、請求項７に記載の方法。
【請求項９】
環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、請求項７または８に記載の方法。
【請求項１０】
前記変更データキャプチャシステムは、前記リモートサーバとは異なるコンピュータにおいて、または異なるネットワーク上に提供される、請求項９に記載の方法。
【請求項１１】
前記リモートサーバは、アクセスが制限された環境内、またはクラウド環境内に提供される、請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記リモートサーバはＭｙＳＱＬサーバである、請求項７〜１１のいずれか１項に記載の方法。
【請求項１３】
命令を格納したコンピュータ読取可能記憶媒体であって、前記命令は、１つ以上のコンピュータによって読み取られ実行されると前記１つ以上のコンピュータに方法を遂行させ、前記方法は、
データベースサーバ間でのデータのレプリケートを可能にする変更データシステムと、リモートサーバに登録されるキャプチャプロセスとを提供するステップを含み、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、コンピュータ読取可能記憶媒体。
【請求項１４】
前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、請求項１３に記載のコンピュータ読取可能記憶媒体。
【請求項１５】
環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、請求項１３または１４に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張および関連出願の相互参照
本願は、２０１８年４月２７日に出願された、「リモートサーバからの異種（ヘテロジニアス）データベースレプリケーションのためのシステムおよび方法」と題された米国仮特許出願第６２／６６３，９５４号の優先権を主張するものであり、２０１３年８月１３日に発行された「ＭＹＳＱＬデータベース異種ログに基づくレプリケーション」と題された米国特許第８，５１０，２７０号に関連するものである。これらの出願および特許は、いずれも引用によりここに援用される。
【０００２】
技術分野
本明細書に記載の実施形態は、概して変更データキャプチャ環境に関するものであり、特に、リモートサーバ（例えば、リモートデータベースサーバ）からの異種データベースレプリケーションのためのシステムおよび方法に関するものである。
【背景技術】
【０００３】
背景
例えば、データベースのバックアップを作成するために、または異なるデータベースアプリケーション間でのデータの共有を可能にするために、異なるデータベース環境間でデータを移動させ、コピーし、または他の方法でレプリケートすることが、組織にとって必要になる場合がある。
【０００４】
変更データキャプチャシステムは、例えば、テーブルおよびそのデータの全体をコピーするのではなく、データベーストランザクション（例えば、行演算）の結果データベーステーブルに生じたデータの変更を検出してレプリケートすることにより、上記必要性への対処を手助けする。このようなアプローチを用いることにより、例えば、ソースデータベース内のデータをターゲットデータベース内のデータと同期させることができる。
【０００５】
あるデータレプリケーション環境では、変更データキャプチャシステムが動作することにより、データベーストランザクションのレコードをトランザクションログファイルから読み出し、そのレコードを用いてソースサーバとターゲットサーバとの間でデータをレプリケートし、またはデータベースを変更することができる。
【０００６】
しかしながら、そのようなアプローチの場合、一般的に、ローカルに格納されたトランザクションログファイルの場所を把握し、そこに直接アクセスするためにキャプチャプロセスが必要である。例えば、キャプチャプロセスとは異なるコンピュータ上、または異なるネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内でソースデータベースサーバが動作している場合、キャプチャプロセスは、そのトランザクションログファイルにアクセスすることができない可能性がある。
【０００７】
リモートトランザクション処理能力が不足している場合、そのような環境では変更データキャプチャまたはデータレプリケーションの使用が制限される。
【発明の概要】
【課題を解決するための手段】
【０００８】
概要
一実施形態に従って、リモートサーバ（例えば、リモートデータベースサーバ）からの異種データベースレプリケーションのためのシステムおよび方法を本明細書に記載する。リモートサーバのレプリケーションスレーブとしてキャプチャプロセスが登録され得る。キャプチャプロセスは、当該サーバからトランザクションイベントデータを受信するように構成され得る。リモートサーバにおけるデータベースの変更（修正）に関連付けられたトランザクションログイベントが処理され、１つ以上の異種ターゲット（例えば、ターゲットデータベースサーバまたはメッセージキュー）用のカノニカルフォーマット出力における変更データとして出力され得る。
【０００９】
本明細書に記載のシステムおよび方法の技術的な目的としては、そのプロセスを行なうことにより、異なるコンピュータもしくはネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内に位置し得るリモートサーバにおけるデータベーストランザクションに関連付けられたトランザクションログイベントを、そのトランザクションログのコピーを追加的に作成する必要なくキャプチャすることを可能にすることが挙げられる。
【００１０】
本明細書に記載のシステムおよび方法の利点として挙げられるのは、キャプチャプロセスがトランザクションログにローカルでアクセスする必要がなく、キャプチャプロセスとは異なるコンピュータ上、または異なるネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内にあるトランザクションログにアクセス可能である点である。
【００１１】
本明細書に記載のシステムおよび方法のさらなる利点として挙げられるのは、異種サーバ間（すなわち、異なるタイプのサーバ、例えば、第１のタイプのリモートサーバと第２のタイプのターゲットサーバとの間）でのトランザクションログデータのレプリケーションをサポートできる点である。これは、カノニカルフォーマット出力を用いて各特定のターゲットに応じてコマンドまたはクエリを作成し、そのコマンドまたはクエリを当該ターゲットに適用することによって可能になる。
【００１２】
本明細書に記載のシステムおよび方法のさらなる利点として挙げられるのは、リモートサーバ通信でのデータベースの変更に関連付けられたトランザクションログイベントの通信が、当該リモートサーバでネイティブアプリケーションプログラムインターフェイス（ＡＰＩ）による動作を必要とせずに、可能になる点である。
【００１３】
本明細書に記載のシステムおよび方法のさらなる利点として挙げられるのは、キャプチャプロセスを、リモートサーバを用いた動作を可能にするログ位置付け情報（例えば、時間またはインデックスによるログ位置付け情報）を決定するためのプロセスまたはアルゴリズムを動作させるように構成することができ、その結果、このコマンドが成功裏に返されると、サーバは、開始位置から始まるトランザクションログデータの送信を開始することができる点である。
【図面の簡単な説明】
【００１４】
【図１】一実施形態に従って、変更データキャプチャシステムを用いて異種データベースレプリケーションを可能にすることを示す図である。
【図２】一実施形態に従って、トランザクションログをコピーすることを含む変更データキャプチャシステムを示す図である。
【図３】一実施形態に従って、（エミュレートされた）レプリケーションスレーブとして動作するキャプチャプロセスを含めて、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることを示す図である。
【図４】一実施形態に従って、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることをさらに示す図である。
【図５】一実施形態に従って、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることをさらに示す図である。
【図６】一実施形態に従って、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることをさらに示す図である。
【図７】異なるタイプのサーバ間での異種データベースレプリケーションを可能にするカノニカルフォーマット出力を変更データキャプチャシステムが提供する方法を示す図である。
【図８】一実施形態に従って、リモートサーバからの異種データベースレプリケーションを提供するためのプロセスを示す図である。
【図９】一実施形態に従って、リモートサーバからの異種データベースレプリケーションを提供するためのプロセスをさらに示す図である。
【図１０】一実施形態に従って、リモートサーバがダンプスレッドを用いる変更データキャプチャシステムの一例を示す図である。
【図１１】一実施形態に従って、リモートサーバがダンプスレッドを用いる変更データキャプチャシステムの一例をさらに示す図である。
【図１２】一実施形態に従って、ダンプスレッドを用いるリモートサーバからの異種データベースレプリケーションを提供するための例示的なプロセスを示す図である。
【図１３】一実施形態に従って、ダンプスレッドを用いる例示的なプロセスをさらに示す図である。
【図１４】一実施形態に従って、クライアントデバイスおよびユーザインターフェイスを用いて変更データキャプチャシステムを設定することによってリモートサーバからの異種データベースレプリケーションを可能にすることを示す図である。
【図１５】一実施形態に従って、変更データキャプチャシステムの設定を可能にすることによってリモートサーバからの異種データベースレプリケーションを可能にする例示的なユーザインターフェイスを示す図である。
【図１６】一実施形態に従って、変更データキャプチャシステムの設定を可能にすることによってリモートサーバからの異種データベースレプリケーションを可能にする例示的なユーザインターフェイスをさらに示す図である。
【発明を実施するための形態】
【００１５】
詳細な説明
上述したように、あるデータレプリケーション環境では、変更データキャプチャ（ｃｈａｎｇｅ  ｄａｔａ  ｃａｐｔｕｒｅ：ＣＤＣ）システムが動作することにより、データベーストランザクションのレコードをトランザクションログファイルから読み出し、そのレコードを用いてソースサーバとターゲットサーバとの間でデータをレプリケートし、またはデータベースを変更することができる。
【００１６】
しかしながら、そのようなアプローチの場合、一般的に、ローカルに格納されたトランザクションログファイルの場所を把握し、そこに直接アクセスするためにキャプチャプロセスが必要である。例えば、キャプチャプロセスとは異なるコンピュータ上、または異なるネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内でソースデータベースサーバが動作している場合、キャプチャプロセスは、そのトランザクションログファイルにアクセスすることができない可能性がある。
【００１７】
これらの問題点に対処するために使用可能なアプローチの例としては、以下のものがある。ただし、さまざまな限定を付している。
【００１８】
トランザクションログが位置する格納場所またはディレクトリを、例えば、ネットワークファイルシステム（ＮＦＳ）を用いて共有可能にマウントすれば、キャプチャプロセスは、リモートトランザクションログファイルをローカルファイルとして処理することが可能である。しかしながら、上述したように、例えば、キャプチャプロセスとは異なるコンピュータ上、または異なるネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内でソースデータベースサーバが動作している場合、キャプチャプロセスは、そのトランザクションログファイルにアクセスすることができない可能性がある。
【００１９】
トランザクションログのユーティリティソフトウェアまたはプログラムを用いて、トランザクションログをリモートサーバからローカルコンピュータまたはローカルマシンにダウンロードおよびストリーミングし、当該コンピュータまたはマシンにおいてそのトランザクションログを処理することもできる。しかしながら、これは、トランザクションログファイルのコピーを追加的に作成することを含み、結果として入出力（Ｉ／Ｏ）オーバーヘッドおよび調整オーバーヘッドをもたらすことになる。また、トランザクションログの読み出しと処理との間に追加の処理のレイヤを生じさせることにもなる。
【００２０】
変更データキャプチャシステムと同じコンピュータまたはマシン上に構成された別個の（ネイティブ）レプリケーションスレーブをリモートサーバに接続させ、データベーストランザクションをローカルにレプリケートして、リモートサーバ上にあるデータベーストランザクションのレプリカトランザクションログを生成することもできる。このレプリカトランザクションログは、ローカルで処理することが可能である。しかしながら、このアプローチも同様に、トランザクションログファイルのコピーを追加的に作成することを含み、それはＩ／Ｏオーバーヘッド、調整オーバーヘッドを伴い、追加の処理のレイヤを生じさせる。
【００２１】
リモートサーバからのデータベースレプリケーション
一実施形態に従って、リモートサーバ（例えば、リモートデータベースサーバ）からの異種（ヘテロジニアス）データベースレプリケーションのためのシステムおよび方法を本明細書に記載する。リモートサーバのレプリケーションスレーブとしてキャプチャプロセスが登録され得る。キャプチャプロセスは、当該サーバからトランザクションイベントデータを受信するように構成され得る。リモートサーバにおけるデータベースの変更に関連付けられたトランザクションログイベントが処理され、１つ以上の異種ターゲット（例えば、ターゲットデータベースサーバまたはメッセージキュー）用のカノニカルフォーマット出力における変更データとして出力され得る。
【００２２】
本明細書に記載のシステムおよび方法の技術的な目的としては、そのプロセスを行なうことにより、異なるコンピュータもしくはネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内に位置し得るリモートサーバにおけるデータベーストランザクションに関連付けられたトランザクションログイベントを、そのトランザクションログのコピーを追加的に作成する必要なくキャプチャすることを可能にすることが挙げられる。
【００２３】
例えば、一実施形態によれば、本明細書に記載のシステムおよび方法によって、変更データキャプチャシステムは、サーバの場所に関係なく、かつトランザクションログの物理的な場所を把握する必要なく、リモートサーバ内のトランザクションログデータを利用することが可能である。
【００２４】
一実施形態によれば、ユーザインターフェイスまたは設定ファイルを介してリモートサーバの接続パラメータを指定することができる。これにより、キャプチャプロセスは、サーバに接続し、当該サーバからトランザクションログデータを受信することができる。受信されたデータは、ローカルキャプチャと同様の方法で処理され得る。これは、例えば、トランザクションログデータをカノニカルフォーマット出力（例えば、Ｏｒａｃｌｅ  ＧｏｌｄｅｎＧａｔｅトレイル情報もしくはファイル、または別のタイプのファイルフォーマット）に出力することを含む。このカノニカルフォーマット出力は、デリバリープロセスによって読み出され、ターゲットに適用され得る。
【００２５】
このアプローチを用いると、トランザクションログファイルのコピーを追加的に作成する必要がなく、トランザクションログの読み出しと処理との間に処理のレイヤを追加する必要もない。
【００２６】
一実施形態によれば、キャプチャプロセス（例えば、キャプチャパラメータファイル）に関連付けられたユーザインターフェイスまたは設定ファイルによって、ユーザは、そこからトランザクションをレプリケートすべきリモートサーバを、任意の必要な接続パラメータ（例えば、リモートデータベースサーバ名、ユーザＩＤ、およびパスワードなど）とともに「リモート」に指定することが可能である。それらの接続パラメータを用いて、システムは当該リモートサーバからデータベーストランザクションをレプリケートすることができる。
【００２７】
図１は、一実施形態に従って、変更データキャプチャシステムを用いて異種データベースレプリケーションを可能にすることを示す図である。
【００２８】
図１に示すように、一実施形態によれば、変更データキャプチャシステム１００は、１つ以上のコンピュータリソース（例えば、ＣＰＵ、メモリ）１０１を備えるコンピュータに提供されており、リモートサーバシステム１０６から変更データをキャプチャするように構成され得る。リモートサーバシステム１０６は、同様に、１つ以上のコンピュータリソース１０７を備えるとともに、リモートサーバ１０２（例えば、ＭｙＳＱＬサーバ）をさらに備える。
【００２９】
一実施形態によれば、変更データキャプチャシステムは、キャプチャコンポーネント１１０を含んでもよい。キャプチャコンポーネント１１０は、コンピュータシステムまたは他の処理装置によって実行可能なソフトウェアまたはプログラムコード、例えば、Ｏｒａｃｌｅ  ＧｏｌｄｅｎＧａｔｅコンポーネントとして提供されてもよい。キャプチャコンポーネント１１０は、リモートサーバとの通信を可能にする抽出プロセッサ／アプリケーションプログラムインターフェイス（ＡＰＩ）１１１と、アクセスモジュール１１２（例えば、Ｏｒａｃｌｅ  ＧｏｌｄｅｎＧａｔｅ環境では、ベンダアクセスモジュール（ＶＡＭ））と、ＣＤＣプロセスマネージャ１１６とを含んでもよい。
【００３０】
一実施形態によれば、アクセスモジュールは、例えばリモートサーバシステムへのネットワーク接続／アクセス１１９によってデータソース内のレコードにアクセスする際に使用する、１つ以上のアクセススレッド１１７とリーダースレッド１１８とを含んでもよい。
【００３１】
一実施形態によれば、リモートサーバは、トランザクション１２８がデータベース１２９に適用されることを可能にする１つ以上のノードを含んでもよい。データ変更は、トランザクションログ１０４（例えば、ＭＹＳＱＬ環境では、ＭＹＳＱＬバイナリログまたはｍｙｓｑｌｂｉｎｌｏｇファイル）に書き込まれる。
【００３２】
一実施形態によれば、キャプチャプロセス１５０は、デリバリープロセス１５３と一緒に、データソースから読み出された変更データを、データベーストランザクションによってデータベースに生じた変更を示す変更データ１２１を含むカノニカルフォーマット出力１２０に変換する。このカノニカルフォーマット出力１２０は、１つ以上の異種ターゲット１３０によって使用される。例えば、ある実施形態では、特定のターゲットに応じてコマンドまたはクエリが作成され、そのコマンドまたはクエリが当該ターゲットに適用される。
【００３３】
一実施形態によれば、１つ以上のターゲットは、例えば、ターゲットサーバ１３１または他のターゲットシステム１３２であってもよい。その例としては、データベース、メッセージキュー、または他のタイプのターゲットサーバもしくはシステムのうちの１つ以上が含まれる。
【００３４】
一実施形態によれば、リモートサーバを１つ以上のレプリケーションスレーブ１４１，１４２に関連付けることができる。これにより、データベースの変更をリモートサーバシステム内で使用できるように他のノードにレプリケートすることが可能になる。
【００３５】
ログに基づくレプリケーション
上述したように、変更データキャプチャシステムの動作によって、データベーストランザクションのレコードをトランザクションログファイルから読み出すことができるが、キャプチャプロセスとは異なるコンピュータ上、または異なるネットワーク上、またはアクセスが制限された環境（例えば、クラウド環境）内でソースデータベースサーバが動作している場合、キャプチャプロセスは、そのトランザクションログファイルにアクセスすることができない可能性がある。
【００３６】
図２は、一実施形態に従って、トランザクションログをコピーすることを含む変更データキャプチャシステムを示す図である。
【００３７】
図２に示すように、一実施形態によれば、リモートサーバ１０２をソフトウェアユーティリティ（例えば、ＭＹＳＱＬ環境では、ｍｙｓｑｌｂｉｎｌｏｇユーティリティ）に関連付けることができる。このソフトウェアユーティリティは、例えば、キャプチャプロセスが実行されているコンピュータにリモートサーバからトランザクションログをダウンロードし、もしくはストリーミングし、または他の方法でコピーするために使用され得るものである。
【００３８】
このアプローチは、キャプチャプロセスを実行しているコンピュータ上の１つ以上の中間の、または一時的なトランザクションログファイル１１２にトランザクションログを書き込むことを含む。キャプチャプロセスはこの中間ファイルを読み出して処理し、データベーストランザクションを処理して１つ以上のカノニカルフォーマット出力に出力または書き込みすることができる。このカノニカルフォーマット出力は、例えばトレイル情報またはトレイルファイルであり、デリバリープロセスによって読み出されてターゲット（例えば、データベースサーバ）に適用されるものである。
【００３９】
しかしながら、上述したように、このアプローチの問題点は、このアプローチがトランザクションログファイルのコピーを追加的に作成することを含み、それはＩ／Ｏオーバーヘッド、調整オーバーヘッドを伴い、追加の処理のレイヤを生じさせるということである。
【００４０】
キャプチャプロセス
上記問題点に対処するために、一実施形態によれば、代わりに、リモートサーバのレプリケーションスレーブとしてキャプチャプロセスが登録され得る。キャプチャプロセスは、当該サーバからトランザクションイベントデータを含む情報を受信するように構成され得る。
【００４１】
図３は、一実施形態に従って、（エミュレートされた）レプリケーションスレーブとして動作するキャプチャプロセスを含めて、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることを示す図である。
【００４２】
図３に示すように、一実施形態によれば、リモートサーバは、そのレプリケーションスレーブにトランザクションログデータをデリバリーするように構成される。レプリケーションスレーブは、リモートサーバに接続されている間は、トランザクションログデータを要求することができる。レプリケーションスレーブは、リモートサーバが動作するコンピュータまたはマシンと同一のコンピュータまたはマシンに位置してもよいし、または異なるマシンに位置してもよい。
【００４３】
一実施形態によれば、キャプチャプロセスは、リモートサーバの（エミュレートされた）レプリケーションスレーブ１５１として現れて動作するように構成される（１５４）。これは、スレーブサーバ識別子（ＩＤ）１５７を決定するためのプロセスまたはアルゴリズムを用いることを含む。スレーブサーバＩＤ１５５は、リモートサーバを用いた動作を可能にするものである。スレーブサーバＩＤを決定するための例示的なプロセスまたはアルゴリズムを以下で説明する。キャプチャプロセスがサーバに接続され、（エミュレートされた）レプリケーションスレーブとして現れて動作するようになると、キャプチャプロセスは、ループでサーバにデータを要求することができる。
【００４４】
一実施形態によれば、ユーザは、キャプチャパラメータファイルを用いて、またはキャプチャパラメータ１４８を指定する他の方法もしくは手段を用いて、リモートサーバ接続パラメータを設定することができる。キャプチャプロセスは、この情報を用いてサーバに接続し、サーバが位置する場所に関係なく、サーバからのトランザクションログデータの受信を開始することができる。キャプチャプロセスがリモートサーバ内のトランザクションログデータの読み出しを開始すると、このデータはローカルキャプチャと同様の方法で処理され得る。これは、例えば、トランザクションログデータをカノニカルフォーマットの出力またはファイルに出力することを含む。
【００４５】
一実施形態によれば、キャプチャプロセスをリモートサーバのレプリケーションスレーブとして登録し、トランザクションイベントデータを含む情報を当該サーバから受信するようにこのキャプチャプロセスを構成することにより、トランザクションログイベントを処理してターゲットデータベースサーバ用に出力することができる。なお、トランザクションログイベントは、リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すものである。
【００４６】
図４は、一実施形態に従って、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることをさらに示す図である。
【００４７】
図４に示すように、一実施形態によれば、キャプチャプロセスは、クライアントまたはクライアントプロセスとしてリモートサーバに接続する。キャプチャプロセスは、リモートサーバに接続すると、まずはレプリケーションスレーブとしてサーバに登録される。一実施形態によれば、キャプチャプロセスは、自身をリモートサーバのレプリケーションスレーブとして登録させるために、「スレーブを登録」コマンド１５２などのコマンド（例えば、ＭＹＳＱＬ環境では、ＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥコマンド）を当該リモートサーバに送信することができる。
【００４８】
一実施形態によれば、「スレーブを登録」コマンドは、キャプチャプロセスがリモートサーバへの接続を確立した後であって、かつリモートサーバがキャプチャプロセスに何らかのデータを送信する前に、キャプチャプロセスとリモートサーバとの通信を可能にする。コマンド引数は、リモートサーバのネットワークアドレス、リモートサーバのユーザ名、パスワード、およびキャプチャプロセスに関連付けられたスレーブサーバＩＤ（例えば、Ｓｅｒｖｅｒ＿ＩＤ）を含み得る。
【００４９】
一実施形態によれば、キャプチャプロセスは、リモートサーバへの接続を確立した後に、接続パラメータおよびそのスレーブサーバＩＤとともに「スレーブを登録」コマンドを送信する。そうすると、リモートサーバは、そのレプリケーションスレーブのうちの１つとしてこのキャプチャプロセスを登録することができる。
【００５０】
図５は、一実施形態に従って、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることをさらに示す図である。
【００５１】
図５に示すように、一実施形態によれば、キャプチャプロセスがリモートサーバのレプリケーションスレーブとして登録されると、キャプチャプロセスは、例えば「トランザクション（ＴＸ）イベントを受信」するためのコマンド１５６を用いて、トランザクション（ＴＸ）イベントデータ１５８を含むデータを送信するようサーバに要求することができる。
【００５２】
例えば、一実施形態によれば、サーバからトランザクションログデータを受信するために、リモートサーバへの登録の後、サーバは、キャプチャプロセスへのダンプスレッドを開始することができる。このダンプスレッドによって、キャプチャプロセスはトランザクションログデータを受信することが可能である。ダンプスレッドに関連付けられたスレーブサーバＩＤは、前のステップで登録されたものと同じである。サーバは、そのダンプスレッドによってトランザクションイベントデータを要求することができる。
【００５３】
他の実施形態によれば、リモートサーバのタイプに応じて、キャプチャプロセスは、当該キャプチャプロセスがリモートサーバのレプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を当該サーバから受信するように構成されることを可能にする他の方法を代替的に用いてもよい。
【００５４】
図６は、一実施形態に従って、変更データキャプチャシステムを用いてリモートサーバからの異種データベースレプリケーションを可能にすることをさらに示す図である。
【００５５】
図６に示すように、一実施形態によれば、キャプチャプロセスは、リモートサーバを用いた動作を可能にするログ位置付け情報を決定するためのプロセスまたはアルゴリズム１６１を動作させるように構成される。このコマンドが成功裏に返されると、サーバは、サーバに送信された開始位置１６２（例えば、ログ番号および位置）から始まるトランザクションログデータの送信を開始することができる。そうすると、キャプチャプロセスは、例えばｃｌｉ＿ｓａｆｅ＿ｒｅａｄ呼出しにより、ループでサーバにデータを要求することができる（１６３）。このデータは、例えばカノニカルフォーマット出力に出力１６４として書き込まれることになる。
【００５６】
開始位置の設定
上述したように、一実施形態によれば、キャプチャプロセスは、リモートサーバを用いた動作を可能にするログ位置付け情報を決定するためのプロセスまたはアルゴリズムを動作させるように構成される。このコマンドが成功裏に返されると、サーバは、開始位置から始まるトランザクションログデータの送信を開始することができる。
【００５７】
例えば、一実施形態によれば、コマンド（例えば、ＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰ）をトランザクションログ名および開始オフセット位置とともに送信することができる。開始位置付けを、タイムスタンプ、オフセット、およびデフォルトによってサポートすることができる。
【００５８】
一実施形態によれば、ログオフセットによって開始位置を設定する場合、ユーザから受け取ったログ番号をログ名にマッピングしてもよい。その場合、ユーザによって与えられたバイナリログ名および開始オフセットがコマンドに与えられ、そのコマンドはサーバに送信される。
【００５９】
一実施形態によれば、イベントのタイムスタンプを、位置付けすべきタイムスタンプと照合することができる。特定のｂｉｎｌｏｇファイルにおいて正しく照合が取れたことを検出すると、そのタイムスタンプに対応するイベントの開始オフセットを取得し、開始位置をそのオフセットに設定する。
【００６０】
一実施形態によれば、キャプチャプロセスの開始時に作成されたｂｉｎｌｏｇのリストから第１のバイナリログ名を取得し、デフォルトログオフセットを送信することができる。
【００６１】
開始位置を設定するためのさまざまな方法を説明するために、一実施形態に従う例を上記で提示した。しかしながら、他の実施形態に従って、他の方法を用いることも可能である。
【００６２】
異種データベースレプリケーション
図７は、異なるタイプのサーバ間での異種データベースレプリケーションを可能にするカノニカルフォーマット出力を変更データキャプチャシステムが提供する方法を示す図である。
【００６３】
上述したように、一実施形態によれば、リモートサーバにおけるデータベースの変更に関連付けられたトランザクションログイベントが処理され、１つ以上の異種ターゲット（例えば、ターゲットデータベースサーバまたはメッセージキュー）用のカノニカルフォーマット出力における変更データとして出力され得る。
【００６４】
例えば、図７に示すように、一実施形態によれば、キャプチャプロセスを１つ以上のデリバリープロセス１７６とともに用いて、データソース（例えば、第１のタイプのリモートサーバ）から読み出された変更データをカノニカルフォーマット出力に変換することができる。このカノニカルフォーマット出力は、１つ以上の異種ターゲット（この例では、第２のタイプのターゲットサーバ１７２および／または第３のタイプのターゲットサーバ１７４を含む）によって使用される。これは、特定の各ターゲットに応じてコマンドまたはクエリを作成し、そのコマンドまたはクエリを当該ターゲットに適用することによって行なわれる。
【００６５】
データベースレプリケーションの方法
図８は、一実施形態に従って、リモートサーバからの異種データベースレプリケーションを提供するためのプロセスを示す図である。
【００６６】
図８に示すように、一実施形態によれば、リモートサーバ（例えば、リモートサーバ）からの異種データベースレプリケーションのための方法は、ステップ１８２において、リモートサーバへの接続をセットアップすることを含み得る。
【００６７】
ステップ１８４では、プロセスは、キャプチャプロセス（例えば、Ｏｒａｃｌｅ  ＧｏｌｄｅｎＧａｔｅキャプチャ）を、リモートサーバの（エミュレートされた）レプリケーションスレーブとして動作するキャプチャプロセスとして登録することを含み得る。
【００６８】
ステップ１８６では、プロセスは、リモートサーバからトランザクションイベントデータを受信するようにキャプチャプロセスを構成することを含み得る。
【００６９】
ステップ１８８では、プロセスは、リモートサーバトランザクションログイベントを処理し、ターゲットサーバ用のカノニカルフォーマット出力として出力または書き込みすることを含み得る。
【００７０】
ステップ１９０では、リモートサーバとは異なるサーバタイプの１つまたは複数の異種ターゲットサーバ用のカノニカルフォーマット出力を提供する。
【００７１】
図９は、一実施形態に従って、リモートサーバからの異種データベースレプリケーションを提供するためのプロセスをさらに示す図である。
【００７２】
図９（ステップ１８４および１８６は、上述したものであってもよい）に示すように、一実施形態によれば、プロセスは、ステップ１９２において、既存のレプリケーションスレーブリストを決定することを含み得る。
【００７３】
ステップ１９３では、キャプチャプロセスを（エミュレートされた）レプリケーションスレーブとして動作させるためのスレーブサーバＩＤを決定する。
【００７４】
ステップ１９４では、キャプチャプロセスをリモートサーバの（エミュレートされた）レプリケーションスレーブとして登録する。
【００７５】
ステップ１９６では、トランザクションログ用の開始位置を設定する。
ステップ１９７では、リモートサーバにおけるトランザクションログを開始位置から処理する。
【００７６】
ステップ１９８では、トランザクションログイベントを読み出し、それを用いてカノニカルフォーマット出力を用意する。
【００７７】
実施例
以下のセクションでは、例示の目的のために、分散型データソースシステム（例えば、ＭｙＳＱＬデータベースを動作させるＭｙＳＱＬサーバなど）から変更データをキャプチャする例示的な実施形態を記載する。
【００７８】
他の実施形態によれば、他のタイプの分散型データソースまたはデータベースをサポートすることも可能である。さまざまな実施形態の理解を提供するために、以下では便宜上さまざまな詳細を示している。しかしながら、具体的詳細なしで実施形態を実施することも可能である。以下の記載は、限定することを意図するものではない。
【００７９】
図１０は、一実施形態に従って、リモートサーバがダンプスレッド２０６を用いる変更データキャプチャシステムの一例を示す図である。
【００８０】
図１０に示すように、一実施形態によれば、キャプチャプロセスは、クライアントまたはクライアントプロセスとしてリモートサーバシステム２０２およびリモートサーバ（例えば、ＭｙＳＱＬサーバ）２０４に接続する。キャプチャプロセスは、リモートサーバに接続すると、まずはレプリケーションスレーブとしてサーバに登録される。一実施形態によれば、キャプチャプロセスは、自身をリモートサーバのレプリケーションスレーブとして登録させるために、「スレーブを登録」コマンド（例えば、ＭＹＳＱＬ環境では、ＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥコマンド）を当該リモートサーバに送信することができる。
【００８１】
一実施形態によれば、上述したように、「スレーブを登録」コマンドは、キャプチャプロセスがリモートサーバへの接続を確立した後であって、かつリモートサーバがキャプチャプロセスに何らかのデータを送信する前に、キャプチャプロセスとリモートサーバとの通信を可能にする。コマンド引数は、リモートサーバのネットワークアドレス、リモートサーバのユーザ名、パスワード、およびキャプチャプロセスに関連付けられたスレーブサーバＩＤ（例えば、Ｓｅｒｖｅｒ＿ＩＤ）を含み得る。
【００８２】
一実施形態によれば、キャプチャプロセスは、リモートサーバへの接続を確立した後に、接続パラメータおよびそのスレーブサーバＩＤとともに「スレーブを登録」コマンドを送信する。そうすると、リモートサーバは、そのレプリケーションスレーブのうちの１つとしてこのキャプチャプロセスを登録することができる。
【００８３】
図１１は、一実施形態に従って、リモートサーバがダンプスレッドを用いる変更データキャプチャシステムの一例をさらに示す図である。
【００８４】
図１１に示すように、一実施形態によれば、上述したように、キャプチャプロセスは、リモートサーバを用いた動作を可能にするログ位置付け情報を決定するためのプロセスまたはアルゴリズムを動作させるように構成される。このコマンドが成功裏に返されると、サーバは、サーバに送信された開始位置（例えば、ログ番号および位置）から始まるトランザクションログデータの送信を開始することができる。そうすると、キャプチャプロセスは、例えばｃｌｉ＿ｓａｆｅ＿ｒｅａｄ呼出しにより、ループでサーバにデータを要求することができる（２１０）。このデータは、カノニカルフォーマット出力に出力として書き込まれることになる。
【００８５】
一実施形態によれば、「スレッドをダンプ」コマンド２０８（例えば、ＭＹＳＱＬ環境では、ＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰコマンド）によって、リモートサーバ内にダンプスレッドが作成される。キャプチャプロセスは、このダンプスレッドを用いてトランザクションログデータをネットワーク経由で受信開始する。「スレッドをダンプ」コマンドは、トランザクション（バイナリ）ログ名、開始位置、およびフラグとともにサーバに送信される。フラグ値は、前回のトランザクションログにおける前回のデータセットを読み出した後にダンプスレッドが継続していたか否かを示す。
【００８６】
リモートサーバへの接続のセットアップ
一実施形態によれば、キャプチャプロセスは、リモートサーバへの専用の接続を確立する。これにより、キャプチャプロセスは、（エミュレートされた）レプリケーションスレーブとして現れて動作するとともにリモートサーバからイベントストリームデータを連続的に取得するように、セットアップされる。接続が確立された後、以下の接続属性も設定される。
【００８７】
ＭＹＳＱＬ＿ＯＰＴ＿ＳＳＬ＿ＭＯＤＥ：クライアントのＳＳＬ要件。
ＭＹＳＱＬ＿ＯＰＴ＿プロトコル：デフォルト通信プロトコルはＴＣＰ。
【００８８】
ＭＹＳＱＬ＿ＯＰＴ＿ＣＯＮＮＥＣＴ＿ＡＴＴＲ＿ＡＤＤ：これにより、接続情報がｐｅｒｆｏｒｍａｎｃｅ＿ｓｃｈｅｍａ．ｓｅｓｓｉｏｎ＿ｃｏｎｎｅｃｔ＿ａｔｔｒｓに追加される。例えば、プログラム名が追加され得る。これは、プログラムを監視またはトラブル解決するための助けとなり得る。
【００８９】
一実施形態によれば、リモートサーバは、クライアントがチェックサムを認識しているか否かについての情報を受け取ることができる。というのは、例えばＭｙＳＱＬサーバは、チェックサムを認識しているレプリケーションスレーブしかサポートしないからである。例えば、ＳＥＴ＠ｍａｓｔｅｒ＿ｂｉｎｌｏｇ＿ｃｈｅｃｋｓｕｍ＝‘ＮＯＮＥ’によって、クライアントがチェックサムアルゴリズムを認識しているか否かがサーバに伝えられる。クライアントがリモートサーバに情報を与えない場合には、サーバは、クライアントにデータを返さず、ｃｌｉ＿ｓａｆｅ＿ｒｅａｄのエラーを返す。
【００９０】
キャプチャプロセスの登録
一実施形態によれば、リモートサーバは、チェックポイントおよびブックキーピングのために、そのレプリケーションスレーブのすべてについてのリストを登録する。
【００９１】
上述したように、一実施形態によれば、キャプチャプロセスは、自身をリモートサーバのレプリケーションスレーブとして登録させるために、コマンドＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥを当該リモートサーバに送信することができる。キャプチャプロセスは、このコマンドを、接続パラメータ（例えば、リモートサーバのネットワークアドレス、ユーザＩＤ、およびパスワード）ならびにスレーブサーバＩＤとともに提供することができる。
【００９２】
一実施形態によれば、キャプチャプロセスの登録に用いられるスレーブサーバＩＤは、既存のすべてのリモートサーバレプリケーションスレーブにわたって一意のものである。キャプチャプロセスに与えられたスレーブサーバＩＤが他の何らかの既存のレプリケーションスレーブプロセスのＩＤと衝突した（かち合った）場合、サーバは、既に動作中であるプロセスを終了させる。以下でさらに説明するように、一意のスレーブサーバＩＤは、キャプチャプロセスによって生成され、コマンドＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥのコマンド引数としてサーバに送信される。
【００９３】
レプリケーションスレーブリスト
一実施形態によれば、「スレーブホストを提示」コマンドによって、リモートサーバのレプリケーションスレーブとして登録されているすべてのホストの詳細な情報が提供される。このリストには、実際の／本物のレプリケーションスレーブが含まれるとともに、レプリケーションスレーブとして登録されているがリモートサーバの実際の／本物のレプリケーションスレーブではないプロセス（例えば、（エミュレートされた）レプリケーションスレーブとして動作するキャプチャプロセスなど）も含まれている。
【００９４】
一実施形態によれば、このコマンドの出力中の「Ｓｅｒｖｅｒ＿ＩＤ」カラムによって、すべてのレプリケーションスレーブサーバのＩＤが与えられる。「Ｓｅｒｖｅｒ＿ＩＤ」カラムにおける値は、キャプチャプロセスがコマンドＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥをリモートサーバに送信する際に提供する値と同じである。この変数は内部変数としてサーバによって使用される。「スレーブホストを提示」コマンドにより、クライアントアプリケーションにおけるすべてのレプリケーションスレーブサーバについてＳｅｒｖｅｒ＿ＩＤ値を取得する方法が提供される。このコマンドからの出力がパースされて「Ｓｅｒｖｅｒ＿ＩＤ」値が取得され、その値はソートされたリストに格納される。
【００９５】
以下に示す例（例１）は、一実施形態に係る、すべてのスレーブサーバＩＤのリストを決定するための例示的なソフトウェア方法またはプログラムコードを示す。
【００９６】
【数１】
2021509980.tif 000003
【００９７】
例１
スレーブサーバＩＤの決定
上述したように、一実施形態によれば、キャプチャプロセスは、リモートサーバの（エミュレートされた）レプリケーションスレーブとして現れて動作するように構成される。これは、リモートサーバを用いた動作を可能にするスレーブサーバＩＤを決定するためのプロセスまたはアルゴリズムを用いることを含む。
【００９８】
一実施形態によれば、登録されたレプリケーションスレーブのスレーブサーバＩＤは、一意の値である必要があり、他の／既存の登録されたレプリケーションスレーブのＩＤと衝突するものであってはならない。一意のスレーブサーバＩＤを生成するための例示的なプロセスまたはアルゴリズムを、例示の目的のために以下に示す。他の実施形態によれば、一意のサーバＩＤ値を決定するために他の方法を用いることも可能である。
【００９９】
最も小さいスレーブサーバＩＤが１よりも大きい場合、この最も小さいスレーブサーバＩＤをデクリメントし、結果として得られた値をキャプチャプロセスに割り当てる。
【０１００】
既存の２つの連続するスレーブサーバＩＤ間に隔たりがある場合、下限スレーブサーバＩＤを１だけインクリメントし、結果として得られた値をキャプチャプロセスに割り当てる。
【０１０１】
上記の場合のいずれにも当てはまらない場合、最も大きいスレーブサーバＩＤを１だけインクリメントし、結果として得られた値をキャプチャプロセスに割り当てる。
【０１０２】
一実施形態によれば、上記のプロセスまたはアルゴリズムを用いて生成されたスレーブサーバＩＤは、リモートサーバのすべてのレプリケーションスレーブにわたって、かつキャプチャコンポーネントのすべてのインスタンスにわたって一意となるべきである。キャプチャプロセスの各インスタンスに対して一意のスレーブサーバＩＤ値を作成するために、プロセスまたはアルゴリズム（ロジック）をクリティカルなセクション内で実施してもよい。これにより、キャプチャプロセスに対してスレーブサーバＩＤ値を一意の値として生成することを保証することができる。
【０１０３】
ある例では、ユーザはリモートサーバの別のレプリケーションスレーブを作成することができ、新たなレプリケーションスレーブを作成する前に既存のプロセスを終了させることができる。このような例では、ユーザは、既存のレプリケーションスレーブのＩＤと衝突するＩＤを持つレプリケーションスレーブを作成しないように注意を払わなければならない。
【０１０４】
以下に示す例（例２）は、一実施形態に係る、キャプチャプロセス内にスレーブサーバＩＤ（例えば、Ｓｅｒｖｅｒ＿ＩＤ）を生成するための例示的なソフトウェア方法またはプログラムコードを示す。
【０１０５】
【数２】
2021509980.tif 000004
【０１０６】
例２
上記の例示的なプロセスまたはアルゴリズムは、例として示したものである。他の実施形態によれば、一意のサーバＩＤ値を決定するために他の方法を用いることも可能である。
【０１０７】
ＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥコマンド
一実施形態によれば、Ｓｅｒｖｅｒ＿ＩＤ値を生成した後、コマンドのパラメータとしてＳｅｒｖｅｒ＿ＩＤ、リモートサーバ名、ユーザＩＤ、およびパスワードに値を与えて、コマンドＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥをリモートサーバに送信する。
【０１０８】
以下に示す例（例３）は、一実施形態に係る、キャプチャプロセスをリモートサーバの（エミュレートされた）レプリケーションスレーブとして動作させるように登録するための例示的なソフトウェア方法またはプログラムコードを示す。
【０１０９】
【数３】
2021509980.tif 000005
【０１１０】
例３
ダンプスレッドとしてのキャプチャプロセス
一実施形態によれば、キャプチャプロセスをリモートサーバのレプリケーションスレーブサーバとして登録した後、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰをリモートサーバに送信する。
【０１１１】
一実施形態によれば、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰをリモートサーバに送信ことによって、このリモートサーバの（エミュレートされた）レプリケーションスレーブとして動作するキャプチャプロセスが作成され、ｂｉｎｌｏｇイベントがリモートでキャプチャされ続ける。コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰは、リモートサーバへの送信前に、そのパラメータ値で埋められる。以下は、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰのパラメータである。
【０１１２】
Ｓｅｒｖｅｒ＿ＩＤ：キャプチャプロセスは（エミュレートされた）レプリケーションスレーブとして動作し、キャプチャプロセスにはＳｅｒｖｅｒ＿ＩＤが与えられることになる。Ｓｅｒｖｅｒ＿ＩＤによって、リモートサーバはキャプチャプロセスを識別する。これは、キャプチャプロセスがリモートサーバのレプリケーションスレーブとして登録される際に使用されたのと同じＳｅｒｖｅｒ＿ＩＤ値で設定される。このＳｅｒｖｅｒ＿ＩＤが、動作中の他の（エミュレートされた、または実際の／本物の）レプリケーションスレーブのＩＤと衝突する場合、既に動作中であるインスタンスを無効にする。
【０１１３】
Ｂｉｎｌｏｇ名：リモートキャプチャを行なうためには、ｂｉｎｌｏｇファイル名を予め与えておくことが必須である。なぜなら、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰがｂｉｎｌｏｇファイル名を必要とするからである。サーバは、そのバイナリログに従って提供されるデータの検索を開始する。バイナリログが存在しない場合、コマンド実行は、その旨の理由を指定するエラーを返す。
【０１１４】
開始位置：コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰは開始位置オフセットとして４バイトしか受け取ることができない。そのため、リモートキャプチャにおいて、４ＧＢよりもサイズの大きいバイナリログファイルをサポートすることはできない。
【０１１５】
ダンプフラグ：ＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰの設定に利用可能なフラグは２つある。１つはＢＩＮＬＯＧ＿ＤＵＭＰ＿ＮＯＮ＿ＢＬＯＣＫであり、もう１つは０である。フラグがＢＩＮＬＯＧ＿ＤＵＭＰ＿ＮＯＮ＿ＢＬＯＣＫに設定されると、ログの終端が読み出された後にキャプチャプロセス（キャプチャアプリケーション）の接続が切断されることになる。キャプチャプロセスが読み出しを続けた結果、フラグが０に設定されることになる。
【０１１６】
一実施形態によれば、上記のフィールドをすべてポピュレートした後、ｓｉｍｐｌｅ＿ｃｏｍｍａｎｄライブラリ関数を用いてコマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰをサーバに送信する。
【０１１７】
以下に示す例（例４）は、一実施形態に係る、キャプチャプロセス内にダンプスレッドを作成するための例示的なソフトウェア方法またはプログラムコードを示す。
【０１１８】
【数４】
2021509980.tif 000006
【０１１９】
例４
一実施形態によれば、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰがサーバに送信されると、キャプチャプロセスは、例えばＭｙＳＱＬクライアントライブラリ関数ｃｌｉ＿ｓａｆｅ＿ｒｅａｄまたはｍｙｓｑｌ＿ｂｉｎｌｏｇ＿ｆｅｔｃｈをループで使用して、ｂｉｎｌｏｇイベントデータストリームをリモートサーバから読み出すことができる。
【０１２０】
開始位置の設定
上述したように、一実施形態によれば、キャプチャプロセスは、リモートサーバを用いた動作を可能にするログ位置付け情報を決定するためのプロセスまたはアルゴリズムを動作させるように構成される。このコマンドが成功裏に返されると、サーバは、当該サーバに送信された開始位置から始まるトランザクションログデータの送信を開始することができる。
【０１２１】
一実施形態によれば、コマンド（例えば、ＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰ）をｂｉｎｌｏｇ（トランザクションログ）名および開始オフセット位置とともに送信することができる。ＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰが成功すると、リモートサーバは、そのｂｉｎｌｏｇにおける当該オフセットから始まるトランザクションログデータの送信を開始する。コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰによって、キャプチャプロセスのための開始読み出し位置が設定される。
【０１２２】
一実施形態によれば、開始位置付けを、タイムスタンプ、オフセット、およびデフォルトによってサポートすることができる。コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰを用いることにより、リモートトランザクションレプリケーションのためのこれらすべてのタイプの位置付けを実現することができる。
【０１２３】
Ｏｆｆｓｅｔ−ＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰによる開始位置の設定
一実施形態によれば、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰを使用するにあたって、ログオフセットによって開始位置を設定することは自然なことである。ユーザから受け取ったログ番号は、バイナリログ名にマッピングされる。ユーザによって与えられたバイナリログ名および開始オフセットは、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰに提供される。コマンドがサーバに送信され、リモートサーバは、その位置から始まるｂｉｎｌｏｇイベントの送信を開始する。
【０１２４】
タイムスタンプによる開始位置の設定
一実施形態によれば、キャプチャプロセスの開始時に、既存のすべてのトランザクションログファイルのリストが、それぞれのタイムスタンプ（フォーマットディスクリプタイベントタイムスタンプ）とともに作成される。その後、タイムスタンプによる位置付け時に、すべてのｂｉｎｌｏｇファイル名が逆の順序でＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰに送信され、最初から読み出される。イベントのタイムスタンプが、位置付けすべきタイムスタンプと照合される。特定のｂｉｎｌｏｇファイルにおいて正しく照合が取れたことが検出されると、そのタイムスタンプに対応するイベントの開始オフセットが取得される。そうすると、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰが送信されることにより、開始位置がそのオフセットに設定される。
【０１２５】
開始位置デフォルトの設定
一実施形態によれば、コマンドＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰは、ログ番号およびオフセットを開始位置として伝えることを命令する。キャプチャプロセスの開始時に作成されたｂｉｎｌｏｇのリストから第１のバイナリログ名を取得することができる。デフォルトログオフセットは、ＭｙＳＱＬｂｉｎｌｏｇファイルにおける第１の有効なオフセットである４として送信されるはずである。
【０１２６】
トランザクションログの処理
一実施形態によれば、トランザクションログは、例えばＭｙＳＱＬインスタンスのデータベースのうちのいずれかのデータベースで行なわれるすべてのトランザクションを格納する。トランザクションログは、Ｉｎｓｅｒｔステートメント、Ｕｐｄａｔｅステートメント、Ｄｅｌｅｔｅステートメント、ＤＤＬステートメント（例えば、Ｔｒｕｎｃａｔｅ、Ａｌｔｅｒなど）を格納する。これらのトランザクションログは、まず書き込まれ、その後データのみがデータベース内の実際のテーブルに書き込まれるため、「ログ先行書き込み（Ｗｒｉｔｅ  Ａｈｅａｄ  Ｌｏｇ：ＷＡＬ）」呼ばれる。データベースクラッシュが起こった場合に、ＭｙＳＱＬデータベースはこれらのトランザクションログを用いて修復する。
【０１２７】
ＭｙＳＱＬトランザクションログは、このような情報をさまざまなイベントの形で格納する。各イベントは、トランザクションにおける特定のタスクに特有のものである。イベントの例としては、以下のものがある。
【０１２８】
Ｑｕｅｒｙイベント：Ｑｕｅｒｙイベントは、トランザクションの開始またはＤＤＬステートメントのステートメントを示す。
【０１２９】
ＴａｂｌｅＭａｐイベント：ＴａｂｌｅＭａｐイベントは、トランザクションログにログ記録された各テーブルに特有のメタデータを格納する。
【０１３０】
ＲｏｗｓＬｏｇイベント：ＲｏｗｓＬｏｇイベントは、動作（例えば、Ｉｎｓｅｒｔ／Ｄｅｌｅｔｅ／Ｕｐｄａｔｅステートメント）用のテーブルの実際のカラムデータを含む。
【０１３１】
Ｘｉｄイベント：Ｘｉｄイベントは、特定のトランザクションのコミットを示す。
Ｒｏｔａｔｅイベント：Ｒｏｔａｔｅイベントは、１つのトランザクションログの終端を示し、後続のトランザクションログの名前を提供する。
【０１３２】
Ｓｔｏｐイベント：Ｓｔｏｐイベントは、サーバが停止したことを示す。
トランザクションログにはこのようなイベントが多数あるが、上記のものが最も重要なものである。
【０１３３】
トランザクションログイベントの読み出し
一実施形態によれば、キャプチャプロセス（例えば、上述したようなキャプチャパラメータファイル）に関連付けられたユーザインターフェイスまたは設定ファイルによって、ユーザは、そこからトランザクションをレプリケートすべきサーバを、接続パラメータ（例えば、リモートサーバ名、ユーザＩＤ、およびパスワードなど）とともに「リモート」に指定することができる。それらの接続パラメータを用いて、システムは当該リモートサーバからデータベーストランザクションをレプリケートすることができる。
【０１３４】
一実施形態によれば、ｍｙｓｑｌｃｌｉｅｎｔライブラリルーチンｃｌｉ＿ｓａｆｅ＿ｒｅａｄをループで呼出し、リモートサーバからｂｉｎｌｏｇイベントバッファの連続的なストリームを受信する。ｃｌｉ＿ｓａｆｅ＿ｒｅａｄは全イベントデータを受信する。
【０１３５】
一実施形態によれば、小さなイベントの場合には、ｃｌｉ＿ｓａｆｅ＿ｒｅａｄまたはｍｙｓｑｌ＿ｂｉｎｌｏｇ＿ｆｅｔｃｈに送られたネットワークバッファが、全イベントのデータを受信する。行ログイベントの場合には、サイズに関係なく、全部の行がクライアントに送信される。
【０１３６】
一実施形態によれば、ラージオブジェクト（ＬＯＢ）の場合には、ユーザがメモリ内で大きなＬＯＢ行を処理するのに十分なメモリを有していることが前提となる。
【０１３７】
一実施形態によれば、マルチロウ（ｍｕｌｔｉｒｏｗ）イベントの場合には、ｍｙｓｑｌｄオプションであるｂｉｎｌｏｇ−ｒｏｗ−ｅｖｅｎｔ−ｍａｘ−ｓｉｚｅを用いて、より小さな複数の行を結合してクライアントに送信してもよい。ネットワーク帯域幅およびメモリ可用性に応じて適度なサイズに設定することによって、ネットワーク上のラウンドトリップ遅延を減らすことができる。
【０１３８】
一実施形態によれば、イベントバッファを処理して、異なるイベントタイプに基づく異なるイベントオブジェクトにする。すべてのｃｌｉ＿ｓａｆｅ＿ｒｅａｄ呼出しによって全イベントデータが返されるため、キャッシュ管理は不要である。ローカルキャプチャ用に処理されるイベントを、必ずしもすべてリモートキャプチャ用に処理しなければならないわけではない。ライブラリ呼出しは、自身の内部でこれらのイベントを処理する。イベントの例としては、Ｑｕｅｒｙイベント、Ｔａｂｌｅｍａｐイベント、Ｘｉｄイベント、ＷｒｉｔｅＲｏｗイベント、Ｒｏｔａｔｅイベント、およびＵｐｄａｔｅＲｏｗイベントなどが挙げられる。これらのイベントのための処理は、ローカルキャプチャにおけるものとほぼ同じである。ＳｔｏｐイベントやＧＴＩＤイベントといった他のイベントは必要ないため、無視される。
【０１３９】
一実施形態によれば、イベントが処理されて、データベースに依存しない出力に（例えば、カノニカルフォーマット出力として）出力または書き込みされる。そうすると、デリバリープロセスはトランザクションを読み出すことができ、ターゲットデータベースサーバに応じてクエリを作成し、そのクエリをターゲットデータベースサーバに適用する。
【０１４０】
図１２は、一実施形態に従って、ダンプスレッドを用いるリモートサーバからの異種データベースレプリケーションを提供するための例示的な処理を示す図である。
【０１４１】
図１２に示すように、一実施形態によれば、リモートサーバ（例えば、リモートサーバ）からの異種データベースレプリケーションのための方法は、ステップ２２２において、リモートサーバ（例えば、ＭｙＳＱＬ）への接続をセットアップすることを含み得る。
【０１４２】
ステップ２２４では、プロセスは、キャプチャプロセス（例えば、Ｏｒａｃｌｅ  ＧｏｌｄｅｎＧａｔｅキャプチャ）を、リモートサーバの（エミュレートされた）レプリケーションスレーブとして動作するキャプチャプロセスとして登録することを含み得る。
【０１４３】
ステップ２２６では、プロセスは、キャプチャプロセスをリモートサーバのダンプスレッドとして構成することを含み得る。
【０１４４】
ステップ２２８では、プロセスは、リモートサーバトランザクションログイベントを処理し、例えば、ターゲットデータベースサーバ（例えば、Ｏｒａｃｌｅ，ＭｙＳＱＬ，Ｄｂ２）用のトレイル情報（例えば、Ｏｒａｃｌｅ  ＧｏｌｄｅｎＧａｔｅトレイルファイル）として出力または書き込みすることを含み得る。
【０１４５】
ステップ２３０では、リモートサーバとは異なるサーバタイプの１つまたは複数の異種ターゲットサーバ用のカノニカルフォーマット出力を提供する。
【０１４６】
図１３は、一実施形態に従って、ダンプスレッドを用いる例示的な処理をさらに示す図である。
【０１４７】
図１３（ステップ２２４および２２６は、上述したものであってもよい）に示すように、例えばＭｙＳＱＬ環境を使用する一実施形態によれば、プロセスは、ステップ２３２において、既存のレプリケーションスレーブリストを決定することを含み得る。
【０１４８】
ステップ２３３では、キャプチャプロセスを（エミュレートされた）レプリケーションスレーブとして動作させるためのスレーブサーバＩＤを決定する。
【０１４９】
ステップ２３４では、「スレーブを登録」コマンド（例えば、ＣＯＭ＿ＲＥＧＩＳＴＥＲ＿ＳＬＡＶＥ）をリモートサーバに送信する。
【０１５０】
ステップ２３６では、「スレッドをダンプ」コマンド（例えば、ＣＯＭ＿ＢＩＮＬＯＧ＿ＤＵＭＰ）に従って開始位置を設定する。
【０１５１】
ステップ２３７では、リモートサーバにおけるトランザクションログを開始位置から処理する。
【０１５２】
ステップ２３８では、トランザクションログイベントを読み出し、それを用いてカノニカルフォーマット出力を用意する。
【０１５３】
ユーザインターフェイスおよび管理
図１４は、一実施形態に従って、クライアントデバイスおよびユーザインターフェイスを用いて変更データキャプチャシステムを設定することによってリモートサーバからの異種データベースレプリケーションを可能にすることを示す図である。
【０１５４】
図１４に示すように、一実施形態によれば、クライアント（コンピュータ）デバイス２５０は、デバイスハードウェア２５１（例えば、プロセッサ／ＣＰＵ、メモリ）と、クライアントソフトウェアアプリケーション（例えば、ウェブブラウザ）２５２と、グラフィカルユーザインターフェイス２５４とを備える。このクライアント（コンピュータ）デバイス２５０を用いて、アドミニストレータ２６０は、リモートサーバキャプチャ設定２５６を確認し、修正することができる。例えば、アドミニストレータ２６０は、ＣＤＣプロセスマネージャにキャプチャパラメータを設定することができる。
【０１５５】
上述したように、一実施形態によれば、キャプチャプロセスは、上記の情報を用いてリモートサーバに接続し、サーバが位置する場所に関係なく、サーバからのトランザクションログデータの受信を開始することができる。キャプチャプロセスがリモートサーバ内のトランザクションログデータの読み出しを開始すると、このデータはローカルキャプチャと同様の方法で処理され得る。これは、例えば、トランザクションログデータをカノニカルフォーマット出力に出力することを含む。
【０１５６】
図１５は、一実施形態に従って、変更データキャプチャシステムの設定を可能にすることによってリモートサーバからの異種データベースレプリケーションを可能にする例示的なユーザインターフェイスを示す図である。
【０１５７】
図１５に示すように、一実施形態によれば、グラフィカルユーザインターフェイスを用いて、アドミニストレータは、クラスタ詳細（例えば、クラスタエンドポイント、リーダーエンドポイント、またはネットワークアクセス可能なポート）などのキャプチャパラメータを確認し、修正することができる。
【０１５８】
図１６は、一実施形態に従って、変更データキャプチャシステムの設定を可能にすることによってリモートサーバからの異種データベースレプリケーションを可能にする例示的なユーザインターフェイスをさらに示す図である。
【０１５９】
図１６に示すように、一実施形態によれば、グラフィカルユーザインターフェイスを用いて、アドミニストレータは、キャプチャパラメータ（例えば、トランザクションログフォーマット、またはトランザクションログの他の特徴）を確認し、修正することもできる。
【０１６０】
ユーザインターフェイス、およびユーザインターフェイスのユーザの上述の例は、アドミニストレータがリモートサーバキャプチャ設定を確認し、修正すること（例えば、ＣＤＣプロセスマネージャにキャプチャパラメータを設定すること）を可能にするさまざまなインターフェイスを説明するために、一実施形態に従って例示として示したものである。他の実施形態によれば、他のタイプのユーザインターフェイスを提供することも可能である。
【０１６１】
さまざまな実施形態によれば、本明細書の教示は、本開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読取可能記憶媒体を含む、１つ以上の従来の汎用または専用コンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを使用して、適宜実現し得るものである。ソフトウェア技術の当業者にとっては明らかであるように、熟練したプログラマならば、本開示の教示に基づいて適切なソフトウェアコーディングを容易に作成することが可能である。
【０１６２】
ある実施形態では、本明細書の教示は、命令が格納された１つまたは複数のコンピュータ読取可能記憶媒体であるコンピュータプログラムプロダクトを含み得る。この命令を用いて、本教示のプロセスのうちのいずれかを実行するようにコンピュータをプログラムすることが可能である。このような媒体の例として、ハードディスクドライブ、ハードディスク、ハードドライブ、固定ディスク、またはその他の電気機械データ記憶装置、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム、または、命令および／またはデータの非一時記憶に適したその他のタイプの記憶媒体もしくは記憶装置などの非一時的な媒体が挙げられるが、これらに限定されるわけではない。このような媒体の他の例としては、またはコンピュータ内もしくはコンピュータ間で信号を伝送するための搬送波信号または伝送媒体などの一時的な媒体が挙げられる。
【０１６３】
上記で提供した記載は、例示と説明を目的とするものである。上記の記載は、すべてを網羅すること、または保護範囲を開示されている形態そのものに限定することを意図するものではない。当業者には多数の修正例および変形例が明らかであろう。
【０１６４】
例えば、本明細書に記載の特徴および手法のうちの多くは、ＭｙＳＱＬデータベース環境からデータをキャプチャする例を用いて示されているが、さまざまな実施形態によれば、他のタイプの分散型データソースシステム、データベース、データ構造、またはデータストリームからデータをキャプチャする特徴および手法を用いることも同様に可能である。
【０１６５】
上記実施形態は、本教示の原則およびその実際の適用例を最適に説明するように選択され、記載されている。これにより、意図する特定の用途に適したさまざまな実施形態およびそのさまざまな変形例を当業者が理解できるようにしている。範囲は以下の請求項およびその均等物によって定められることを意図している。
【０１６６】
以下の番号付けした項目で本開示の態様を提示する。
１．  リモートサーバからの異種データベースレプリケーションのためのシステムであって、
プロセッサを有するコンピュータを備え、
前記コンピュータはさらに、前記コンピュータ上で動作してデータベースサーバ間でのデータのレプリケートを可能にする変更データシステムを有し、
リモートサーバにキャプチャプロセスが登録され、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、システム。
【０１６７】
２．  前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、項目１に記載のシステム。
【０１６８】
３．  環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、項目１または２に記載のシステム。
【０１６９】
４．  前記変更データキャプチャシステムは、前記リモートサーバとは異なるコンピュータにおいて、または異なるネットワーク上に提供される、項目３に記載のシステム。
【０１７０】
５．  前記リモートサーバは、アクセスが制限された環境内、またはクラウド環境内に提供される、前述の項目のいずれか１項に記載のシステム。
【０１７１】
６．  前記リモートサーバはＭｙＳＱＬサーバである、前述の項目のいずれか１項に記載のシステム。
【０１７２】
７．  リモートサーバからの異種データベースレプリケーションのための方法であって、
プロセッサを備えるコンピュータにおいて、前記コンピュータ上で動作してデータベースサーバ間でのデータのレプリケートを可能にする変更データシステムと、リモートサーバに登録されるキャプチャプロセスとを提供するステップを含み、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、方法。
【０１７３】
８．  前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、項目７に記載の方法。
【０１７４】
９．  環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、項目７または８に記載の方法。
【０１７５】
１０．  前記変更データキャプチャシステムは、前記リモートサーバとは異なるコンピュータにおいて、または異なるネットワーク上に提供される、項目９に記載の方法。
【０１７６】
１１．  前記リモートサーバは、アクセスが制限された環境内、またはクラウド環境内に提供される、項目７〜１０のいずれか１項に記載の方法。
【０１７７】
１２．  前記リモートサーバはＭｙＳＱＬサーバである、項目７〜１１のいずれか１項に記載の方法。
【０１７８】
１３．  命令を格納したコンピュータ読取可能記憶媒体であって、前記命令は、１つ以上のコンピュータによって読み取られ実行されると前記１つ以上のコンピュータに方法を遂行させ、前記方法は、
データベースサーバ間でのデータのレプリケートを可能にする変更データシステムと、リモートサーバに登録されるキャプチャプロセスとを提供するステップを含み、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、コンピュータ読取可能記憶媒体。
【０１７９】
１４．  前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、項目１３に記載のコンピュータ読取可能記憶媒体。
【０１８０】
１５．  環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、項目１３または１４に記載のコンピュータ読取可能記憶媒体。
【０１８１】
１６．  前記変更データキャプチャシステムは、前記リモートサーバとは異なるコンピュータにおいて、または異なるネットワーク上に提供される、項目１５に記載のコンピュータ読取可能記憶媒体。
【０１８２】
１７．  前記リモートサーバは、アクセスが制限された環境内、またはクラウド環境内に提供される、項目１３〜１６のいずれか１項に記載のコンピュータ読取可能記憶媒体。
【０１８３】
１８．  前記リモートサーバはＭｙＳＱＬサーバである、項目１３〜１７のいずれか１項に記載のコンピュータ読取可能記憶媒体。
【図１】
2021509980.tif 000007
【図２】
2021509980.tif 000008
【図３】
2021509980.tif 000009
【図４】
2021509980.tif 000010
【図５】
2021509980.tif 000011
【図６】
2021509980.tif 000012
【図７】
2021509980.tif 000013
【図８】
2021509980.tif 000014
【図９】
2021509980.tif 000015
【図１０】
2021509980.tif 000016
【図１１】
2021509980.tif 000017
【図１２】
2021509980.tif 000018
【図１３】
2021509980.tif 000019
【図１４】
2021509980.tif 000020
【図１５】
2021509980.tif 000021
【図１６】
2021509980.tif 000022
【手続補正書】
【提出日】令和2年7月6日(2020.7.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リモートサーバからの異種データベースレプリケーションのためのシステムであって、
プロセッサを有するコンピュータを備え、
前記コンピュータはさらに、前記コンピュータ上で動作してデータベースサーバ間でのデータのレプリケートを可能にする変更データシステムを有し、
リモートサーバにキャプチャプロセスが登録され、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、システム。
【請求項２】
前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、請求項１に記載のシステム。
【請求項３】
環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、請求項１または２に記載のシステム。
【請求項４】
前記変更データキャプチャシステムは、前記リモートサーバとは異なるコンピュータにおいて、または異なるネットワーク上に提供される、請求項３に記載のシステム。
【請求項５】
前記リモートサーバは、アクセスが制限された環境内、またはクラウド環境内に提供される、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記リモートサーバはＭｙＳＱＬサーバである、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
リモートサーバからの異種データベースレプリケーションのための方法であって、
プロセッサを備えるコンピュータにおいて、前記コンピュータ上で動作してデータベースサーバ間でのデータのレプリケートを可能にする変更データシステムと、リモートサーバに登録されるキャプチャプロセスとを提供するステップを含み、
前記キャプチャプロセスは、前記リモートサーバに関連付けられたデータベース内のデータを変更するデータベーストランザクションを示すトランザクションログイベントを受信するように構成され、
前記トランザクションログイベントは処理され、１つ以上のターゲットデータベースサーバまたは他のシステム用のカノニカルフォーマット出力における変更データとして出力される、方法。
【請求項８】
前記キャプチャプロセスは、前記リモートサーバのレプリケーションスレーブとして動作するように登録され、
前記リモートサーバのタイプに応じて、前記キャプチャプロセスは、前記キャプチャプロセスが前記リモートサーバの前記レプリケーションスレーブとして登録されること、およびトランザクションイベントデータを含む情報を前記サーバから受信することを可能にする方法を用いる、請求項７に記載の方法。
【請求項９】
環境は変更データキャプチャシステムであり、
前記トランザクションログイベントは、前記変更データキャプチャシステムが前記ターゲットデータベースサーバに使用する出力またはトレイルファイルに書き込まれる、請求項７または８に記載の方法。
【請求項１０】
前記変更データキャプチャシステムは、前記リモートサーバとは異なるコンピュータにおいて、または異なるネットワーク上に提供される、請求項９に記載の方法。
【請求項１１】
前記リモートサーバは、アクセスが制限された環境内、またはクラウド環境内に提供される、請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記リモートサーバはＭｙＳＱＬサーバである、請求項７〜１１のいずれか１項に記載の方法。
【請求項１３】
請求項７〜１２のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
【国際調査報告】
2021509980.tif 000023
2021509980.tif 000024
2021509980.tif 000025