JP6711884B2 - ソースデータベースの負荷を最小化したデータ整合性検証方法およびシステム - Google Patents

ソースデータベースの負荷を最小化したデータ整合性検証方法およびシステム Download PDF

Info

Publication number
JP6711884B2
JP6711884B2 JP2018206576A JP2018206576A JP6711884B2 JP 6711884 B2 JP6711884 B2 JP 6711884B2 JP 2018206576 A JP2018206576 A JP 2018206576A JP 2018206576 A JP2018206576 A JP 2018206576A JP 6711884 B2 JP6711884 B2 JP 6711884B2
Authority
JP
Japan
Prior art keywords
data
module
consistency
source database
database
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.)
Active
Application number
JP2018206576A
Other languages
English (en)
Other versions
JP2019212272A (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.)
WareValley Co Ltd
Original Assignee
WareValley Co 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 WareValley Co Ltd filed Critical WareValley Co Ltd
Publication of JP2019212272A publication Critical patent/JP2019212272A/ja
Application granted granted Critical
Publication of JP6711884B2 publication Critical patent/JP6711884B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、同一の複数のデータベースを運営するデータベース運営システムにおいて、ソースデータベースと複製データベースのデータとが一致するかを検証するためのデータ整合性検証方法およびシステムに関するものであって、さらに詳細には、ソースデータベースのデータ変化のパターンを収集後に分析し、データ変更カラムの時間値または数字値の範囲で区分した後にグループ化して比較することによってソースデータベースの負荷を最小化しつつも効率的に大容量のデータを検証できる、データ整合性検証方法およびシステムに関するものである。
情報化時代に入るにつれて、電子商取引、インターネット金融、インターネットショッピングモールなどの多様な分野で大容量のデータが発生しており、それに伴う多様なデータベースの使用とデータベース間のデータ複製またはマイグレーション作業などにより、同一データが各種のデータベースで業務的に使われている。このような過程において、データの複製とマイグレーション作業中にデータ漏れまたは損傷が発生し得るため、データの信頼性を保証するための効率的な運営方法が必要である。
ソースデータベースとターゲットデータベース間のデータ複製またはマイグレーション時のデータ整合性の信頼性を保証するために、通常はソースデータベースとターゲットデータベースのデータを全体または一部を持ち込んだ後、行(ROW)単位でデータ全体を比較してデータ整合性をチェックして維持している。
ところが、このようなROW単位のデータ整合性検証方式は、OLTP特性のソースデータベースで多くの負荷を発生するようになるため業務処理システムが遅くなる問題点があり、したがって、実際の運営環境ではデータ整合性に対する検証がきちんと行われておらず、その結果、ターゲットデータベースで業務を進行する時にデータ整合性の問題で正確な業務が行われない場合が発生する。
特許文献1は、企業業務統合を利用したデータ整合性管理方法およびシステムに関するものであり、特許文献2は、ログに基づいてデータ整合性を維持する分散保存システムおよび方法に関するものであって、障害が発生したノードが遂行できない演算に対するログを生成し、生成したログに基づいて演算を遂行することによってデータの整合性を維持するものである。
韓国公開特許第10−2009−0001955号公報 韓国登録特許第10−1553712号公報
本発明の目的は、データベース複製またはマイグレーション中に発生し得るデータ不一致の問題を解決するために、ソースデータベースの負荷を最小化しながらも大容量のデータを早い時間内に効率的に整合性検証できる方法およびシステムを提供することである。
本発明の一見地に係るシステムは、クライアントとソースデータベースを運営する運営サーバーとの間のパケットを抽出するか、トランザクションログやトリガー情報から変更データを抽出する変更データ抽出手段と、前記変更データ抽出手段によって抽出した変更データをパターン分析して変更情報が保存されたDML変更パターンビットセットデータを生成するパターン分析器と、前記DML変更パターンビットセットデータから規則を探して整合性プロファイルを生成するルールエンジンモジュールと、前記ルールエンジンモジュールの整合性プロファイルに従って整合性検証を実行する整合性実行モジュールと、を含む。
前記変更データ抽出手段は、ネットワーク環境のスイッチまたはタップ設備からパケットデータをコピーしてSQL変更データを抽出するスニッフィングモジュール、ネットワークパケットを中継しつつ、SQL変更データを抽出するプロキシモジュール、第1運営サーバーのDBMSで復旧のために生成したトランザクションログを持ち込んで変更データを抽出するトランザクションログモジュール、変更データ履歴情報を残すことができるトリガー機能で変更データを抽出するトリガーモジュールのうちいずれか一つである。
前記パターン分析器は、分析対象テーブル目録を持ち込んだ後、キュー保存所から変更データを持ち込んでDML変更パターンビットセットデータを生成した後、リポジトリに保存するものである。
また、本発明の他の見地に係る方法は、クライアントとソースデータベースを運営する運営サーバーとの間のパケットを抽出するか、トランザクションログやトリガー情報から変更データを抽出する第1段階と、前記第1段階で抽出した変更データをパターン分析して変更情報が保存されたDML変更パターンビットセットデータを生成する第2段階と、前記DML変更パターンビットセットデータから規則を探して整合性プロファイルを生成する第3段階と、前記ルールエンジンモジュールの整合性プロファイルに従って整合性検証を実行する第4段階と、を含む。
前記第4段階は、対象テーブル情報と整合性プロファイルを持ち込んでソースおよびターゲットデータベースの予想実行時間と現在の負荷測定値に基づいてデータ抽出モジュールであるダンプモジュールの実行並列度を設定した後、ダンプモジュールを実行してソースおよびターゲットデータベースから該当比較検証対象データを抽出した後、整合性プロファイルのGRCAアルゴリズムに基づいて整合性グループチェックサム(group checksum)データを生成してデータ整合性をチェックし、不一致が検出されると、ダンプデータに基づいてリカバリーモジュールを実行してデータ同期化復旧作業を遂行するものである。
本発明によると、原本データベースのデータ変化のパターンを収集後に分析し、データ変更コラムの時間値または数字値の範囲で区分した後にグループ化して比較することによってソースデータベースの負荷を最小化すると効率的に大容量のデータ整合性を検証できる効果がある。
また、本発明によると、ターゲットデータベースで業務を進行する時にもソースデータベースと同一にデータ整合性を維持することによって正確な業務を速かに処理できる長所がある。
本実施例に係る整合性検証システムの全体構成ブロック図。 本実施例のシステムによる整合性検証手続きを図示した全体フローチャート。 本実施例に係るスニッフィングモジュールの動作フローチャート。 本実施例に係るプロキシモジュールの動作フローチャート。 本実施例に係るトランザクションログモジュールの動作フローチャート。 本実施例に係るトリガーモジュールの動作フローチャート。 本実施例に係るパターン分析器モジュールの動作フローチャート。 本実施例に係るルールエンジンモジュールの動作フローチャート。 本実施例に用いられるGRCAアルゴリズムのフローチャート。 本実施例に係る整合性実行モジュールの動作フローチャート。 本実施例に係るダンプモジュールの動作フローチャート。 本実施例に係る比較モジュールの動作フローチャート。 本実施例に係るリカバリーモジュールの動作フローチャート。
本発明と本発明の実施によって達成される技術的課題は、下記において説明する本発明の好ましい実施例によってより明確となるはずである。下記の実施例は単に本発明を説明するために例示されたものに過ぎず、本発明の範囲を制限するためのものではない。
図1は本実施例に係る整合性検証システムの全体構成ブロック図であり、図2は本実施例のシステムによる整合性検証手続きを図示したフローチャートである。
本実施例に係るデータ整合性検証システムは、図1に図示された通り、クライアント10、ソースデータベース22を運営する第1運営サーバー20と、ターゲットデータベース32を運営する第2運営サーバー30と、ソースデータベース22とターゲットデータベース32との間のデータ整合性を検証する整合性検証サーバー100と、で構成される。クライアント10は第1運営サーバー20に直接接続してSQLパケットを送受信し、プロキシモジュール114を介して第1運営サーバー20に接続してSQLパケットを送受信することができ、第1運営サーバー20は運営中にDBMSトランザクションログ24を生成している。
整合性検証サーバー100は、図1に図示された通り、各種データを保存するためのリポジトリ102と、スニッフィングモジュール112と、プロキシモジュール114と、トランザクションログモジュール116と、トリガーモジュール118と、パターン分析器モジュール120と、ルールエンジンモジュール130と、整合性実行モジュール140と、ダンプモジュール150と、比較モジュール160と、リカバリーモジュール170と、を含んでいる。リポジトリ102には多数のキューが備えられ得る。ここで、スニッフィングモジュール112と、プロキシモジュール114と、トランザクションログモジュール116と、トリガーモジュール118は、変更データ抽出モジュール110に該当する。
本実施例のシステムは、図2に図示された通り、変更データ抽出モジュール110から変更データを抽出してキューに保存する変更データ抽出過程(S1)と、キューから変更データを持ち込んで分析して、DML変更パターンビットセットデータを生成してリポジトリ102に保存するDML変更パターンビットセットデータ生成過程(S2)と、テーブル単位でグループロウチェックサムアルゴリズム(GRCA:Group Row Checksum Algorithm)を適用して整合性プロファイルを生成する整合性プロファイル生成過程(S3)と、整合性プロファイルに従って実際に整合性を実行する整合性実行過程(S4)を順次実行する。
図2を参照すると、変更データ抽出過程(S1)では、スニッフィングモジュール112を開始し、プロキシモジュール114を開始し、トランザクションログ116を開始し、トリガーモジュール118を開始した後、変更データを抽出してキューに保存する。
DML変更パターンビットセットデータ生成過程(S2)では、パターン分析器モジュール120を実行してキューの保存領域から変更データを持ち込んで分析した後、DML変更パターンビットセットデータを生成してリポジトリ102に保存する。
整合性プロファイル生成過程(S3)では、ルールエンジンモジュール130を開始してテーブル単位のビットマスクデータを持ち込んで、テーブル単位でGRCAを適用して整合性プロファイルを生成および保存する。
整合性実行過程(S4)では、ダンプモジュール150を開始し、ソースおよびターゲットデータベースからデータを抽出して整合性データを生成した後、比較モジュール160を開始してデータ整合性チェックを実行する。引き続き、リカバリーモジュール170で、復旧データがある場合、データ同期化復旧を遂行する。
図1を参照すると、スニッフィングモジュール112は、ネットワーク環境のスイッチ(Switch)またはタップ(Tap)設備からパケットデータをコピーするモジュールであって、DBMSパケットを分析して変更データを抽出した後、整合性に必要な情報をパターン分析器モジュール120に提供する役割を担当する。スニッフィングモジュール112は、図3に図示された通り、スニッフィング初期化を実行した後にネットワークパケットを収集し、収集したパケットからSQL変更データを抽出した後、抽出したデータをキューに保存する(S101〜S104)。
プロキシ(proxy)モジュール114は、基本的にはネットワークパケットを中継する役割をするが、本実施例において、プロキシモジュール114は、DBMSのパケットを中継する過程で整合性検証時に必要な変更データ情報をパターン分析器モジュール120に提供する役割を担当する。プロキシモジュール114は、図4に図示された通り、初期化を実行してからサーバーソケットを生成し、クライアント接続があるまで待機する(S111〜S113)。引き続き、接続されたクライアントからDBMSに送るパケットを収集し、収集したパケットからSQL変更データを抽出した後、抽出したデータをキューに保存する(S114〜S116)。
トランザクションログ(Transaction Log)モジュール116は、第1運営サーバー20のDBMSで復旧のために生成したトランザクションログ(Transaction log)を持ち込んで分析した後、整合性に必要な変更データ(DML)情報をパターン分析器モジュール120に提供する役割を担当する。ここで、変更データ情報(DML:Data Manipulation Language)は、INSERT、UPDATE、DELETEなどである。トランザクションログモジュール116は、図5に図示された通り、接続DBMS情報および最終処理トランザクションログを持ち込む初期化を実行した後、トランザクションログ24から変更データ情報を抽出する(S121、S122)。引き続き、抽出した変更データをデータキューに保存する(S123)。
一方、すべてのDBMSは変更データ履歴情報を残すことができるトリガー(Trigger)機能を提供するが、本実施例でDBMSトリガーモジュール118は、トリガー機能による変更データ情報をパターン分析器モジュール120に提供する役割を担当する。トリガーモジュール118は、図6に図示された通り、接続DBMS情報、トリガー抽出対象持ち込みのような初期化を実行した後、既存に生成したトリガーがなければトリガーを生成し、周期的に生成したトリガー情報を抽出し、処理したデータは削除する(S131〜S133)。この時、トリガー生成は、INSERT、UPDATE時に変更コラム情報が1、0でトリガーテーブルに保存されるようにすることである。
パターン分析器モジュール120は、スニッフィングモジュール112、プロキシ(Proxy)モジュール114、DBMSトランザクションログ(Transaction log)モジュール116、DBMSトリガー(Trigger)モジュール118のうち少なくとも一つで収集された変更データ情報を分析して、DML変更パターンビットセットデータを生成してリポジトリ102に保存する。このようなパターン分析器モジュール120は、図7に図示された通り、分析対象テーブル目録から分析対象テーブル目録を持ち込んだ後、キューの保存領域から変更データを持ち込む(S201、S202)。引き続き、変更データであって、DMLであり、分析対象テーブルであれば、INSERTあるいはUPDATEであるかを判断してパターン分析ビットマスクデータを生成した後、リポジトリ102にDML変更パターンビットセットデータを保存する(S203〜S208)。
ここでDML変更パターンビットセットデータの属性値は下記の表1の通りである。
Figure 0006711884
前記表1のバイナリーデータを一つのパターンROWで保存するために、BASE 64エンコーディングされた文字列の形態で保存して分析資料として活用する。
ルールエンジン(Rule Engine)モジュール130は、パターン分析器モジュール120で収集されて保存されたDML変更パターンビットセットデータを分析して、テーブル(Table)単位で最終整合性実行プロファイル(Profile)を生成してリポジトリ102に保存する。そして、各Table単位、日単位、時間単位でデータの発生量を測定し、全体のデータ発生量を測定してソースデータベースの負荷発生情報を生成してリポジトリ102に保存する。ここで、GRCA(group row checksum algorithm)ソースデータベースの負荷を最小化した方法を提示し、GRCAアルゴリズムで実行される場合、ソースデータベースの整列負荷を除外するデータ抽出方法で負荷を最小化し、データ整合性検証時に比較機能を単純化することによって速やかに動作可能であるようにする。
図8を参照すると、ルールエンジンモジュール130は、分析対象テーブルから分析対象テーブル目録を持ち込むと共に、全体のデータ件数を把握した後、分析対象テーブル単位で分析対象DML変更パターンビットセットデータを持ち込む(S301、S302)。引き続き、GRCAアルゴリズムでデータ整合性プロファイルを生成し、生成したデータ整合性プロファイルをリポジトリ102に保存する(S303、S304)。ここで、GRCAアルゴリズムによってデータ整合性プロファイルを生成する手続きは、図9に図示された通りである。
図9を参照すると、対象テーブルの過去パターン分析統計情報を持ち込み、対象テーブルのメタ情報とインデックス情報を持ち込む(S311、S312)。引き続き、分析していないDML変更パターンビットセットを分析して統計情報を生成し、生成した統計情報と過去の統計情報に基づいて新しい統計情報を生成する(S313、S314)。生成した新しい統計情報から日単位で最も値が高頻度に変更されるカラム情報を抽出する(S315)。この時、条件としては、少なくとも1つ以上、できる限りカラム種類が異なる3つを選択する。
そして、統計情報とインデックス情報からグループ単位条件となり得るカラム情報を探す(S316)。ここで、カラム情報は、日付またはシーケンスや数字や文字のうち継続して増加する値、範囲値等となり得る。引き続き、グループとして使用される値が存在するかを判断して、日付またはシーケンス範囲に合わせてデータを抽出できる条件節のプロファイルを生成する(S317〜S319)。
そして、パターン適用カラムが存在するかを判断し、日付タイプ、整数タイプ、実数タイプであれば、整数値に変換してチェックサム値すなわちプラス演算をする(S320〜S322)。文字タイプであれば、文字列を2バイトで整列させ、さらに整数に変換した後に曜日の数字で割った余りの値を求める(S323、S324)。その後、日単位、時間単位の最終グループ単位でデータを抽出できるデータ抽出条件とグループ単位のROWのコラムに対してチェックサム値を求めるプロファイルを生成する(S325)。
再び図1を参照すると、整合性実行モジュール140は、整合性実行要請時にルールエンジン(Rule Engine)モジュール130で生成したGRCAアルゴリズムとプロファイル(Profile)に基づいて、実際の整合性動作を実行し管掌する。整合性実行は、ルールエンジン(Rule Engine)モジュール130で収集されたソースデータベースの負荷値を求めて、負荷が最小化される時点でダンプ(Dump)モジュール150が開始されるようにする。これは、ソースデータベースの負荷を最小化するための事前作業である。
このような整合性実行モジュール140は、図10に図示された通り、テーブル情報とメタ情報のような対象テーブル情報を持ち込み、実行計画(profile)情報を持ち込んだ後、ソースデータベースの負荷を測定して実行可能の可否を確認する(S401〜S403)。引き続き、ダンプモジュール150の並列処理の判断をし、ダンプモジュール150の並列度を設定した後、ダンプモジュール150を実行する(S404〜S406)。そして、比較モジュール160を実行した後、リカバリーモジュール170を実行して結果を処理する(S407〜S409)。
ダンプ(Dump)モジュール150は、整合性対象テーブル(table)のデータを常識ルールエンジン(Rule Engine)モジュール130で生成したプロファイル(Profile)情報に基づいて動作する。まず、ソースおよびターゲットデータベースから該当ROWデータを抽出し、引き続きGRCAアルゴリズムを適用してチェックサム値(checksum)を生成および保存した後、復旧用として抽出したROWデータをGRCAアルゴリズムでGROUP処理して保存し、検索のためのINDEXファイルを生成する。復旧用に、GRCAアルゴリズムによってGROUP単位でソースデータを保存することによって、復旧時に早い検索機能を提供する。このようなダンプモジュール150は、図11に図示された通り、並列度入力値により並列処理あるいは単一処理を決定し、該当テーブルのGRCAアルゴリズムのプロファイルに基づいてグループ単位データを抽出する(S411、S412)。抽出したソースデータを保存してインデックスファイルを生成する(S413)。そして、抽出したソースデータにGRCAアルゴリズムを適用してグループROWデータ単位でチェックサム値を生成する(S414)。
比較モジュール160は、ダンプ(Dump)モジュール150で生成したソースデータベースのGRCAデータとターゲットデータベースのGRCAデータとを比較して整合性一致の有無を確認し、もし、GRCA整合データが一致しない場合は、ソースとターゲットデータファイルで該当不一致ROWを探してすべて復旧用データファイルとして保存する。この時、全体のデータの30%以上、または対象テーブルのソースデータが100万件以下の場合は、データ不一致が発生する場合、マイグレーション復旧モードで動作する。このような比較モジュール160は、図12に図示された通り、ソースデータベースのグループROWチェックサム値とターゲットデータベースのグループROWチェックサム値を比較してデータ整合性検査をする(S421)。引き続き、不一致チェックサム値が存在するかを判断し、存在する場合、不一致チェックサム値に対するグループ情報を保存する(S422、S423)。
リカバリーモジュール170は、比較(Compare)モジュール160でデータ復旧信号がある場合に動作し、ソースデータベースで該当復旧テーブル(Table)のROWに対してLOCKを実行した後、ソースデータベースから抽出したROWデータをターゲットデータベースシステムに同期化する。LOCKは該当DBMS TABLEまたはROW単位のLOCK機能を活用する。リカバリーモジュール170は、図13に図示された通り、不一致情報ファイルから該当リカバリー対象グループ情報を持ち込み、グループ情報に基づいてソースデータファイルでROW単位データを比較して不一致ROWを検出する(S431、S432)。検出したROWデータを復旧ファイルに保存する(S433)。このような動作を繰り返した後、それ以上不一致データがなければ、復旧ファイルからROWデータを持ち込むと共に、該当ROWデータをソースデータベースでLOCKをかけて再度持ち込む(S434〜S436)。引き続き、持ち込んだROWデータをターゲットデータベースに適用し、復旧ROWが存在すればこのような段階を繰り返す(S437、S438)。
以上、本発明は図面に図示された一実施例を参照して説明されたが、本技術分野の通常の知識を有する者であれば、これから多様な変形および均等な他の実施例が可能であることが理解できるはずである。
10:クライアント
20:第1運営サーバー
22:ソースデータベース
24:DBMSトランザクションログ
30:第2運営サーバー
32:ターゲットデータベース
100:整合性検証サーバー
102:リポジトリ
110:変化データ抽出モジュール
120:パターン分析器モジュール
130:ルールエンジンモジュール
140 : 整合性実行モジュール
150:ダンプモジュール
160:比較モジュール
170:リカバリーモジュール

Claims (3)

  1. クライアントとソースデータベースを運営する運営サーバーとの間のパケットからSQL変更データを抽出するか、トランザクションログ又はトリガー情報からSQL変更データを抽出する変更データ抽出手段と、
    前記変更データ抽出手段によって抽出したSQL変更データを受信し、分析対象のテーブルに属し、データ操作言語(DML)に属している場合、テーブルオブジェクトナンバー、データ発生時間、DMLタイプ、変更されたコラムのビット単位の表現、日付、またはシーケンス番号で構成されるバイナリデータ形式のDML変更パターンビットセットデータを生成するパターン分析器と、
    分析対象のテーブルの過去のパターン分析統計を取得し、前記DML変更パターンビットセットデータを分析して新しい統計情報を生成した後、生成された統計情報と過去の統計情報に基づいて、日単位で値が最も頻繁に変更されるカラム情報を抽出して、日付またはシーケンスの範囲に合わせてグループ単位でデータを抽出することができる条件節の整合性プロファイルを生成するルールエンジンモジュールと、
    ソースデータベースの負荷を測定して負荷が最小となった時点で、前記ルールエンジンモジュールの整合性プロファイルを実行する整合性実行モジュールと、
    前記整合性実行モジュールの制御に基づいて、 ソースデータベースとターゲットデータベースからグループ単位で対象のテーブルのデータを読み込み、該当行(ROW)のコラムのチェックサム値を生成するダンプモジュールと、
    前記整合性実行モジュールの制御に基づいて、ソースデータベースのチェックサム値とターゲットデータベースのチェックサム値とを比較し、一致しない場合、データ復旧信号を生成する比較モジュールと、
    前記整合性実行モジュールの制御と、前記比較モジュールの復旧信号に応じて、ソースデータベースからの復旧テーブルの行(ROW)についてロック(LOCK)した後、ソースデータベースから抽出した行(ROW)データをターゲットデータベースにコピーして、ソースデータベースとターゲットデータベースを同期させるリカバリーモジュールと、
    を含む、ソースデータベースの負荷を最小化したデータ整合性検証システム。
  2. 前記変更データ抽出手段は、
    ネットワーク環境のスイッチまたはタップ設備からパケットデータをコピーしてSQL変更データを抽出するスニッフィングモジュール、ネットワークパケットを中継しつつSQL変更データを抽出するプロキシモジュール、第1運営サーバーのDBMSで復旧のために生成したトランザクションログを持ち込んでSQL変更データを抽出するトランザクションログモジュール、変更データ履歴情報を残すことができるトリガー機能でSQL変更データを抽出するモジュール、のうちいずれか一つであることを特徴とする、請求項1に記載のソースデータベースの負荷を最小化したデータ整合性検証システム。
  3. クライアントと接続され、ソースデータベースを運営する第1運用サーバーと、ターゲットデータベースを運営する第2運用サーバーと、により構成されるデータベースシステムにおいて、整合性検証サーバーによって、前記ソースデータベースとターゲットデータベースの整合性を検証するためのデータ整合性検証方法において、
    前記整合性検証サーバーがクライアントとソースデータベースを運営する運営サーバーとの間のパケットからSQL変更データを抽出するか、トランザクションログ又はトリガー情報からSQL変更データを抽出する第1段階と、
    前記整合性検証サーバーが前記第1段階で抽出したSQL変更データを受信し、分析対象のテーブルに属し、データ操作言語(DML)に属している場合、テーブルオブジェクトナンバー、データ発生時間、DMLタイプ、変更されたコラムのビット単位の表現、日付、またはシーケンス番号で構成されるバイナリデータ形式のDML変更パターンビットセットデータを生成する第2段階と、
    前記整合性検証サーバーが分析対象のテーブルの過去のパターン分析統計を取得し、前記DML変更パターンビットセットデータを分析して新しい統計情報を生成した後、生成された統計情報と過去の統計情報に基づいて、日単位で値が最も頻繁に変更されるカラム情報を抽出して、日付またはシーケンスの範囲に合わせてグループ単位でデータを抽出することができる条件節の整合性プロファイルを生成する第3段階と、
    前記整合性検証サーバーがソースデータベースの負荷を測定して負荷が最小となった時点で、前記整合性プロファイルに従ってソースデータベースとターゲットデータベースから対象のテーブルのデータを読み込み、該当行(ROW)のコラムのチェックサム値を求める第4段階と、
    前記整合性検証サーバーが、ソースデータベースのチェックサム値とターゲットデータベースのチェックサム値とを比較し、一致しない場合、データ復旧信号を生成する第5段階と、
    前記整合性検証サーバーが前記復旧信号に応じて、ソースデータベースからの復旧テーブルの行(ROW)についてロック(LOCK)した後、ソースデータベースから抽出した行(ROW)データをターゲットデータベースにコピーして、ソースデータベースとターゲットデータベースを同期させる第6段階と、
    を含む、ソースデータベースの負荷を最小化したデータ整合性検証方法。

JP2018206576A 2018-05-31 2018-11-01 ソースデータベースの負荷を最小化したデータ整合性検証方法およびシステム Active JP6711884B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180062876A KR101917807B1 (ko) 2018-05-31 2018-05-31 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법 및 시스템
KR10-2018-0062876 2018-05-31

Publications (2)

Publication Number Publication Date
JP2019212272A JP2019212272A (ja) 2019-12-12
JP6711884B2 true JP6711884B2 (ja) 2020-06-17

Family

ID=64024429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018206576A Active JP6711884B2 (ja) 2018-05-31 2018-11-01 ソースデータベースの負荷を最小化したデータ整合性検証方法およびシステム

Country Status (4)

Country Link
US (1) US20190370368A1 (ja)
JP (1) JP6711884B2 (ja)
KR (1) KR101917807B1 (ja)
GB (1) GB2574282A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102225258B1 (ko) 2019-04-18 2021-03-10 주식회사 실크로드소프트 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램
CN110990414B (zh) * 2019-10-31 2023-06-16 口碑(上海)信息技术有限公司 一种数据处理方法以及装置
CN112231403B (zh) * 2020-10-15 2024-01-30 北京人大金仓信息技术股份有限公司 数据同步的一致性校验方法、装置、设备和存储介质
CN112363873A (zh) * 2020-11-27 2021-02-12 上海爱数信息技术股份有限公司 一种分布式一致性备份恢复系统及其备份方法
KR102463665B1 (ko) * 2021-02-18 2022-11-09 (주)알투비솔루션 원격 dbms 테이블간 고성능 테이블 데이터 정합성 검증 시스템
WO2022250293A1 (ko) * 2021-05-25 2022-12-01 (주)알투비솔루션 서버간 네트워크가 단절된 망분리 환경에서의 dbms 테이블 정합성 검증 및 보정 시스템
KR20220159523A (ko) * 2021-05-25 2022-12-05 (주)알투비솔루션 서버간 네트워크가 단절된 망분리 환경에서의 cdc 방식의 db 복제 시스템
KR102431846B1 (ko) 2022-01-26 2022-08-11 (주) 다윈아이씨티 플랫폼 마이그레이션에 대한 검증 방법, 장치 및 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257689B1 (en) * 2004-10-15 2007-08-14 Veritas Operating Corporation System and method for loosely coupled temporal storage management
US8751441B2 (en) * 2008-07-31 2014-06-10 Sybase, Inc. System, method, and computer program product for determining SQL replication process
US9171029B2 (en) * 2013-01-31 2015-10-27 International Business Machines Corporation Performing batches of selective assignments in a vector friendly manner

Also Published As

Publication number Publication date
GB2574282A (en) 2019-12-04
GB201815308D0 (en) 2018-11-07
US20190370368A1 (en) 2019-12-05
KR101917807B1 (ko) 2018-11-13
JP2019212272A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
JP6711884B2 (ja) ソースデータベースの負荷を最小化したデータ整合性検証方法およびシステム
JP6668442B2 (ja) Sqlパケット分析を通じての異機種データベースのデータ複製および同期化エラー探知方法およびシステム
Pelkonen et al. Gorilla: A fast, scalable, in-memory time series database
CN109033186B (zh) 数据一致性检测方法、装置、存储介质及电子设备
US10452625B2 (en) Data lineage analysis
US8688622B2 (en) Methods and systems for loading data into a temporal data warehouse
US7127475B2 (en) Managing data integrity
AU2015206487B2 (en) Database key identification
CN108647357B (zh) 数据查询的方法及装置
CN110134694B (zh) 一种双活数据库中表数据的快速比对装置及方法
CN109522315B (zh) 一种数据库处理方法及系统
CN112214411B (zh) 一种容灾系统测试方法、装置、设备及存储介质
CN113420026A (zh) 数据库表结构变更方法、装置、设备及存储介质
CN112835918A (zh) 一种MySQL数据库增量同步实现方法
CN106844694B (zh) 用于同步数据的方法及设备
CN113672692B (zh) 数据处理方法、装置、计算机设备和存储介质
KR20100134355A (ko) 데이터베이스의 논리적 데이터 오류 복구방법
US11023449B2 (en) Method and system to search logs that contain a massive number of entries
CN111198847A (zh) 一种适用于大数据集的数据并行处理方法、装置及系统
CN114116733B (zh) 配电自动化系统数据异常操作检测和追溯系统及方法
CN111522875B (zh) 一种全量数据同步的分布式系统数据副本一致性监测方法
EP2980702A1 (en) Method for enhancing the generation of a backup copy of data items of a distributed data structure, computer network for enhancing the generation of a backup copy of data items of a distributed data structure, program and computer program product
CN113190536B (zh) 一种对双活数据库管理复制系统的快速修复方法及装置
CN114153830A (zh) 数据验证方法及其装置、计算机存储介质、电子设备
Shaik et al. Assimilating sense into disaster recovery databases and judgement framing proceedings for the fastest recovery

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200128

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: 20200512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200528

R150 Certificate of patent or registration of utility model

Ref document number: 6711884

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250