KR101917807B1 - 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법 및 시스템 - Google Patents

원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법 및 시스템 Download PDF

Info

Publication number
KR101917807B1
KR101917807B1 KR1020180062876A KR20180062876A KR101917807B1 KR 101917807 B1 KR101917807 B1 KR 101917807B1 KR 1020180062876 A KR1020180062876 A KR 1020180062876A KR 20180062876 A KR20180062876 A KR 20180062876A KR 101917807 B1 KR101917807 B1 KR 101917807B1
Authority
KR
South Korea
Prior art keywords
data
module
consistency
change
pattern
Prior art date
Application number
KR1020180062876A
Other languages
English (en)
Inventor
이우준
김인호
권영구
Original Assignee
주식회사 웨어밸리
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 주식회사 웨어밸리 filed Critical 주식회사 웨어밸리
Priority to KR1020180062876A priority Critical patent/KR101917807B1/ko
Priority to US16/133,415 priority patent/US20190370368A1/en
Priority to GB1815308.0A priority patent/GB2574282A/en
Priority to JP2018206576A priority patent/JP6711884B2/ja
Application granted granted Critical
Publication of KR101917807B1 publication Critical patent/KR101917807B1/ko

Links

Images

Classifications

    • G06F17/30575
    • 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
    • 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/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
    • 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)

Abstract

본 발명은 원본 데이터베이스의 데이터 변화의 패턴을 수집/분석하여 데이터 변경 컬럼의 시간 값 또는 숫자 값의 범위로 구분 후 그룹화 하여 비교함으로써 원본 데이터베이스의 부하를 최소화하면서 효율적으로 대용량의 데이터를 검증할 수 있는 데이터 정합성 검증 방법 및 시스템에 관한 것이다. 본 구현 예의 시스템은 클라이언트와 원본 데이터베이스를 운영하는 운영서버 사이의 패킷을 추출하거나 트랜잭션 로그나 트리거 정보로부터 변경 데이터를 추출하는 변경 데이터 추출수단과, 변경 데이터 추출수단에 의해 추출된 변경 데이터를 패턴 분석하여 변경 정보가 저장된 DML 변경 패턴 비트 셋 데이터를 생성하는 패턴 분석기와, DML 변경 패턴 비트 셋 데이터로부터 규칙을 찾아 정합성 프로파일을 생성하는 룰 엔진 모듈과, 룰 엔진 모듈의 정합성 프로파일에 따라 정합성 검증을 실행하는 정합성 실행 모듈을 포함한다. 본 발명에 따르면, 원본 데이터베이스의 데이터 변화 패턴을 추적하여 변화가 많은 영역을 그룹화하여 비교함으로써 원본 데이터베이스의 부하를 최소화하면 효율적으로 대용량의 데이터 정합성을 검증할 수 있는 효과가 있다. 또한, 본 발명에 따르면, 타켓 데이터베이스에서 업무 진행 시에도 원본 데이터베이스와 동일하게 데이터 정합성을 유지하여 정확한 업무를 신속하게 처리할 수 있는 장점이 있다.

Description

