(57)【要約】【課題】負荷がかかることなく、別途のソースデータベースに保存されるデータを別途のデータ構造に変換して複製する。【解決手段】本発明のシステムは、ソースデータベースを運営する第１運営サーバーと、別途のＤＢＭＳを運営する第２運営サーバーと、ソースデータベースに伝送されるＳＱＬを抽出して第２運営サーバーに伝送することによって、ソースデータベースと複製データベースを一致させる複製サーバーで構成される。複製サーバーは、クライアントから第１運営サーバーまたはソースデータベースに送るパケットをキャプチャーし、キャプチャーされたパケットを分析し、抽出したＳＱＬを分析して異種ＤＢＭＳのためのＳＱＬやテストデータ生成のための個人情報をマスキングしてＳＱＬを構成し、変換されたＳＱＬをＪＤＢＣを利用してＤＢＭＳの複製データベースを運営する運営サーバーに伝送する。【選択図】図３
2019114240.tif 000002
【特許請求の範囲】
【請求項１】
ソースデータベースを運営する第１運営サーバーと、
別途の加工された複製データの異種データベースを運営する第２運営サーバーと、
クライアントから前記第１運営サーバーに伝送されるネットワークストリームからソースデータベースに伝送されるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）を抽出してデータ構造を変換して前記第２運営サーバーに伝送する複製サーバーを含み、
前記複製サーバーは、
クライアントと前記第１運営サーバーまたはソースデータベースの間に伝送されるパケットをキャプチャーするスニッフィングモジュールと、
クライアントと前記第１運営サーバーの間でデータを中継する役割をしつつ、パケットを収集するプロキシモジュールと、
前記スニッフィングモジュールと前記プロキシモジュールによってキャプチャーされたパケットを分析して、ＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）を抽出するパケット分析モジュールと、
抽出したＳＱＬを分析して同期化および同期化検証に必要なＳＱＬ  Ｑｕｅｒｙを選別するＳＱＬ選別モジュールと、
抽出したＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）をソーステーブルのスキーマ（ＳＣＨＥＭＡ）と対応させてカラム値（Ｃｏｌｕｍｎ−Ｖａｌｕｅ）構造に変換させるデータ標準化モジュールと、
複製しようとする対象システムである前記第２運営サーバーに合うデータ構造に変更作業を遂行するデータ構造変換モジュールと、
変換されたデータを前記第２運営サーバーに伝送する変換データ適用モジュールを具備し、
ソースデータベースと対象異種データベースを一致させることを特徴とする、ＳＱＬパケット分析を通じての異種データベースのデータ複製および同期化エラー探知システム。
【請求項２】
前記複製サーバーは
クライアントから前記第１運営サーバーに伝送されるネットワークストリームからソースデータベース（Ｓｏｕｒｃｅ  Ｄａｔａｂａｓｅ）に伝送されるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）およびその実行結果を抽出して、前記第２運営サーバーにＳＱＬを伝送して得た結果と比較することによってソースデータベースと複製データベース間の同期化エラーを探知する機能をさらに含むことを特徴とする、請求項１に記載のＳＱＬパケット分析を通じての異種データベースのデータ複製および同期化エラー探知システム。
【請求項３】
複製サーバーのスニッフィングモジュールやプロキシモジュールが、クライアントがソースデータベースに伝送するネットワークパケットをキャプチャーする段階と、
キャプチャーされたネットワークパケットの中からパケットフィルタリングを通じてＳＱＬを抽出してデータベース変更ＳＱＬを選別する段階と、
前記選別したデータベース変更ＳＱＬはテーブルスキーマ（Ｔａｂｌｅ  ｓｃｈｅｍａ）を基準としてカラム値（Ｃｏｌｕｍｎ−ｖａｌｕｅ）構造に変換し、カラム値（Ｃｏｌｕｍｎ−ｖａｌｕｅ）構造をキー値（ｋｅｙ−ｖａｌｕｅ）構造に変更する段階と、
複製対象データベースがテストデータベースであれば、複製システムに設定された敏感情報カラム（Ｃｏｌｕｍｎ）値を基準としてマスキングキー値（ｋｅｙ−ｖａｌｕｅ）をマスキング（ｍａｓｋｉｎｇ）処理し、複製対象データベースが関係型データベース（ＲＤＢＭＳ）であれば、標準ＳＱＬに変換し、複製対象データベースがＮｏＳＱＬ基盤の文書基盤データベース（Ｄｏｃｕｍｅｎｔ  ｂａｓｅ  ＤＢＭＳ）であれば、キー値（ｋｅｙ−ｖａｌｕｅ）構造をＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式の文書（ｄｏｃｕｍｅｎｔ）に変換する段階と、
データ構造変換が完了したデータを第２運営サーバーに伝送する段階を含む、ＳＱＬパケット分析を通じての異種データベースのデータ複製および同期化エラー探知方法。
【請求項４】
前記方法は、
前記抽出したＳＱＬの中から同期化検証に必要なクエリを選別し、前記選別したクエリを複製データベースで実行した後、抽出された実行結果と前記ソースデータベースのクエリ実行結果を比較して同期化エラーを探知する段階と、
前記実行結果を比較して同期化エラーが探知されると前記実行結果を利用してデータ変更ＳＱＬを生成し、前記生成したデータ変更ＳＱＬを複製データベースに実行する段階をさらに含み、
ソースデータベースと複製データベースを一致させることを特徴とする、請求項３に記載のＳＱＬパケット分析を通じての異種データベースのデータ複製および同期化エラー探知方法。
【請求項５】
前記同期化エラーを探知する段階は
クエリが復旧用クエリである場合、クエリ結果を利用して複製データベースに伝送するＤＭＬ（Ｄａｔａ  Ｍａｎｉｐｕｌａｔｉｏｎ  Ｌａｎｇｕａｇｅ）を生成する段階と、生成したＤＭＬを複製データベースに伝送して復旧する段階と、同期化エラーが探知され、クエリが検査用クエリである場合、データ同期化モジュールを通じて復旧する段階で構成されたことを特徴とする、請求項４に記載のＳＱＬパケット分析を通じての異種データベースのデータ複製および同期化エラー探知方法。
【請求項６】
前記データ同期化モジュールを通じて復旧する段階は
直接原本データベースを読み込んで複製データベースに同期化（ｓｙｎｃ）作業を遂行して復旧することを特徴とする、請求項５に記載のＳＱＬパケット分析を通じての異種データベースのデータ複製および同期化エラー探知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークストリーム（Ｎｅｔｗｏｒｋ  Ｓｔｒｅａｍ）からソースデータベース（Ｓｏｕｒｃｅ  Ｄａｔａｂａｓｅ）に伝送されるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ：構造化クエリ言語、以下「ＳＱＬ」という。）とバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）を抽出してＳＱＬとバインド値に含まれたデータを、抽出変換を通じて異種データベース（ＮｏＳＱＬなど）により複製して同期化エラーを探索するための方法およびシステムに関するものである。
【背景技術】
【０００２】
最近、情報化時代に入るにつれて、ＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋｉｎｇ  Ｓｅｒｖｉｃｅ）、電子商取引、インターネットバンキングなどが活発に行われることによって、データの構築とこれを活用した各企業の重要情報と個人情報が入っているデータベースの重要性が拡大しており、構築されたデータを活用して別途のデータ辞書、統計データ、サービス用データを構成している。このような別途のデータベースを構築するにおいて、ビックデータの増加趨勢につれてソースデータベースの負荷が加重しており、ソースデータベースのデータを別途の必要データのみを抽出して構築する必要がある。
【０００３】
このようにソースデータベースのデータを別途のデータに構成するために、ＥＴＬ（Ｅｘｔｒａｃｔｉｏｎ、Ｔｒａｎｓｆｏｒｍａｔｉｏｎ、Ｌｏａｄｉｎｇ）技術が最も多く使用されているが、これはソースデータベースに保存が完了したデータを再び抽出する方式であり、ソースデータベースにさらなる負担を与えるため、ソースデータベースの性能低下に繋がるとの問題点が発生する。
【０００４】
特許文献１に開示された「リアルタイム複製環境のデータベース運用管理方法およびシステム」は、複製ＤＢを含む大容量ＤＢシステムにおいて、ＤＢ作業を含むＳ／Ｗ適用またはこれに伴う障害発生時、運用ＤＢおよび複製ＤＢの迅速な原状復旧を提供する方法および装置を提供するものである。
【０００５】
また、特許文献２に開示された「分散データベースシステムのデータ複製装置および方法」は、ソースパーティションサーバーが管理するデータの複製のための複製パーティションサーバーを選定する選定部と、ソースパーティションサーバーに含まれたパーティションを複製パーティションサーバーに割り当てるパーティション割当部と、ソースパーティションサーバーに含まれたパーティションのログファイル位置情報を複製パーティションサーバーに伝達するログファイル管理部を含むものである。
【０００６】
そして、特許文献３に開示された「データベースから圧縮テーブルをリアルタイム複製する装置および方法」は、ログにすべての有効データ値が含まれていない場合にもリアルタイム複製を遂行できる。このために、ディクショナリテーブル、圧縮テーブル、リアルタイム複製部を含み、リアルタイム複製部内に複製メモリをさらに含むことによって、リアルタイムで複製の遂行が可能であるように具現されたものである。
【０００７】
ところが、このような従来の複製方法は、ＳＱＬデータベースをＮｏＳＱＬデータベースのような異種データベースに複製する場合には適用することが難しく、複製時に同期エラーを検出し難いという問題点がある。また、従来、ソースデータベースのアップデートがターゲットデータベースのアップデートに適用されるまで時間がかかるとの複製遅延の問題点がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】韓国登録特許第１０−１５１３９４３号公報
【特許文献２】韓国公開特許第１０−２０１１−００７１７８５号公報
【特許文献３】韓国登録特許第１０−１６６０４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、クライアント端末機からソースデータベースに伝送されるＳＱＬパケットを、ネットワークストリームからスニッフィングやプロキシ（Ｐｒｏｘｙ）方式で抽出した結果に基づいて、ソースデータベースの負荷を最小化しつつ、略リアルタイムで異種ＤＢＭＳを容易に複製できる、ＳＱＬパケット分析を通じての異種データベースのデータ複製方法およびシステムを提供することである。
【００１０】
また、本発明の他の目的は、異種ＤＢＭＳに複製する場合にネットワークストリームからソースデータベースの入出力パケットを抽出／分析して、複製対象データベースとのデータ同期化を検証できる、ＳＱＬパケット分析を通じての異種データベースの同期化エラー探知方法およびシステムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の一見地に係るシステムは、ソースデータベースを運営する第１運営サーバーと、別途の加工された複製データの異種データベースを運営する第２運営サーバー、およびクライアントから前記第１運営サーバーに伝送されるネットワークストリームからソースデータベースに伝送されるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）を抽出してデータ構造を変換して前記第２運営サーバーに伝送する複製サーバーを含む。
【００１２】
前記複製サーバーは、クライアントから前記第１運営サーバーまたはソースデータベースに送るパケットをキャプチャーするスニッフィングモジュールと、クライアントから前記第１運営サーバーに送るデータを中継する役割をしつつ、パケットを収集するプロキシモジュールと、前記スニッフィングモジュールと前記プロキシモジュールによってキャプチャーされたパケットを分析してＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）を抽出するＳＱＬ抽出モジュールと、抽出したＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）をソーステーブルのスキーマ（ＳＣＨＥＭＡ）と対応させてカラム値（Ｃｏｌｕｍｎ−Ｖａｌｕｅ）構造に変換させるデータ標準化モジュールと、複製しようとする対象システムである前記第２運営サーバーに合うデータ構造に変更作業を遂行するデータ構造変換モジュールと、変換されたデータを前記第２運営サーバーに伝送する変換データ適用モジュールを具備することによって、ソースデータベースと対象異種データベースを一致させるものである。
【００１３】
また、前記複製サーバーは、クライアントから前記第１運営サーバーに伝送されるネットワークストリームからソースデータベース（Ｓｏｕｒｃｅ  Ｄａｔａｂａｓｅ）に伝送されるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）およびその実行結果を抽出して前記第２運営サーバーにＳＱＬを伝送して得た結果と比較することによって、前記ソースデータベースと前記複製データベース間の同期化エラーを探知する機能をさらに含むことができる。
【００１４】
本発明の他の見地に係る方法は、複製サーバーのスニッフィングモジュールやプロキシモジュールが、クライアントがソースデータベースに伝送するネットワークパケットをキャプチャーする段階と、キャプチャーされたネットワークパケットの中からパケットフィルタリングを通じてＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）を抽出してデータベース変更ＳＱＬを選別する段階と、前記選別したデータベース変更ＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）のデータをテーブルスキーマ（Ｔａｂｌｅ  ｓｃｈｅｍａ）を基準としてカラム値（Ｃｏｌｕｍｎ−ｖａｌｕｅ）構造に変換し、カラム値（Ｃｏｌｕｍｎ−ｖａｌｕｅ）構造をキー値（ｋｅｙ−ｖａｌｕｅ）構造に変更する段階と、複製対象データベースがテストデータベースであれば、複製システムに設定された敏感情報カラム（Ｃｏｌｕｍｎ）値を基準としてマスキングキー値（ｋｅｙ−ｖａｌｕｅ）をマスキング（ｍａｓｋｉｎｇ）処理し、複製対象データベースが関係型データベース（ＲＤＢＭＳ）であれば、標準ＳＱＬに変換し、複製対象データベースがＮｏＳＱＬ基盤の文書基盤データベース（Ｄｏｃｕｍｅｎｔ  ｂａｓｅ  ＤＢＭＳ）であれば、キー値（ｋｅｙ−ｖａｌｕｅ）構造をＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式の文書（ｄｏｃｕｍｅｎｔ）に変換する段階と、データ構造変換が完了したデータを第２運営サーバーに伝送する段階を含む。
【００１５】
前記方法は、前記抽出したＳＱＬの中から同期化検証に必要なクエリ（Ｑｕｅｒｙ）を選別し、前記選別したクエリを複製データベースで実行した後、抽出された実行結果と前記原本データベースのクエリ実行結果を比較して同期化エラーを探知する段階、および前記実行結果を比較して同期化エラーが探知されると前記実行結果を利用してデータ変更ＳＱＬを生成し、前記生成したデータ変更ＳＱＬを複製データベースに実行する段階をさらに含むことによって、前記ソースデータベースと前記複製データベースを一致させることができる。
【００１６】
前記同期化エラーを探知する段階は、クエリが復旧用クエリ（単一テーブルに対して一定範囲のＲｏｗデータを持ち込むクエリ）の場合、クエリ結果を利用して複製データベースに伝送するＤＭＬ（Ｄａｔａ  Ｍａｎｉｐｕｌａｔｉｏｎ  Ｌａｎｇｕａｇｅ）を生成する段階と、生成したＤＭＬを複製データベースに伝送して復旧する段階と、同期化エラーが探知され、クエリが検査用クエリ（単一テーブルに対する集計クエリ）の場合、データ同期化モジュールを通じて復旧する段階からなり、前記データ同期化モジュールを通じて復旧する段階は直接ソースデータベースを読み込んで複製データベースに同期化（ｓｙｎｃ）作業を遂行して復旧するものである。
【発明の効果】
【００１７】
本発明のデータベース複製システムおよび方法は、スニッフィング方式やプロキシ方式を利用することによって、データベース運営システムの性能に影響を与えずにユーザーからソースデータベースに伝送されるパケットを獲得することができ、これを利用して異種ＤＢＭＳへのデータを構築することによって、ソースデータベースに発生する負荷費用を節減することができ、略リアルタイムで複製を遂行して複製遅延を顕著に低減させ得る効果がある。
【００１８】
また、本発明によると、ソースＳＱＬデータベースと異なる種類のＳＱＬデータベースはもちろん、キー値保存方式や文書保存方式あるいはコラム保存方式のＮｏＳＱＬデータベースにも複製することができるため、拡張性が大きく、抽出したデータの個人情報および敏感情報をマスキングしてテスト用途のデータを別途に構築できる長所がある。
【００１９】
そして、本発明のデータベース複製システムの同期化エラー探知および復旧方法は、複製データベースに同期化が行われる時点の場合と、複製データベースに同期化が行われた後の場合とに区分することによって、より正確に同期化エラーを検出することができ、選別したクエリが単純検証用クエリの場合、データ同期化モジュールを利用して直接原本データベースを読み込んで複製データベースに同期化（ｓｙｎｃ）作業を遂行することによって、速かに復旧できる効果がある。
【図面の簡単な説明】
【００２０】
【図１】本実施例に係るＳＱＬパケット分析を通じての異機種データベースのデータ複製および同期化エラー探知システムの概略図。
【図２】本実施例に係る複製サーバーの細部構成を図示した構成ブロック図。
【図３】本実施例に係る複製システムでパケットをキャプチャーおよび変換してデータベースを複製する過程を示したフローチャート。
【図４】本実施例にしたがってパケットを収集および分析し、ＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）を選別してデータベースを複製し、同期化エラーの有無を探知することを示したフローチャート。
【図５】本実施例にしたがってパケットを収集して同期化エラー検査に必要なクエリとその実行結果を抽出および選別して複製データベースにクエリを実行した結果と比較する、同期化エラー検査手続きを示したフローチャート。
【発明を実施するための形態】
【００２１】
本発明と本発明の実施によって達成される技術的課題は、下記で説明する本発明の好ましい実施例によってより明確となるはずである。下記の実施例は単に本発明を説明するために例示されたものに過ぎず、本発明の範囲を制限するためのものではない。
【００２２】
図１は、本実施例にしたがって別途の複製サーバーを利用して、スニッフィング方式やプロキシ方式でパケットをキャプチャーしてデータベース複製システムを運営する環境を示したブロック図である。
【００２３】
本実施例に係る異種データベース複製システム１００は、図１に図示された通り、ソースデータベース１１１を運営する第１運営サーバー１１０と、ＮｏＳＱＬのような異種データベース(複製データベース)１３１を運営する第２運営サーバー１３０、クライアント 端末機 ２０−１〜２０−Ｎから第１運営サーバー１１０に伝送されるネットワークストリームからソースデータベース（Ｓｏｕｒｃｅ  Ｄａｔａｂａｓｅ）に伝送されるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）を抽出して標準化作業を遂行し、変換したデータを第２運営サーバー１３０に伝送することによって、ソースデータベース１１１に構築されるデータを変換および複製する複製サーバー１２０で構成される。
【００２４】
図１を参照すると、ユーザーがクライアント端末機２０−１〜２０−Ｎを利用して第１運営サーバー１１０またはソースデータベース１１１に接続する時、複製サーバー１２０でスニッフィング方式やプロキシ方式でキャプチャーし、標準化したデータを第２運営サーバー１３０で運営中の異種データベース１３１に合わせて変換して複製できるようにするものである。
【００２５】
伝統的な関係型データベース（ＲＤＢＭＳ）は、多様な応用において構造化されたデータを保存するために主に使用される技術であって、ＳＱＬを通じての任意質疑機能を提供する。ビックデータと物のインターネットの発展により多様な形態のデータを効率的に保存するための新しい構造のＮｏＳＱＬデータベースが登場した。ＮｏＳＱＬデータベースは、キー値保存方式、文書保存方式、カラム保存方式に大別され、キー値保存基盤のＮｏＳＱＬデータベースはキー（ｋｅｙ）と値（ｖａｌｕｅ）という形態で資料を保管する。文書保存基盤ＮｏＳＱＬデータベースはＭｏｎｇｏＤＢとＣｏｕｃｈＤＢとがあり、キー値方式とは異なり、複雑な検索条件を通じてデータを抽出することができる。カラム基盤ＮｏＳＱＬデータベースは優れた拡張性を有しており、Ｃａｓｓａｎｄｒａ、ＨＢａｓｅなどがある。
【００２６】
本実施例において異種データベース１３１としては、ソースＳＱＬデータベース１１１と異なる種類のＳＱＬデータベースはもちろん、ＮｏＳＱＬデータベースを含む。
【００２７】
そして、本実施例の複製サーバー１２０は、ＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）に含まれたソースデータベースのテーブルスキーマ（ＴＡＢＬＥ  ＳＣＨＥＭＡ）をメタデータ（Ｍｅｔａ  ｄａｔａ）としてカラム値（Ｃｏｌｕｍｎ−ｖａｌｕｅ）形態に変換し、複製したり抽出したＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）のデータをキー値（ｋｅｙ−ｖａｌｕｅ）基盤のＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式の文書（Ｄｏｃｕｍｅｎｔ）に変換して第２運営サーバー１３０に伝達して、ＮｏＳＱＬ基盤にデータを複製したり抽出したＳＱＬデータをテーブルスキーマ（ＳＣＨＥＭＡ）とマッピング（Ｍａｐｐｉｎｇ）して個人情報をマスキングし、第２運営サーバー１３０に伝達してデータを複製することができる。
【００２８】
また、本実施例の複製サーバー１２０は、抽出したＳＱＬを異種ＤＢＭＳに提供する構文に合わせて変換してデータを複製したり抽出したＳＱＬのＤＭＬ（Ｄａｔａ  Ｍａｎｉｐｕｌａｔｉｏｎ  Ｌａｎｇｕａｇｅ）の種類を確認して、ＤＥＬＥＴＥ、ＵＰＤＡＴＥであるＳＱＬはＷＨＥＲＥ文の条件（ＣＯＮＤＩＴＩＯＮ）を利用してＮｏＳＱＬデータベースで文書（Ｄｏｃｕｍｅｎｔ）削除、アップデート命令を生成する機能を提供し、第２運営サーバー１３０に適用してソースデータベースと同期化させることができる。
【００２９】
図２は、本実施例に係る複製サーバーの細部構成を図示した構成ブロック図である。
【００３０】
本実施例に係る複製サーバー１２０は、図２に図示された通り、スニッフィングモジュール１２１、プロキシモジュール１２２、パケット分析モジュール１２３、ＳＱＬ選別モジュール１２４、データ標準化モジュール１２５、データ構造変換モジュール１２６、変換データ適用モジュール１２７、データ同期化検証モジュール１２８、データ同期化復旧モジュール１２９、データ同期化モジュール１２９１を具備して、ソースデータベース１１１と異種の対象データベース１３１を一致させるものである。
【００３１】
図２を参照すると、スニッフィングモジュール１２１は、クライアント２０から第１運営サーバー１１０またはソースデータベース１１１に送るパケット１４１やクライアント２０に向かうパケット１５１をキャプチャーする。プロキシモジュール１２２は、クライアント２０から第１運営サーバー１１０に送るデータの中継役割をしつつ、入出力パケット１６０、１７０を収集する。
【００３２】
パケット分析モジュール１２３は、スニッフィングモジュール１２１とプロキシモジュール１２２によりキャプチャーされたパケット１４１、１５１、１６０、１７０を分析して、ＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）を抽出し、ＳＱＬ選別モジュール１２４は、抽出したＳＱＬを分析して同期化（複製）および同期化検証に必要なＳＱＬクエリを選別する。
【００３３】
データ標準化モジュール１２５は、同期化のために抽出したＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）をソーステーブルのスキーマ（ＳＣＨＥＭＡ）と対応させてカラム値（Ｃｏｌｕｍｎ−Ｖａｌｕｅ）構造に変換し、データ構造変換モジュール１２６は複製しようとする対象システムである第２運営サーバー１３０の対象データベース１３１に合うデータ構造に変更作業を遂行し、変換データ適用モジュール１２７は変換されたデータを第２運営サーバー１３０に伝送する。
【００３４】
データ同期化検証モジュール１２８は、前記抽出したＳＱＬの中から同期化検証に必要なクエリを選別し、前記選別したクエリを複製データベース１３１を運営する第２運営サーバー１３０に伝送して複製データベースで実行した後、抽出された実行結果と前記ソースデータベースのクエリ実行結果を比較して同期化エラーを探知する。
【００３５】
同期化復旧モジュール１２９は、同期化エラーが探知された場合、抽出したソースデータベース１１１の実行結果と複製データベース１３１で持ち込んだ実行結果を利用してデータを復旧し、データ同期化モジュール１２９１はソースデータベース１１１と複製データベース１３１に直接連結して両データを同期化させる役割をする。
【００３６】
そして、複製サーバー１２０のデータ同期化検証モジュール１２８は、エラーによってソースデータベース１１１と複製データベース１３１のデータが一致しない場合に備え、ＳＱＬ選別モジュール１２４から選別した同期化検証クエリを複製データベース１３１に実行してその結果を比較して同期化エラーの有無を検査する。ここで、同期化検証に必要なクエリは同期化エラー探知のみのためのクエリ（単一Ｔａｂｌｅに対する集計クエリ）と、探知および復旧のためのクエリ（単一Ｔａｂｌｅに対して一定の範囲のＲｏｗ  Ｄａｔａを持ち込むクエリ）を含む。
【００３７】
ソースデータベース１１１と複製データベース１３１のデータが一致しないことが検出されると、ソースデータベース１１１と複製データベース１３１のクエリ結果を利用して、データ同期化のためのデータ変更ＳＱＬ（ＤＭＬ）を構成して複製データベース１３１に変換データ適用モジュール１２７を通じて伝送した後、もう一度データ同期化が正常に行われたかを検査する。
【００３８】
同期化復旧のためのデータ変更ＳＱＬを構成する過程を詳しく説明すると、ソースデータベース１１１のクエリ実行結果に存在するＲｏｗが複製データベース１３１のクエリ結果にない場合、該当Ｒｏｗを「Ｉｎｓｅｒｔ」文に構成し、ソースデータベース１１１のクエリ結果にはないが複製データベース１３１のクエリ結果にはある場合は、該当Ｒｏｗを「Ｄｅｌｅｔｅ」文に構成し、一部のデータが間違っている場合には、「Ｕｐｄａｔｅ」文を構成して変換データ適用モジュール１２７を通じて複製データベース１３１に伝送して同期化エラーを復旧する。
【００３９】
万一、選別したクエリが単純検証用クエリであり、これを通じて同期化エラーを探知した場合には、データ同期化モジュール１２９１を利用して直接ソースデータベース１１１を読み込んで複製データベース１３１に同期化（ｓｙｎｃ）作業を遂行して復旧する。
【００４０】
図３は、本実施例に係る複製システムでパケットをキャプチャーおよび変換してデータベースを複製する過程を示したフローチャートである。
【００４１】
図３を参照すると、本発明に係る複製サーバー１２０のスニッフィングモジュール１２１やプロキシモジュール１２２は、クライアント２０がソースデータベース１１１に伝送するネットワークパケットをキャプチャーする（Ｓ１０１）。
【００４２】
引き続き、パケット分析を通じてキャプチャーされたネットワークパケットの中からＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）を抽出してデータベース変更ＳＱＬを選別する（Ｓ１０２）。データベース変更ＳＱＬとバインド値（Ｂｉｎｄ  Ｖａｌｕｅ）のデータは、テーブルスキーマ（Ｔａｂｌｅ  ｓｃｈｅｍａ）を基準としてカラム値（Ｃｏｌｕｍｎ−ｖａｌｕｅ）構造に変換し（Ｓ１０３）、カラム値（Ｃｏｌｕｍｎ−ｖａｌｕｅ）構造をキー値（ｋｅｙ−ｖａｌｕｅ）構造に変更して第２運営サーバー１３０のＤＢＭＳにより処理ロジックを決定する（Ｓ１０４）。
【００４３】
例えば、複製対象データベースがテストデータベースであれば複製システムに設定された敏感情報カラム（Ｃｏｌｕｍｎ）値を基準としてマスキングキー値（ｋｅｙ−ｖａｌｕｅ）をマスキング（ｍａｓｋｉｎｇ）処理し（Ｓ１０５）、複製対象データベースが異種ＤＢ、すなわち第２運営サーバー１３０のＤＢＭＳ１３１が関係型データベース（ＲＤＢＭＳ：Ｒｅｌａｔｉｏｎａｌ  ｄａｔａ  ｂａｓｅ  ｍａｎａｇｅｍｅｎｔ  ｓｙｓｔｅｍ）であれば標準ＳＱＬに変換し（Ｓ１０６）、第２運営サーバー１３０のＤＢＭＳ１３１がＮｏＳＱＬ基盤のＤｏｃｕｍｅｎｔ  ｂａｓｅ  ＤＢＭＳであればキー値（ｋｅｙ−ｖａｌｕｅ）構造をＪＳＯＮ形式のｄｏｃｕｍｅｎｔに変換する（Ｓ１０７）。
【００４４】
引き続き、データ構造変換が完了したデータを、第２運営サーバー１３０に適用するために第２運営サーバー１３０に伝送する（Ｓ１０８）。
【００４５】
一方、本実施例に係るデータベース複製時の同期化エラー探索は、図４および図５に図示された通り、ネットワークストリームからソースデータベースの入出力パケットを抽出／分析して、複製対象データベースとのデータ同期化を検証することである。
【００４６】
まず、本実施例に係る同期化時のエラー探索方法は、次のように２つの同期化エラー探知方法で実行され得る。
【００４７】
第１の方法は、複製データベースに同期化が行われる時点の場合、ユーザーによるソースデータベースのパケット伝送が確認されると複製サーバー１２０でパケットを取得する段階と、取得したパケットを分析してＳＱＬとその実行結果を抽出する段階と、抽出したＳＱＬのうちデータベースに変更を与えるＳＱＬを選別する段階と、選別したデータベースに変更を与えるＳＱＬを複製データベースに一致させる段階と、複製データベースに実行した結果（ａｆｆｅｃｔｅｄ  ｒｏｗ、ａｕｔｏ  ｉｎｃｒｅｍｅｎｔ  ｋｅｙ、ｅｒｒｏｒ）とソースデータベースの実行結果（ａｆｆｅｃｔｅｄ  ｒｏｗ、ａｕｔｏ  ｉｎｃｒｅｍｅｎｔ  ｋｅｙ）を比較して同期化検証する段階を有して、略式で同期化エラーの有無を探知する方法である。
【００４８】
第２の方法は、複製データベースに同期化が行われた後の場合、ユーザーによるソースデータベース１１１のパケット伝送が確認されると複製サーバー１２０でパケットを取得する段階と、前記取得したパケットを分析してＳＱＬとその実行結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）を抽出する段階と、前記抽出したＳＱＬのうち同期化検証に必要なクエリを選別する段階と、前記選別したクエリを複製データベース１３１に伝送してその実行結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）を持ち込む段階と、前記抽出したソースデータベース１１１の実行結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）と複製データベース１３１の実行結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）を比較する段階を通じて同期化エラーを探知する方法である。この時、同期化エラーが探知されると抽出したソースデータベース１１１の実行結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）と複製データベース１３１の実行結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）を利用してデータ変更ＳＱＬに生成し、前記生成したデータ変更ＳＱＬを複製対象データベース１３１に伝送して実行することによって同期化エラーを復旧する。
【００４９】
図４は本実施例にしたがってパケットを収集および分析し、ＳＱＬを選別してデータベースを複製し、同期化エラーの有無を探知することを示したフローチャートであり、図５は本実施例にしたがってパケットを収集して同期化エラー検査に必要なクエリとその実行結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）を抽出して、複製データベースにクエリを実行した結果（Ｒｅｔｕｒｎｅｄ  ｒｏｗ）と比較する同期化エラー検査手続きを示したフローチャートである。
【００５０】
本実施例に係る複製サーバー１２０は図４に図示された通り、クライアント２０がソースデータベース１１１にＳＱＬを伝送する段階（Ｓ２０１）と、スニッフィングモジュール１２１やプロキシモジュール１２２でパケットをキャプチャーする段階（Ｓ２０２）、パケット分析モジュール１２３でＳＱＬとその実行結果を抽出する段階（Ｓ２０３）、ＳＱＬ選別モジュール１２４でデータベース変更ＳＱＬを選別する段階（Ｓ２０４）、データベース変更ＳＱＬであるかを検査してデータベース変更を発生させないＳＱＬは複製データベースに伝送せず（Ｓ２０６）、データベース変更ＳＱＬを複製データベースに伝送する段階（Ｓ２０５〜Ｓ２０７）、複製データベースの実行結果とソースデータベースの実行結果を比較する段階（Ｓ２０８）、両実行結果を比較して同期化エラーが探知されるとデータ同期化復旧モジュール１２９を通じてデータを復旧する段階（Ｓ２０９〜Ｓ２１０）を経る。
【００５１】
そして、本実施例にしたがってデータ同期化エラーを検査する手続きは、図５に図示された通り、クライアント２０がソースデータベース１１１にＳＱＬを伝送する段階（Ｓ２１１）と、スニッフィングモジュール１２１やプロキシモジュール１２２でパケットをキャプチャーする段階（Ｓ２１２）、パケット分析モジュール１２３でＳＱＬおよびその実行結果を抽出する段階（Ｓ２１３）、ＳＱＬ選別モジュール１２４で抽出したＳＱＬのうち同期化エラー検査のためのクエリを選別する段階（Ｓ２１４）、選別したクエリを複製データベース１３１で実行して結果を得る段階（Ｓ２１５）、ソースデータベース１１１のクエリ結果と複製データベース１３１のクエリ結果を比較して同期化エラーを検査する段階（Ｓ２１６）、同期化エラーが探知され、クエリが復旧用クエリである場合、クエリ結果を利用して複製データベース１３１に伝送するＤＭＬを生成する段階（Ｓ２１７〜Ｓ２１９）、生成したＤＭＬを複製データベース１３１に伝送して復旧する段階（Ｓ２２０）、および同期化エラーが探知され、クエリが検査用クエリである場合、データ同期化モジュール１２９１を通じて復旧する段階（Ｓ２２１）で構成される。
【００５２】
以上、本発明の実施例を参照して説明されたが、本技術分野の通常の知識を有する者であれば、これから多様な変形および均等な他の実施例が可能であることが理解できるはずである。したがって、本発明の権利範囲はこれに限定されるものではなく、下記の特許請求の範囲で定義している本発明の基本概念を利用した当業者の多様な変形および改良形態も本発明の権利範囲に属するものである。
【符号の説明】
【００５３】
２０、２０−１〜２０−Ｎ：クライアント端末機
３０：インターネット
１１０：第１運営サーバー
１１１：ソースデータベース
１２０：複製サーバー
１３０：第２運営サーバー
１３１：複製データベース
１２１：スニッフィングモジュール
１２２：プロキシモジュール
１２３：パケット分析モジュール
１２４：ＳＱＬ選別モジュール
１２５：データ標準化モジュール
１２６：データ構造変換モジュール
１２７：変換データ適用モジュール
１２８：データ同期化検証モジュール
１２９：データ同期化復旧モジュール
１２９１：データ同期化モジュール
１４０、１４１、１５０、１５１、１６０、１７０：パケット
【図１】
2019114240.tif 000003
【図２】
2019114240.tif 000004
【図３】
2019114240.tif 000005
【図４】
2019114240.tif 000006
【図５】
2019114240.tif 000007