KR101191832B1 - 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템 - Google Patents

네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템 Download PDF

Info

Publication number
KR101191832B1
KR101191832B1 KR1020100069915A KR20100069915A KR101191832B1 KR 101191832 B1 KR101191832 B1 KR 101191832B1 KR 1020100069915 A KR1020100069915 A KR 1020100069915A KR 20100069915 A KR20100069915 A KR 20100069915A KR 101191832 B1 KR101191832 B1 KR 101191832B1
Authority
KR
South Korea
Prior art keywords
database
sql
module
server
operating
Prior art date
Application number
KR1020100069915A
Other languages
English (en)
Other versions
KR20120009666A (ko
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 KR1020100069915A priority Critical patent/KR101191832B1/ko
Publication of KR20120009666A publication Critical patent/KR20120009666A/ko
Application granted granted Critical
Publication of KR101191832B1 publication Critical patent/KR101191832B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/024Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]

Abstract

본 발명은 사용자의 접근이 빈번하게 이루어지는 데이터베이스 시스템을 운영하는 데에 있어, 별도의 데이터베이스를 한 개 더 구성하여 원본 데이터베이스와 동일한 데이터베이스를 복제하여 데이터베이스 시스템의 신뢰성을 높이는 방법 및 시스템에 관한 것으로, 본 발명의 시스템은 원본 데이터베이스를 운영하는 제1 운영서버; 복제 데이터베이스를 운영하는 제2 운영서버; 및 클라이언트로부터 상기 제1 운영서버로 전송되는 네트워크 스트림에서 원본 데이터베이스로 전송되는 SQL을 추출하여 상기 제2 운영서버로 전송함으로써 상기 원본 데이터베이스와 상기 복제 데이터베이스를 일치시키는 동기화 서버로 구성된 것이다. 또한 동기화 서버는 클라이언트에서 상기 제1 운영서버 또는 원본 데이터베이스로 보내는 패킷을 캡쳐하는 스니핑모듈; 상기 스니핑 모듈에 의해 캡쳐된 패킷을 분석하여 SQL만을 추출하는 SQL 추출모듈; 상기 추출된 SQL을 분석하여 데이터베이스에 변화를 주는 SQL만을 선별하는 SQL 선별 모듈; 및 상기 선별된 SQL을 복제 데이터베이스를 운영하는 운영서버로 전송하는 SQL 전송모듈과 정기적으로 원본 데이터베이스와 복제 데이터베이스의 데이터를 검사 후 동기화 오류를 자동 복구 하는 데이터 동기화 모듈로 구성된다.

Description

네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템{Database Replication Method And System Using Analyzing Network Packets}
본 발명은 데이터베이스 복제(Database Replication) 방법 및 시스템에 관한 것으로, 더욱 상세하게는 네트워크 스트림(Network Stream)에서 원본 데이터베이스(Source Database)로 전송되는 SQL(Structured Query Language: 구조화 질의어, 이하 "SQL"이라 함)을 추출하여 또 다른 대상 데이터베이스(Target Database)에 전송함으로써, 원본 데이터베이스 운영에 영향을 미치지 않으면서 원본 데이터와 동일한 상태의 복제 데이터베이스를 이중화 구성으로 운영하는 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템에 관한 것이다.
정보화시대에 접어들면서 전자 상거래, 인터넷 금융 등이 활발하게 이루어짐에 따라 각 기업의 중요 정보와 개인정보를 담고 있는 데이터베이스의 중요성이 확대되고 있다. 이러한 데이터베이스는 다양한 클라이언트가 상시적으로 접속하거나 데이터를 사용하기 때문에 항시 활성화 상태가 유지되어야 한다. 하지만, 데이터베이스 운영서버 자체의 하드웨어나 데이터베이스 관리 시스템(DBMS:Database Management System)에 문제가 생김으로 인해 데이터베이스 내의 데이터의 손상이 발생할 수 있으므로, 데이터베이스를 보다 안전하고 신뢰성 있는 환경에서 운영하는 방법이 필요하다.
상기와 같은 데이터베이스 운영의 신뢰성을 높이기 위하여, 데이터베이스 운영 시스템에 원본 데이터베이스 이외의 데이터베이스를 한 개 더 구성하여 두 개의 데이터베이스가 실시간으로 동일한 데이터를 유지할 수 있게 하여 원본 데이터베이스가 위협원에 의해 손상되더라도 복제된 데이터베이스로 하여금 시스템의 연속성을 높이는 기술과 방법이 운영되고 있다.
상기와 같은 기술 중 CDC(Change Data Capture) 기술을 이용한 데이터베이스 운영 방법이 대두되고 있으며, 통상적으로 CDC 방식을 이용하여 데이터베이스 운영 시스템을 구성하는 방법은 원본 데이터베이스에 별도의 에이전트를 설치하여 데이터베이스에 변경을 주는 SQL을 복제 데이터베이스에 실행하여 동일한 데이터베이스를 운영하는 것이다.
데이터베이스 운영 시스템(10)에서 종래의 CDC 방식을 이용한 데이터베이스 복제 기술은 도 1 및 도 2에 도시된 바와 같이, 원본 데이터베이스(Source DB; 11A)를 운영하는 운영서버(10A)와 복제된 데이터베이스(Target DB; 11B)를 운영하는 운영서버(10B)를 이중으로 구성한 후, 원본 데이터베이스(Source Database)를 운영하는 운영서버(10A)에 별도의 에이전트(Agent;13)를 설치하여, 이 에이전트(13)가 원본 데이터베이스 시스템에 생성되는 로그(Log) 파일(12)을 분석하여 원본 데이터베이스 시스템에 데이터 변경을 발생시킨 SQL을 추출하고, 추출된 SQL을 복제 데이터베이스(Target Database;11B)에 실행함으로써 원본 데이터베이스(Source Database;11A)와 복제 데이터베이스(Target Database;11B)를 동기화(Sync)하는 방식으로 운영된다(S1~S6). 즉, 인터넷(30)을 통해 운영서버(10A)에 접속한 클라이언트 단말기들(20-1~20-N)의 로그파일(12)을 에이전트(13)가 분석하여 원본 데이터베이스시스템에 데이터 변경을 발생시킨 SQL을 추출하고, 추출된 SQL을 복제 데이터베이스(Target Database;11B)에 실행함으로써 원본 데이터베이스(Source Database;11A)와 복제 데이터베이스(Target Database;11B)를 일치시키는 것이다.
이와 같이, 종래의 CDC 방식을 이용한 데이터베이스 복제 기술은 상기한 원본 데이터베이스 운영서버(10A)에 에이전트(13)가 설치되어 작동하기 때문에, 원본 데이터베이스와 에이전트가 운영서버의 자원을 공유하므로, 이로 인한 원본 데이터베이스 시스템 및 운영 서버(10A)에 부하(Load)를 주는 문제점이 발생하였다.
또한 이는 원본 데이터베이스 운영서버(10A)에 설치된 에이전트(13)의 오류로 인하여 에이전트(13) 자체가 원본 데이터베이스에 위협원이 되는 경우가 빈번히 발생하였으며, 이로 인하여 원본 데이터베이스(11A)와 복제 데이터베이스(11B)의 동기화(Sync)가 이루어지지 못하게 되는 문제점도 발생하였다.
또한 원본 데이터베이스(11A)와 복제 데이터베이스(11B)의 동기화가 되지 않는 오류 발생시, 클라이언트(20-1~20-N)에서 원본 데이터베이스(11A)로 전송되는 SQL이 에이전트(13)가 동기화를 진행하는 동안 수행되지 않기 때문에, 데이터베이스 시스템(10)의 가용성을 침해하는 문제점도 발생하였다.
본 발명은 상기한 문제점들을 해소하기 위해 제안된 것으로, 본 발명의 목적은 클라이언트 단말기에서 원본 데이터베이스로 전송되는 SQL을 네트워크 스트림에서 스니핑 방식으로 추출하여 복제 데이터베이스를 구성하는 방식을 사용하여 원본 데이터베이스의 성능에 영향을 끼치지 않고 원본 데이터베이스와 동일한 복제 데이터베이스를 구성할 수 있는 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템을 제공하는 것이다.
또한 본 발명의 다른 목적은 종래의 데이터베이스 복제 시스템이 원본 데이터베이스에 에이전트를 설치하여 운영서버에 부하(Load)를 주는 문제점을 해결하기 위하여 별도의 동기화 서버를 이용함으로써, 원본 데이터베이스에 에이전트나 기타 프로그램을 설치하지 않고 데이터베이스에 일체의 변경 없이, 데이터베이스 시스템의 가용성을 침해하지 않고 데이터베이스 복제 시스템을 운영할 수 있는 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템을 제공하는 것이다.
또한 본 발명의 또다른 목적은 시스템 오류로 인해 원본 데이터베이스와 복제 데이터베이스의 데이터가 일치하지 않게 되는 문제점을 해결할 때, 동기화 서버의 데이터 동기화(Data Sync) 검사 모듈을 통하여 주기적으로 데이터의 정상 동기화 여부를 검사하여, 데이터가 일치하지 않을 경우 자체적으로 동기화(Sync)를 수행하여 데이터베이스 운영의 연속성을 유지하고 신뢰성이 향상된 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템을 제공하는 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 시스템은 원본 데이터베이스를 운영하는 제1 운영서버; 복제 데이터베이스를 운영하는 제2 운영서버; 및 클라이언트로부터 상기 제1 운영서버로 전송되는 네트워크 스트림에서 원본 데이터베이스(Source Database)로 전송되는 SQL(Structured Query Language)을 스니핑 방식으로 추출하고 데이터베이스에 변경을 주는 SQL을 선별하여 상기 제2 운영서버로 전송함으로써 원본 데이터베이스와 복제 데이터베이스를 일치시키는 동기화 서버로 구성된 것을 특징으로 한다.
상기 동기화 서버는 클라이언트에서 상기 제1 운영서버 또는 원본 데이터베이스로 보내는 패킷을 수동적으로 캡쳐하는 스니핑모듈; 상기 스니핑 모듈에 의해 캡쳐된 패킷을 분석하여 SQL만을 추출하는 SQL 추출모듈; 상기 추출된 SQL을 분석하여 데이터베이스에 변화를 주는 SQL만을 선별하는 SQL 선별 모듈; 및 상기 선별된 SQL을 복제 데이터베이스를 운영하는 운영서버로 전송하는 SQL 전송모듈을 구비하고, 오류에 의해 원본 데이터베이스와 복제 데이터베이스의 데이터가 일치하지 않는 경우를 대비하여, 정기적으로 원본 데이터베이스와 복제 데이터베이스의 동기화 여부를 스케줄러(Scheduler)에 의해 주기적으로 검사하여 원본 데이터베이스와 복제 데이터베이스의 데이터가 일치하지 않는 것이 감지되면, 상기 SQL 선별 모듈의 프로세스를 정지시키고, 상기 SQL 추출 모듈에서 추출한 SQL은 큐(Queue)에 임시 저장하며, 상기 원본 데이터베이스를 분석하여 데이터를 동기화하기 위한 SQL을 구성하여 복제 데이터베이스에 상기 SQL 전송 모듈을 통하여 전송한 뒤에, 다시 한 번 데이터 동기화가 정상적으로 이루어졌는지 검사하고, 정상적으로 동기화되었다면, 상기 SQL 선별 모듈의 프로세스를 기동시키고, 상기 큐(Queue)에 저장된 SQL을 SQL 선별 모듈로 전송하는 데이터 동기화 검사모듈을 더 구비할 수 있다.
또한 상기와 같은 목적을 달성하기 위한 본 발명의 방법은 클라이언트에 의한 원본 데이터베이스로의 패킷 전송이 확인되면, 별도의 동기화 서버에서 패킷을 스니핑방식으로 획득하는 단계; 상기 획득한 패킷을 분석하여 SQL을 추출하는 단계; 상기 추출된 SQL 중에서 데이터베이스에 변경을 주는 SQL을 선별하는 단계; 및 상기 선별된 SQL을 복제 데이터베이스에 실행하는 단계; 를 포함하여 상기 원본 데이터베이스와 상기 복제 데이터베이스를 일치시키는 것을 특징으로 한다.
상기 네트워크 패킷 분석을 통한 데이터베이스 복제 방법은 데이터베이스 동기화가 정상적으로 되고 있는지 주기적으로 검사하는 단계;와, 동기화되지 않은 데이터베이스에 한하여 SQL 선별 모듈 서비스를 중지하고, 자체적으로 동기화를 맞추어 정상적으로 동기화함을 확인한 후 상기 SQL 선별 모듈 서비스를 구동하는 단계를 더 포함하거나 상기 SQL 선별 모듈이 중지되었을 때, 상기 SQL 추출모듈에서 추출된 SQL은 임시로 별도의 큐(Queue)로 저장하고, 다시 SQL 선별 모듈이 기동되면, 해당 SQL을 SQL 선별 모듈로 전송하는 단계를 추가할 수 있다.
상기 동기화 서버에서 패킷을 획득하는 방법은 스니핑(Sniffing) 방식을 이용하고, 상기 데이터베이스에 변경을 주는 SQL은 DDL(CREATE, DROP, ALTER), DML(INSERT, DELETE, UPDATE, 오라클 데이터베이스의 경우 PL/SQL)을 포함한다.
본 발명의 실시예에 따른 데이터베이스 복제 시스템 및 방법은 스니핑 방식을 이용함으로써 데이터 베이스 운영 시스템의 성능에 영향을 주지 않고 클라이언트로부터 원본 데이터베이스로 전송되는 패킷의 획득이 가능하다. 스니핑 방식은 네트워크 스트림에서 전송되는 패킷을 미러링(Mirroring)하여 수동적으로 복제하여 획득하기 때문에 기존의 네트워크의 성능에는 전혀 영향을 끼치지 않는다.
또한, 별도의 동기화 서버를 이용함으로써, 원본 데이터베이스와 데이터베이스시스템에 일체의 변경이나 영향을 주지 않고 복제 데이터베이스를 구성하는 것이 가능하다. 이는 종래의 데이터베이스 복제 시스템의 단점인 원본 데이터베이스의 가용성을 줄이는 문제를 해결할 수 있다.
또한, 주기적으로 원본 데이터베이스와 복제 데이터베이스의 동기화 여부를 검사함으로써, 두 데이터베이스의 데이터가 불일치하는 오류를 보완하여 신뢰성을 향상시킬 수 있다. 오류 발생 시, 종래의 데이터베이스 복제 시스템은 원본 데이터의 운용이 일시 중지되는 단점이 있었으나, 본 발명은 별도의 동기화 서버를 두고 있기 때문에 원본 데이터베이스의 운영에 연속성을 유지하는 것이 가능하다.
도 1은 종래의 기술에 따른 CDC를 이용한 데이터베이스 복제 시스템의 운영 환경을 나타낸 블록도,
도 2는 종래의 기술에 따른 CDC를 이용한 데이터베이스 복제 과정을 나타낸 순서도,
도 3은 본 발명의 실시예에 따른 별도의 동기화 서버를 이용하여 스니핑 방식으로 패킷을 캡쳐하여 데이터베이스 복제 시스템을 운영하는 환경을 나타낸 블록도,
도 4는 본 발명의 실시예에 따른 동기화 서버의 세부 구성을 도시한 구성 블록도,
도 5는 본 발명의 실시예에 따른 복제 시스템에서 패킷을 캡쳐 및 선별하여 데이터베이스를 복제하는 과정을 나타낸 순서도,
도 6은 본 발명의 실시예에서 데이터를 동기화시키는 절차를 나타낸 순서도이다.
본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다.
도 3은 본 발명의 실시예에 따라 별도의 동기화 서버를 이용하여 스니핑 방식으로 패킷을 캡쳐하여 데이터베이스 복제 시스템을 운영하는 환경을 나타낸 블록도이다.
본 발명의 실시예에 따른 스니핑 패킷 캡쳐 방법을 이용한 데이터베이스 복제 시스템(100)은 도 3에 도시된 바와 같이, 원본 데이터베이스(111)를 운영하는 제1 운영서버(110)와, 복제 데이터베이스(131)를 운영하는 제2 운영서버(130), 클라이언트(20-1~20-N)로부터 제1 운영서버(110)로 전송되는 네트워크 스트림에서 원본 데이터베이스(Source Database)로 전송되는 SQL(Structured Query Language)을 스니핑 방식으로 추출하고 데이터베이스에 변경을 주는 SQL을 선별하여 제2 운영서버(130)로 전송함으로써 원본 데이터베이스(111)와 복제 데이터베이스(131)를 일치시키는 동기화 서버(120)로 구성된다.
도 3을 참조하면, 사용자가 클라이언트 단말기(20-1~20-N)를 이용하여 제1 운영서버(110) 또는 원본 데이터베이스(111)에 접속할 때, 동기화 서버(120)에서 캡쳐한 패킷으로 제2 운영서버(130)의 복제 데이터베이스(131)를 원본 데이터베이스(111)와 일치시킨다. 즉, 클라이언트 단말기(20-1~20-N)에서 제1 운영서버(110) 또는 원본 데이터베이스(111)에 보내는 모든 패킷을 동기화 서버(120)에서 미러링하여 스니핑 방식으로 캡쳐 및 분석하여 제1 운영서버(110)의 데이터베이스(111)와 동일한 복제 데이터베이스(131)를 구성할 수 있도록 하는 것이다.
도 4는 본 발명의 실시예에 따른 동기화 서버의 세부 구성을 도시한 구성 블록도이다.
본 발명의 실시예에 따른 동기화 서버(120)는 도 4에 도시된 바와 같이, 클라이언트(20)에서 제1 운영서버(110) 또는 원본 데이터베이스(111)로 보내는 패킷(140)을 캡쳐하는 스니핑모듈(121)과, 스니핑 모듈(121)에 의해 캡쳐된 패킷(141)을 분석하여 SQL만을 추출하는 SQL 추출모듈(122), 추출된 SQL을 분석하여 데이터베이스에 변화를 주는 SQL만을 선별하는 SQL 선별 모듈(123), 선별된 SQL을 복제 데이터베이스를 운영하는 제2 운영서버(130)로 전송하는 SQL 전송모듈(124)을 구비하여 원본 데이터베이스(111)와 복제 데이터베이스(131)를 일치시키는 것이다.
그리고 동기화 서버(120)의 데이터 동기화 검사모듈(125)은 오류에 의해 원본 데이터베이스와 복제 데이터베이스의 데이터가 일치하지 않는 경우를 대비하여, 정기적으로 원본 데이터베이스(111)와 복제 데이터베이스(131)의 동기화를 검사하여 원본 데이터베이스(111)와 복제 데이터베이스(131)의 데이터가 일치하지 않는 것이 감지되면, SQL 선별 모듈(123)의 프로세스를 정지시키고, SQL 추출 모듈(122)에서 추출한 SQL은 큐(Queue;126)에 임시 저장하며, 원본 데이터베이스(111)를 분석하여 데이터를 동기화하기 위한 SQL을 구성하여 복제 데이터베이스(131)에 SQL 전송 모듈(124)을 통하여 전송한 뒤에, 다시 한 번 데이터 동기화가 정상적으로 이루어졌는지 검사하고, 정상적으로 동기화되었다면, SQL 선별 모듈(123)의 프로세스를 기동시키고, 큐(Queue;126)에 저장된 SQL을 SQL 선별 모듈(123)로 전송한다.
도 4를 참조하면, 클라이언트 단말기(20)에서 제1 운영서버(110) 또는 원본 데이터베이스(111)에 보내는 패킷(140)을 동기화 서버(120)의 스니핑 모듈(121)에서 캡쳐하여, 캡쳐된 패킷(141)에 포함된 SQL을 SQL 추출 모듈(122)에서 SQL만을 추출한다. 이 SQL을 SQL 선별 모듈(123)에서 DML(INSERT, DELETE, UPDATE, 오라클 데이터베이스의 경우 PL/SQL), DDL(CREATE, DROP, ALTER)과 같은 데이터베이스에 변화를 주는 SQL만을 선별하는 작업을 거친 뒤, SQL 전송 모듈(124)에서 복제 데이터베이스(131)로 전송하여 복제 데이터베이스(131)에 이를 실행시킨다.
이때, 상기의 스니핑 모듈(121), SQL 추출 모듈(122), SQL 선별 모듈(123), SQL 전송 모듈(124)에 오류가 생겨 원본 데이터베이스(111)와 복제 데이터베이스(131)의 데이터가 일치하지 않는 경우를 대비하여, 데이터 동기화(Data Sync) 검사 모듈(125)에서 스케줄러에 의해 정기적으로 데이터 동기화 검사를 실시한다. 데이터 동기화 검사는, 별도로 원본 데이터베이스(111)와 복제 데이터베이스(131)의 Table과 Record의 개수를 확인하여 일치하는지 여부를 검사하는 것이다. 데이터 동기화 검사를 통하여, 두 데이터베이스(111, 131)의 Table과 Record의 개수가 맞다면 동기화 서버(120)의 프로세스를 그대로 유지하고, 맞지 않다면 아래와 같이 데이터를 강제로 동기화한다.
데이터 동기화(Data Sync) 검사 모듈(125)에서 원본 데이터베이스(111)와 복제 데이터베이스(131)의 데이터가 일치하지 않는 것이 감지되면, 즉시 SQL 선별 모듈(124)의 프로세스를 정지시키고, SQL 추출 모듈(122)에서 추출한 SQL은 Queue(126)에 임시 저장한다. 그리고 원본 데이터베이스(111)를 분석하여 데이터를 동기화하기 위한 SQL을 구성하여 SQL 전송 모듈(124)을 통하여 복제 데이터베이스(131)에 전송한 뒤에, 다시 한 번 데이터 동기화가 정상적으로 이루어졌는지 검사한다. 정상적으로 동기화되었다면, SQL 선별 모듈(124)의 프로세스를 기동시키고, Queue(126)에 저장된 SQL을 SQL 선별 모듈(123)로 전송한다.
이어서, 상기와 같이 구성되는 본 발명에 따른 네트워크 패킷 분석을 통한 데이터베이스 복제 시스템의 동작을 도 5 및 도 6을 참조하여 설명한다.
도 5는 본 발명의 실시예에 따른 복제 시스템에서 패킷을 캡쳐 및 선별하여 데이터베이스를 복제하는 과정을 나타낸 순서도이고, 도 6은 본 발명의 실시예에서 데이터의 비동기화가 감지되었을 때 데이터를 동기화시키는 절차를 나타낸 순서도이다.
본 발명에 따라 스니핑 모듈(121)을 탑재한 별도의 동기화 서버(120)를 이용한 데이터베이스 복제 시스템(100)은 도 5에 도시된 바와 같이, 클라이언트가 데이터베이스에 SQL을 전송하는 단계(S101)와, 스니핑 모듈에서 패킷을 캡쳐하는 단계(S102), SQL 추출 모듈에서 SQL을 추출하는 단계(S103), SQL 선별 모듈에서 데이터베이스 변경 SQL을 선별하는 단계(S104), 데이터베이스 변경 SQL인지를 검사하여 데이터베이스 변경을 일으키지 않는 SQL은 전송하지 않고, 데이터베이스 변경 SQL을 복제 대상 데이터베이스로 전송하는 단계(S206)를 수행한다(S105~S107).
그리고 본 발명에 따라 데이터 동기화가 맞지 않을 때 별도로 데이터를 동기화사키는 절차는 도 6에 도시된 바와 같이, 환경설정에 의해 Table, Record의 개수를 정기적으로 검사를 실행하는 단계(S110)와, 데이터 동기화가 일치하는지 검사하는 단계(S111), 동기화가 맞지 않을 경우 SQL 선별모듈 프로세스를 중지하는 단계(S112), 자체적으로 데이터를 동기화하는 단계(S113), 데이터의 동기화 검사를 다시 실행하는 단계(S114), 및 동기화가 정상적으로 된 것을 확인한 후 SQL 선별 모듈 프로세스를 구동하는 단계(S115)로 이루어진다.
구체적으로 살펴보면, 스니핑 모듈(121)은 클라이언트 단말기(20)에서 원본 데이터베이스(111)로 전송되는 패킷을 캡쳐하여, SQL 추출 모듈(122)에서 패킷에 포함된 SQL을 추출한다(S101~S103). 그리고 SQL 선별 모듈(123)에서 데이터베이스에 변경을 주는 SQL을 선별한 후, 데이터베이스에 변경을 주는 SQL인지 검사하여 데이터베이스에 변경을 주지 않는 SQL은 전송하지 않고, 데이터베이스에 변경을 주는 SQL은 복제 대상 데이터베이스(131)로 전송하여 데이터베이스 복제 시스템을 운영한다(S104~S107).
추가로, 원본 데이터베이스와 복제 데이터베이스의 동기화가 정상적으로 이루어 지지 않았을 경우를 대비하여, 환경설정에서 설정한 주기 마다 Table, Record 개수를 정기적으로 검사하는 Data Sync 검사 모듈(125)을 구동시켜, 데이터 동기화가 정상적인지 검사하고, 정상적이라면 다음 주기가 될 때까지 Data Sync 검사 모듈(125)을 실행시키지 않고, 데이터 동기화가 비정상적이라면, SQL 선별 모듈(123)의 프로세스를 중지하고, 자체적으로 데이터를 동기화시킨다(S110~S113).
그리고, 다시 한 번 데이터 동기화가 정상적 이루어졌는지 확인하여, 일치하지 않으면 다시 데이터를 동기화시켜주고, 일치한다면 중지되었던 SQL 선별 모듈(123)을 구동한다(S114,S115).
이상에서 본 발명에 있어서 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 권리범위는 이에 한정되는 것이 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
20,20-1~20-N: 클라이언트 단말기 30: 인터넷
110: 제1 운영서버 111: 원본 데이터베이스
120: 동기화 서버 130: 제2 운영서버
131: 복제 데이터베이스 121: 스니핑 모듈
122: SQL 추출 모듈 123: SQL 선별 모듈
124: SQL 전송 모듈 125: 데이터동기화 검사모듈
126: 큐 141,142: 패킷

Claims (7)

  1. 원본 데이터베이스를 운영하는 제1 운영서버와, 복제 데이터베이스를 운영하는 제2 운영서버와, 클라이언트로부터 상기 제1 운영서버로 전송되는 네트워크 스트림에서 원본 데이터베이스(Source Database)로 전송되는 SQL(Structured Query Language)을 추출하여 상기 제2 운영서버로 전송함으로써 상기 원본 데이터베이스와 상기 복제 데이터베이스를 일치시키는 동기화 서버로 구성된 네트워크 패킷 분석을 통한 데이터베이스 복제 시스템에 있어서,
    상기 동기화 서버는
    클라이언트에서 상기 제1 운영서버 또는 원본 데이터베이스로 보내는 패킷을 수동적으로 캡쳐하는 스니핑모듈;
    상기 스니핑 모듈에 의해 캡쳐된 패킷을 분석하여 SQL만을 추출하는 SQL 추출모듈;
    상기 추출된 SQL을 분석하여 데이터베이스에 변화를 주는 SQL만을 선별하는 SQL 선별 모듈;
    상기 선별된 SQL을 복제 데이터베이스를 운영하는 운영서버로 전송하는 SQL 전송모듈; 및
    오류에 의해 원본 데이터베이스와 복제 데이터베이스의 데이터가 일치하지 않는 경우를 대비하여, 정기적으로 원본 데이터베이스와 복제 데이터베이스의 동기화 여부를 스케줄러에 의해 정기적으로 검사하여 원본 데이터베이스와 복제 데이터베이스의 데이터가 일치하지 않는 것이 감지되면, 상기 SQL 선별 모듈의 프로세스를 정지시키고, 상기 SQL 추출 모듈에서 추출한 SQL은 큐(Queue)에 임시 저장하며, 상기 원본 데이터베이스를 분석하여 데이터를 동기화하기 위한 SQL을 구성하여 복제 데이터베이스에 상기 SQL 전송 모듈을 통하여 전송한 뒤에, 다시 한 번 데이터 동기화가 정상적으로 이루어졌는지 검사하고, 정상적으로 동기화되었다면, 상기 SQL 선별 모듈의 프로세스를 기동시키고, 상기 큐(Queue)에 저장된 SQL을 SQL 선별 모듈로 전송하는 데이터 동기화 검사모듈을 구비하여
    원본 데이터베이스와 복제 데이터베이스를 일치시키는 것을 특징으로 하는 네트워크 패킷 분석을 통한 데이터베이스 복제 시스템.
  2. 삭제
  3. 삭제
  4. 클라이언트에 의한 원본 데이터베이스로의 패킷 전송이 확인되면, 별도의 동기화 서버에서 패킷을 스니핑 방식으로 획득하는 단계;
    상기 획득한 패킷을 분석하여 SQL을 추출하는 단계;
    상기 추출된 SQL 중에서 데이터베이스에 변경을 주는 SQL을 선별하는 단계;
    상기 선별된 SQL을 복제 데이터베이스에 실행하는 단계;
    데이터베이스 동기화가 정상적으로 되고 있는지 주기적으로 검사하는 단계;
    동기화되지 않은 데이터베이스에 한하여 SQL 선별 모듈 서비스를 중지하고, 자체적으로 동기화를 맞추어 정상적으로 동기화함을 확인한 후 상기 SQL 선별 모듈 서비스를 구동하는 단계; 및
    SQL 선별 모듈이 중지 되었을 때, SQL 추출 모듈에서 추출된 SQL은 임시로 별도의 큐로 저장하고, 다시 SQL 선별 모듈이 기동되면, 해당 SQL을 SQL 선별 모듈로 전송하는 단계를 포함하여
    상기 원본 데이터베이스와 상기 복제 데이터베이스를 일치시키는 것을 특징으로 하는 네트워크 패킷 분석을 통한 데이터베이스 복제 방법.
  5. 삭제
  6. 삭제
  7. 제4항에 있어서, 상기 데이터베이스에 변경을 주는 SQL은
    DDL(CREATE, DROP, ALTER), DML(INSERT, DELETE, UPDATE, 오라클 데이터베이스의 경우 PL/SQL)을 포함하는 것을 특징으로 하는 네트워크 패킷 분석을 통한 데이터베이스 복제 방법.
KR1020100069915A 2010-07-20 2010-07-20 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템 KR101191832B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100069915A KR101191832B1 (ko) 2010-07-20 2010-07-20 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100069915A KR101191832B1 (ko) 2010-07-20 2010-07-20 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20120009666A KR20120009666A (ko) 2012-02-02
KR101191832B1 true KR101191832B1 (ko) 2012-10-16

Family

ID=45834432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100069915A KR101191832B1 (ko) 2010-07-20 2010-07-20 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101191832B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019114240A (ja) * 2017-12-22 2019-07-11 ウェアヴァリー カンパニー リミテッドWarevalley Co., Ltd. Sqlパケット分析を通じての異機種データベースのデータ複製および同期化エラー探知方法およびシステム
CN110069567A (zh) * 2019-04-02 2019-07-30 北京信安世纪科技股份有限公司 一种数据库之间的数据同步方法及系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400403B1 (ko) * 2012-12-28 2014-05-27 주식회사 웨어밸리 데이터베이스 보안 장치
KR101672724B1 (ko) * 2015-05-08 2016-11-04 주식회사 엘지유플러스 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법
KR102350282B1 (ko) 2020-07-24 2022-01-13 주식회사 엘지유플러스 다중 데이터베이스의 동기화를 위한 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098425A1 (en) 2002-11-15 2004-05-20 Sybase, Inc. Database System Providing Improved Methods For Data Replication
US20080189340A1 (en) * 2007-02-01 2008-08-07 David Randall Blea Apparatus, system, and method for synchronizing a remote database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098425A1 (en) 2002-11-15 2004-05-20 Sybase, Inc. Database System Providing Improved Methods For Data Replication
US20080189340A1 (en) * 2007-02-01 2008-08-07 David Randall Blea Apparatus, system, and method for synchronizing a remote database

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019114240A (ja) * 2017-12-22 2019-07-11 ウェアヴァリー カンパニー リミテッドWarevalley Co., Ltd. Sqlパケット分析を通じての異機種データベースのデータ複製および同期化エラー探知方法およびシステム
US11157512B2 (en) * 2017-12-22 2021-10-26 Warevalley Co., Ltd. Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through SQL packet analysis
CN110069567A (zh) * 2019-04-02 2019-07-30 北京信安世纪科技股份有限公司 一种数据库之间的数据同步方法及系统

Also Published As

Publication number Publication date
KR20120009666A (ko) 2012-02-02

Similar Documents

Publication Publication Date Title
CN110209726B (zh) 分布式数据库集群系统、数据同步方法及存储介质
CN110347746B (zh) 一种异构数据库同步数据一致性校验方法及装置
JP6668442B2 (ja) Sqlパケット分析を通じての異機種データベースのデータ複製および同期化エラー探知方法およびシステム
US10795911B2 (en) Apparatus and method for replicating changed-data in source database management system to target database management system in real time
US8560502B2 (en) Method and a system for replaying database workload with transactional consistency
US9542468B2 (en) Database management system and method for controlling synchronization between databases
CN104809202B (zh) 一种数据库同步的方法和装置
WO2014169738A1 (zh) 主、备数据库及一致性检测、修复方法和装置、存储介质
US10216589B2 (en) Smart data replication recoverer
WO2014090002A1 (zh) 一种数据同步的方法、装置及系统
KR101191832B1 (ko) 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템
CN104809201A (zh) 一种数据库同步的方法和装置
CN104809200A (zh) 一种数据库同步的方法和装置
CN107231435B (zh) 数据同步监控方法及系统
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
JP5331585B2 (ja) フォールトトレラントコンピュータシステムおよびフォールトトレラントコンピュータシステムにおける方法
CN106657169A (zh) 一种Redis中主从节点数据同步方法
CN107870982B (zh) 数据处理方法、系统和计算机可读存储介质
CN113946559A (zh) 数据处理方法、目标数据库系统及数据处理系统
US20120005175A1 (en) Method and a system for real time replaying of database workload at a fixed initial time delay
CN114490570A (zh) 生产数据同步方法、装置、数据同步系统及服务器
CN113326325A (zh) 一种数据库主从服务断开的检测方法及装置
CN113342890A (zh) 一种实现跨安全隔离网闸数据库实时同步的方法及系统
CN113051342A (zh) 一种轻量化双机切换的方法及系统
CN107239505B (zh) 集群镜像同步方法和系统

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151008

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161010

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190812

Year of fee payment: 8