원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법 및 시스템 {Data consistency verification method and system that minimizes load of original database}
본 발명은 동일한 복수의 데이터베이스를 운영하는 데이터베이스 운영시스템에서 원본 데이터베이스와 복제 데이터베이스의 데이터가 일치하는지를 검증하기 위한 데이터 정합성 검증 방법 및 시스템에 관한 것으로, 더욱 상세하게는 원본 데이터베이스의 데이터 변화의 패턴을 수집 후 분석하여 데이터 변경 컬럼의 시간 값 또는 숫자 값의 범위로 구분 후 그룹화하여 비교함으로써 원본 데이터베이스의 부하를 최소화 하면서 효율적으로 대용량의 데이터를 검증할 수 있는 데이터 정합성 검증 방법 및 시스템에 관한 것이다.
정보화 시대에 접어들면서 전자 상거래, 인터넷 금융, 인터넷 쇼핑몰 등의 다양한 분야에서 대용량의 데이터가 발생하고 있고, 그에 따른 다양한 데이터베이스의 사용과 데이터베이스 간 데이터 복제 또는 마이그래이션 작업 등으로 동일 데이터가 여러 데이터베이스에서 업무적으로 사용되고 있다. 이러한 과정에서 데이터의 복제와 마이그래이션 작업 중에 데이터 누락 또는 손상이 발생할 수 있으므로 데이터의 신뢰성을 보장하기 위한 효율적인 운영 방법이 필요하다.
원본 데이터베이스와 타켓 데이터베이스 간 데이터 복제 또는 마이그레이션 시 데이터 정합성의 신뢰성을 보장하기 위해, 통상적으로 원본 데이터베이스와 타켓 데이터베이스의 데이터를 전체 또는 일부를 가져와 행(ROW) 단위로 데이터 전체를 비교하여 데이터 정합성을 체크하여 유지하고 있다.
그런데 이와 같은 ROW 단위의 데이터 정합성 검증 방식은 OLTP 특성의 원본 데이터베이스에서 많은 부하를 발생하게 되므로 업무 처리 시스템이 느려지는 문제점이 있고, 따라서 실제 운영 환경에서는 데이터 정합성에 대한 검증이 제대로 이루어지지 못하고 있으며, 그 결과 타켓 데이터베이스에서 업무 진행 시 데이터 정합성의 문제로 정확한 업무가 이루어지지 못하는 경우가 발생하게 된다.
대한민국 특허청 공개특허공보(A)의 공개번호 10-2009-0001955호는 기업업무 통합을 이용한 데이터 정합성 관리 방법 및 시스템에 관한 것이고, 등록번호 10-1553712호는 로그에 기반하여 데이터 정합성을 유지하는 분산 저장 시스템 및 방법에 관한 것으로 장애가 발생한 노드가 수행할 수 없는 연산에 대한 로그를 생성하고, 생성된 로그에 기반하여 연산을 수행함으로써 데이터의 정합성을 유지하는 것이다.
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 데이터베이스 복제 또는 마이그레이션 중에 발생할 수 있는 데이터 불일치의 문제를 해결하기 위해 원본 데이터베이스의 부하를 최소화하면서도 대용량의 데이터를 빠른 시간 내에 효율적으로 정합성 검증할 수 있는 방법 및 시스템을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여 본 구현 예의 시스템은 클라이언트와 원본 데이터베이스를 운영하는 운영서버 사이의 패킷을 추출하거나 트랜잭션 로그나 트리거 정보로부터 변경 데이터를 추출하는 변경 데이터 추출수단; 상기 변경 데이터 추출수단에 의해 추출된 변경 데이터를 패턴 분석하여 변경 정보가 저장된 DML 변경 패턴 비트 셋 데이터를 생성하는 패턴 분석기; 상기 DML 변경 패턴 비트 셋 데이터로부터 규칙을 찾아 정합성 프로파일을 생성하는 룰 엔진 모듈; 및 상기 룰 엔진 모듈의 정합성 프로파일에 따라 정합성 검증을 실행하는 정합성 실행 모듈을 포함한다.
상기 변경 데이터 추출수단은, 네트워크 환경의 스위치 또는 탭 장비에서 패킷 데이터를 복사하여 SQL 변경 데이터를 추출하는 스니핑 모듈이나 네트워크 패킷을 중계하면서 SQL 변경 데이터를 추출하는 프록시 모듈이나 제1 운영서버의 DBMS에서 복구를 위해 생성한 트랜잭션 로그를 가져와 변경 데이터를 추출하는 트랜잭션 로그 모듈이나 변경 데이터 이력 정보를 남길 수 있는 트리거 기능으로 변경 데이터를 추출하는 트리거 모듈 중 어느 하나인 것이다.
상기 패턴 분석기는, 분석 대상 테이블 목록을 가져온 후 큐 저장소에서 변경 데이터를 가져와 DML 변경 패턴 비트 셋 데이터를 생성한 후 내부 저장소에 저장하는 것이다.
또한 상기와 같은 목적을 달성하기 위하여 본 구현 예의 방법은, 클라이언트와 원본 데이터베이스를 운영하는 운영서버 사이의 패킷을 추출하거나 트랜잭션 로그나 트리거 정보로부터 변경 데이터를 추출하는 변경 데이터 추출하는 제 1 단계; 상기 제 1 단계에서 추출된 변경 데이터를 패턴 분석하여 변경 정보가 저장된 DML 변경 패턴 비트 셋 데이터를 생성하는 제 2 단계; 상기 DML 변경 패턴 비트 셋 데이터로부터 규칙을 찾아 정합성 프로파일을 생성하는 제 3 단계; 및 상기 룰 엔진 모듈의 정합성 프로파일에 따라 정합성 검증을 실행하는 제 4 단계를 포함한다.
상기 제 4 단계는 대상 테이블 정보와 정합성 프로파일을 가져와 원본 및 타켓 데이터베이스의 예상 실행 시간과 현재 부하 측정 값을 바탕으로 데이터 추출 모듈인 덤프 모듈의 실행 병렬도을 설정 후 덤프 모듈을 실행하여 원본 및 타켓 데이터베이스로부터 해당 비교 검증 대상 데이터를 추출 후 정합성 프로파일의 GRCA 알고리즘을 바탕으로 정합성 그룹 첵섬(group checksum) 데이터를 생성하여 데이터 정합성을 체크하고 불일치가 검출 시 덤프 데이터를 바탕으로 리커버리 모듈을 실행하여 데이터 동기화 복구 작업을 수행하는 것이다.
본 발명에 따르면, 원본 데이터베이스의 데이터 변화의 패턴을 수집 후 분석하여 데이터 변경 컬럼의 시간 값 또는 숫자 값의 범위로 구분 후 그룹화하여 비교함으로써 원본 데이터베이스의 부하를 최소화하면 효율적으로 대용량의 데이터 정합성을 검증할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 타켓 데이터베이스에서 업무 진행 시에도 원본 데이터베이스와 동일하게 데이터 정합성을 유지하여 정확한 업무를 신속하게 처리할 수 있는 장점이 있다.
도 1은 본 실시예에 따른 정합성 검증 시스템의 전체 구성 블럭도,
도 2는 본 실시예의 시스템에 의한 정합성 검증 절차를 도시한 전체 순서도,
도 3은 본 실시예에 따른 스니핑 모듈의 동작 순서도,
도 4는 본 실시예에 따른 프록시 모듈의 동작 순서도,
도 5는 본 실시예에 따른 트랜잭션 로그 모듈의 동작 순서도,
도 6은 본 실시예에 따른 트리거 모듈의 동작 순서도,
도 7은 본 실시예에 따른 패턴 분석기 모듈의 동작 순서도,
도 8은 본 실시예에 따른 룰 엔진 모듈의 동작 순서도,
도 9는 본 실시예에 사용되는 GRCA 알고리즘의 순서도,
도 10은 본 실시예에 따른 정합성 실행 모듈의 동작 순서도,
도 11은 본 실시예에 따른 덤프 모듈의 동작 순서도,
도 12는 본 실시예에 따른 비교모듈의 동작 순서도,
도 13은 본 실시예에 따른 리커버리 모듈의 동작 순서도이다.
본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다.
도 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에 도시된 바와 같이, 초기화를 수행한 후 서버 소켓을 생성하고, 클라이언트 접속을 대기한다(S111S113). 이어 접속된 클라이언트로부터 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 Trigger 모듈(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과 같다.
순번 속성 명 속성값 비고
1 테이블 오브젝트 넘버(식별자 값)
2 데이터 발생 시간
3 DML 타입
4 변경된 컬럼들을 비트 단위로 표현 1은 변경, 0은 변경되지 않음을 나타냄
5 날짜 + 시퀀스 넘버 발행 자체 패턴 분석시 사용
상기 표 1의 Binary 바이너리 데이터를 하나의 패턴 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,423).
리커버리 모듈(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: 덤프 모듈
160: 비교 모듈 170: 리커버리 모듈

Claims (5)

  1. 클라이언트와 원본 데이터베이스를 운영하는 운영서버 사이의 패킷을 추출하거나 트랜잭션 로그나 트리거 정보로부터 변경 데이터를 추출하는 변경 데이터 추출수단;
    상기 변경 데이터 추출수단에 의해 추출된 변경 데이터를 패턴 분석하여 변경 정보가 저장된 DML 변경 패턴 비트 셋 데이터를 생성하는 패턴 분석기;
    상기 DML 변경 패턴 비트 셋 데이터로부터 규칙을 찾아 정합성 프로파일을 생성하는 룰 엔진 모듈; 및
    상기 룰 엔진 모듈의 정합성 프로파일에 따라 정합성 검증을 실행하는 정합성 실행 모듈을 포함하는 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 시스템.
  2. 제1항에 있어서, 상기 변경 데이터 추출수단은
    네트워크 환경의 스위치 또는 탭 장비에서 패킷 데이터를 복사하여 SQL 변경 데이터를 추출하는 스니핑 모듈이나 네트워크 패킷을 중계하면서 SQL 변경 데이터를 추출하는 프록시 모듈이나 제1 운영서버의 DBMS에서 복구를 위해 생성한 트랜잭션 로그를 가져와 변경 데이터를 추출하는 트랜잭션 로그 모듈이나 변경 데이터 이력 정보를 남길 수 있는 트리거 기능으로 변경 데이터를 추출하는 모듈 중 어느 하나인 것을 특징으로 하는 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 시스템.
  3. 제1항에 있어서, 상기 패턴 분석기는
    분석 대상 테이블 목록을 가져온 후 큐 저장소에서 변경 데이터를 가져와 DML 변경 패턴 비트 셋 데이터를 생성한 후 내부 저장소에 저장하는 것을 특징으로 하는 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 시스템.
  4. 변경 데이터 추출수단과, 패턴 분석기, 룰 엔진 모듈, 및 정합성 실행 모듈을 포함하는 정합성 검증 서버에 의한 데이터 정합성 검증 방법에 있어서,
    상기 변경 데이터 추출수단이 클라이언트와 원본 데이터베이스를 운영하는 운영서버 사이의 패킷을 추출하거나 트랜잭션 로그나 트리거 정보로부터 변경 데이터를 추출하는 제 1 단계;
    상기 패턴 분석기가 상기 제 1 단계에서 추출된 변경 데이터를 패턴 분석하여 변경 정보가 저장된 DML 변경 패턴 비트 셋 데이터를 생성하는 제 2 단계;
    상기 룰 엔진 모듈이 상기 DML 변경 패턴 비트 셋 데이터로부터 규칙을 찾아 정합성 프로파일을 생성하는 제 3 단계; 및
    상기 정합성 실행 모듈이 상기 정합성 프로파일에 따라 정합성 검증을 실행하는 제 4 단계를 포함하는 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법.
  5. 제4항에 있어서, 상기 제 4 단계는
    대상 테이블 정보와 정합성 프로파일을 가져온 후 원본 데이터 베이스의 부하를 측정하여 실행 가능 여부를 확인한 후 덤프 모듈의 병렬도를 설정한 후 덤프 모듈을 실행하여 원본 및 타켓 데이터베이스로부터 데이터를 추출하여 GRCA 바탕으로 정합성 데이터를 생성한 후, 비교 모듈을 시작하여 데이터 정합성을 체크하고 불일치가 검출되고 복구 데이터가 있을 경우 리커버리 모듈을 실행하여 데이터 동기화 복구를 수행하는 것을 특징으로 하는 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법.
KR1020180062876A 2018-05-31 2018-05-31 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법 및 시스템 KR101917807B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180062876A KR101917807B1 (ko) 2018-05-31 2018-05-31 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법 및 시스템
US16/133,415 US20190370368A1 (en) 2018-05-31 2018-09-17 Data consistency verification method and system minimizing load of original database
GB1815308.0A GB2574282A (en) 2018-05-31 2018-09-20 Data consistency verification method and system minimizing load of original database
JP2018206576A JP6711884B2 (ja) 2018-05-31 2018-11-01 ソースデータベースの負荷を最小化したデータ整合性検証方法およびシステム

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
KR101917807B1 true KR101917807B1 (ko) 2018-11-13

Family

ID=64024429

Family Applications (1)

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

Country Status (4)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020213985A1 (ko) * 2019-04-18 2020-10-22 주식회사 실크로드소프트 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램
KR102431846B1 (ko) 2022-01-26 2022-08-11 (주) 다윈아이씨티 플랫폼 마이그레이션에 대한 검증 방법, 장치 및 시스템
KR20220118054A (ko) * 2021-02-18 2022-08-25 (주)알투비솔루션 원격 dbms 테이블간 고성능 테이블 데이터 정합성 검증 시스템
WO2022250293A1 (ko) * 2021-05-25 2022-12-01 (주)알투비솔루션 서버간 네트워크가 단절된 망분리 환경에서의 dbms 테이블 정합성 검증 및 보정 시스템
WO2022250292A1 (ko) * 2021-05-25 2022-12-01 (주)알투비솔루션 서버간 네트워크가 단절된 망분리 환경에서의 cdc 방식의 db 복제 시스템
KR102669856B1 (ko) * 2021-05-25 2024-05-29 손철규 서버간 네트워크가 단절된 망분리 환경에서의 dbms 테이블 정합성 검증 및 보정 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990414B (zh) * 2019-10-31 2023-06-16 口碑(上海)信息技术有限公司 一种数据处理方法以及装置
CN112231403B (zh) * 2020-10-15 2024-01-30 北京人大金仓信息技术股份有限公司 数据同步的一致性校验方法、装置、设备和存储介质
CN112363873A (zh) * 2020-11-27 2021-02-12 上海爱数信息技术股份有限公司 一种分布式一致性备份恢复系统及其备份方法

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

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020213985A1 (ko) * 2019-04-18 2020-10-22 주식회사 실크로드소프트 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램
KR20200123299A (ko) * 2019-04-18 2020-10-29 주식회사 실크로드소프트 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램
KR102225258B1 (ko) * 2019-04-18 2021-03-10 주식회사 실크로드소프트 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램
US11726978B2 (en) 2019-04-18 2023-08-15 Silcroad Soft, Inc. Computer program for providing efficient change data capture in a database system
KR20220118054A (ko) * 2021-02-18 2022-08-25 (주)알투비솔루션 원격 dbms 테이블간 고성능 테이블 데이터 정합성 검증 시스템
WO2022177368A1 (ko) * 2021-02-18 2022-08-25 (주)알투비솔루션 원격 dbms 테이블간 고성능 테이블 데이터 정합성 검증 시스템
KR102463665B1 (ko) 2021-02-18 2022-11-09 (주)알투비솔루션 원격 dbms 테이블간 고성능 테이블 데이터 정합성 검증 시스템
WO2022250293A1 (ko) * 2021-05-25 2022-12-01 (주)알투비솔루션 서버간 네트워크가 단절된 망분리 환경에서의 dbms 테이블 정합성 검증 및 보정 시스템
WO2022250292A1 (ko) * 2021-05-25 2022-12-01 (주)알투비솔루션 서버간 네트워크가 단절된 망분리 환경에서의 cdc 방식의 db 복제 시스템
KR102669856B1 (ko) * 2021-05-25 2024-05-29 손철규 서버간 네트워크가 단절된 망분리 환경에서의 dbms 테이블 정합성 검증 및 보정 시스템
KR102431846B1 (ko) 2022-01-26 2022-08-11 (주) 다윈아이씨티 플랫폼 마이그레이션에 대한 검증 방법, 장치 및 시스템

Also Published As

Publication number Publication date
GB2574282A (en) 2019-12-04
JP6711884B2 (ja) 2020-06-17
GB201815308D0 (en) 2018-11-07
JP2019212272A (ja) 2019-12-12
US20190370368A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
KR101917807B1 (ko) 원본 데이터베이스의 부하를 최소화한 데이터 정합성 검증 방법 및 시스템
KR101917806B1 (ko) Sql 패킷분석을 통한 이기종 데이터베이스의 데이터 복제 및 동기화 오류 탐지 방법 및 시스템
CN109033186B (zh) 数据一致性检测方法、装置、存储介质及电子设备
US9965513B2 (en) Set-orientated visibility state retrieval scheme
US8078582B2 (en) Data change ordering in multi-log based replication
Al-Dhaqm et al. CDBFIP: Common database forensic investigation processes for Internet of Things
CN110569214B (zh) 用于日志文件的索引构建方法、装置及电子设备
CN109241068B (zh) 前后台数据比对的方法、装置及终端设备
US9514167B2 (en) Behavior based record linkage
US8280857B2 (en) Method for indexed-field based difference detection and correction
CN108647357B (zh) 数据查询的方法及装置
US20180260467A1 (en) Aggregate, index based, synchronization of node contents
CN112214411B (zh) 一种容灾系统测试方法、装置、设备及存储介质
CN112559526A (zh) 数据表导出方法、装置、计算机设备及存储介质
CN113672692B (zh) 数据处理方法、装置、计算机设备和存储介质
CN111897813A (zh) 针对数据库资源的流控方法及装置
CN114647651A (zh) 异构数据库同步方法及系统
CN111159482A (zh) 数据校验方法及系统
US20160179866A1 (en) Method and system to search logs that contain a massive number of entries
CN113961934A (zh) 基于公开开源漏洞的多层级关联源代码方法
CN114153830B (zh) 数据验证方法及其装置、计算机存储介质、电子设备
CN116680203B (zh) 面向多租户的SaaS平台的测试方法、装置、设备和介质
WO2023172683A1 (en) Populating datastores for integration testing
CN116340430A (zh) 一种数据同步校验方法及相关设备
CN114461724A (zh) 一种基于随机抽样的数据同步比对方法、装置及系统

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant