KR101672724B1 - 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법 - Google Patents

미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법 Download PDF

Info

Publication number
KR101672724B1
KR101672724B1 KR1020150064443A KR20150064443A KR101672724B1 KR 101672724 B1 KR101672724 B1 KR 101672724B1 KR 1020150064443 A KR1020150064443 A KR 1020150064443A KR 20150064443 A KR20150064443 A KR 20150064443A KR 101672724 B1 KR101672724 B1 KR 101672724B1
Authority
KR
South Korea
Prior art keywords
database server
request
data
database
modification request
Prior art date
Application number
KR1020150064443A
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 KR1020150064443A priority Critical patent/KR101672724B1/ko
Application granted granted Critical
Publication of KR101672724B1 publication Critical patent/KR101672724B1/ko

Links

Images

Classifications

    • G06F17/303
    • G06F17/30289
    • G06F17/30371
    • G06F17/30575

Abstract

본 발명은 이기종의 데이터베이스 간의 데이터베이스 이관을 수행하는 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법에 관한 것이다. 본 발명의 일 실시예에 따른 미들티어(middle-tier)는 제1 데이터베이스 서버(database server)로부터 상기 제1 데이터베이스 서버와 다른 기종의 제2 데이터베이스 서버로의 데이터베이스 이관 진행시 서비스 서버로부터 데이터 변형 요청을 수신하는 경우, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행하도록 제어할 수 있다.

Description

미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법{MIDDLE-TIER, DATA PROCESSING SYSTEM INCLUDING THE SAME, AND METHOD OF DATABASE TRANSFERRING}
본 발명은 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법에 관한 것으로, 보다 상세하게는 이기종의 데이터베이스 간의 데이터베이스 이관을 수행하는 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법에 관한 것이다.
데이터베이스(database)는 다수의 사용자들에게 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 의미하며, 정보의 중복을 피하고 정보를 일원화(一元化)하여 처리를 효율적으로 수행하기 위해 서로 관련성을 가지며 중복이 없는 데이터의 집합을 유지하게 된다. 그리고 데이터베이스를 관리하는 시스템을 데이터베이스 관리 시스템(DBMS: Database Management System)이라 한다. 데이터베이스의 대표적인 구조는 트리구조(tree structure)인 구조적 데이터베이스 외에 관계형 데이터베이스(relational database)와 객체지향 데이터베이스 구조로 대별한다.
특히, 데이터베이스 서버에 저장된 데이터에 기초하여 이동 통신 서비스를 수행하는 경우에 있어서, 이동 통신 서비스가 새롭게 갱신되거나 다른 이동 통신 서비스 환경과 통합되는 경우, 또는 데이터베이스 서버의 용량을 확장하는 경우에는 기존의 데이터베이스 서버(이하, 원천 데이터베이스 서버라고 한다)에 저장된 데이터를 다른 데이터베이스 서버(이하, 목적 데이터베이스 서버라고 한다)로 이관시켜야 할 필요가 발생할 수 있다.
이때, 원천 데이터베이스 서버로부터 목적 데이터베이스 서버로 데이터를 옮기는 일반적인 방법은, 원천 데이터베이스 서버에 연결된 서비스 서버들의 연결을 차단하고 데이터를 목적 데이터베이스 서버로 옮긴 후, 서비스 서버들을 목적 데이터베이스 서버에 연결하여 서비스를 재개하는 것이다.
그런데, 상기와 같은 방법은 이관 과정에서 서비스 서버와 데이터베이스 서버의 연결이 단절되기 때문에, 이동 통신 사업자 측에서는 사용자에게 일정 시간 동안의 이동 통신 서비스의 중단을 미리 고지하여야 하며, 사용자의 입장에서는 그 고지된 시간 동안 원하는 이동 통신 서비스를 제대로 받지 못하게 되어 불편이 초래되는 문제점이 있다.
한국 공개 특허 제10-2006-0114675호(2006. 11. 07)
본 발명은 서비스의 중단 없이도 정확한 데이터 이관을 지원할 수 있는 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법을 제공하기 위한 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 미들티어(middle-tier)는 제1 데이터베이스 서버(database server)로부터 상기 제1 데이터베이스 서버와 다른 기종의 제2 데이터베이스 서버로의 데이터베이스 이관 진행시 서비스 서버로부터 데이터 변형 요청을 수신하는 경우, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행하도록 제어할 수 있다.
실시예에 따라, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 중 적어도 하나가 상기 데이터 변형 요청에 따른 동작을 성공하지 못한 경우 상기 데이터 변형 요청에 따른 동작을 취소하고 데이터 변형 요청 실패 로그를 생성할 수 있다.
실시예에 따라, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 모두가 상기 데이터 변형 요청에 따른 동작을 성공한 경우 데이터 변형 요청 성공 로그를 생성할 수 있다.
실시예에 따라, 상기 데이터베이스 이관 진행시, 상기 서비스 서버로부터 데이터 조회 요청을 수신하는 경우, 상기 제2 데이터베이스 서버가 상기 데이터 조회 요청에 따른 동작을 수행하도록 제어할 수 있다.
실시예에 따라, 각각이 일정 갯수의 트랜젝션(transaction)을 관리하는 복수의 트랜젝션 매니저들을 포함할 수 있다.
실시예에 따라, 상기 데이터 변형 요청은, 업데이트(update) 요청, 삽입(insert) 요청, 및 삭제(delete) 요청 중 어느 하나일 수 있다.
본 발명의 일 실시예에 따른 데이터 처리 시스템은, 원천 데이터를 저장 및 관리하는 제1 데이터베이스 서버(database server); 상기 제1 데이터베이스 서버와 다른 기종에 해당하고, 상기 원천 데이터를 이관받아 목적 데이터를 저장하는 제2 데이터베이스 서버; 및 상기 제1 데이터베이스 서버로부터 상기 제2 데이터베이스 서버로의 데이터베이스 이관 진행시 서비스 서버로부터 데이터 변형 요청을 수신하는 경우, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행하도록 제어하는 미들티어(middle-tier)를 포함할 수 있다.
실시예에 따라, 상기 미들티어는, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 중 적어도 하나가 상기 데이터 변형 요청에 따른 동작을 성공하지 못한 경우 상기 데이터 변형 요청에 따른 동작을 취소하고 데이터 변형 요청 실패 로그를 생성할 수 있다.
실시예에 따라, 상기 미들티어는, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 모두가 상기 데이터 변형 요청에 따른 동작을 성공한 경우 데이터 변형 요청 성공 로그를 생성할 수 있다.
본 발명의 일 실시예에 따른 데이터베이스 이관 방법은, 서비스 서버가, 원천 데이터를 저장 및 관리하는 제1 데이터베이스 서버(database server)와의 통신을 미들티어(middle-tier)를 통해 수행하는 (a) 단계; 상기 제1 데이터베이스 서버로부터 상기 제1 데이터베이스 서버와 다른 기종의 제2 데이터베이스 서버로의 데이터베이스 이관을 진행하는 (b) 단계; 상기 미들티어가, 상기 서비스 서버로부터 데이터 변형 요청을 수신하는 경우, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행하도록 제어하는 (c) 단계; 상기 미들티어가, 상기 서비스 서버로부터의 요청에 대한 처리 결과를 수집하는 (d) 단계; 및 상기 처리 결과에 따라 상기 제2 데이터베이스 서버를 통한 서비스가 정상적으로 판단된 경우, 상기 서비스 서버와 상기 제2 데이터베이스 서버가 직접 통신하는 (e)단계를 포함할 수 있다.
실시예에 따라, 상기 처리 결과에 따라 상기 제2 데이터베이스 서버를 통한 서비스가 비정상적으로 판단된 경우, 상기 (a) 단계가 다시 수행될 수 있다.
실시예에 따라, 상기 미들티어가, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 중 적어도 하나가 상기 데이터 변형 요청에 따른 동작을 성공하지 못한 경우 상기 데이터 변형 요청에 따른 동작을 취소하고 데이터 변형 요청 실패 로그를 생성하는 (f) 단계를 더 포함할 수 있다.
실시예에 따라, 상기 미들티어가, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 모두가 상기 데이터 변형 요청에 따른 동작을 성공한 경우 데이터 변형 요청 성공 로그를 생성하는 (g) 단계를 더 포함할 수 있다.
실시예에 따라, 상기 미들티어가, 상기 데이터베이스 이관 진행시, 상기 서비스 서버로부터 데이터 조회 요청을 수신하는 경우, 상기 제2 데이터베이스 서버가 상기 데이터 조회 요청에 따른 동작을 수행하도록 제어하는 (h) 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법에 의하면, 데이터베이스 이관시 2 페이즈 커밋(phase commit) 방식으로 데이터 처리 요청을 처리하여 데이터베이스 서버 간의 데이터 형상이 일치되도록 유지함으로써, 데이터 무결성이 보장될 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 이관 방법을 나타낸 흐름도이다.
도 2는 도 1에 도시된 S1 단계를 설명하기 위한 블록도이다.
도 3은 도 1에 도시된 S2 단계를 설명하기 위한 블록도이다.
도 4는 도 1에 도시된 S3 단계를 설명하기 위한 블록도이다.
도 5는 도 1에 도시된 S4 및 S5 단계를 설명하기 위한 블록도이다.
도 6은 도 1에 도시된 S4 단계를 보다 상세히 나타낸 흐름도이다.
도 7은 도 5에 도시된 미들티어를 보다 상세히 나타낸 블록도이다.
도 8은 도 1에 도시된 S7 단계를 설명하기 위한 블록도이다.
본 발명의 기술적 사상은 다양한 변형이 가해질 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 이관 방법을 나타낸 흐름도이다. 도 2는 도 1에 도시된 S1 단계를 설명하기 위한 블록도이다. 도 3은 도 1에 도시된 S2 단계를 설명하기 위한 블록도이다. 도 4는 도 1에 도시된 S3 단계를 설명하기 위한 블록도이다. 도 5는 도 1에 도시된 S4 및 S5 단계를 설명하기 위한 블록도이다. 도 6은 도 1에 도시된 S4 단계를 보다 상세히 나타낸 흐름도이다. 도 7은 도 5에 도시된 미들티어를 보다 상세히 나타낸 블록도이다. 도 8은 도 1에 도시된 S7 단계를 설명하기 위한 블록도이다.
도 1 내지 도 8을 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 이관 방법은 도 1에 도시된 바와 같이 S1 내지 S7 단계를 포함할 수 있으며, 각 단계의 설명을 위해 도 2 내지 도 7의 도면들을 함께 참조하여 설명하기로 한다.
상기 데이터베이스 이관 방법은 제1 서비스 서버 내지 제n 서비스 서버(30-1~30-n; n은 1이상의 정수) 각각이 사용자에게 특정 서비스(예컨대, 이동 통신 서비스)를 제공하기 위해, 데이터의 저장 및 조회에 이용되는 제1 데이터베이스 서버(100)에 저장된 데이터를 제1 데이터베이스 서버(100)와 다른 기종의 제2 데이터베이스 서버(200)로 이관하여 제2 데이터베이스 서버(200)를 데이터의 저장 및 조회에 이용하는 방법에 관한 것이다.
S1 단계에서, 데이터베이스의 이관이 진행하기 이전에 제1 서비스 서버 내지 제n 서비스 서버(30-1~30-n) 각각은 제1 데이터베이스 서버(100)와 직접 통신을 수행할 수 있다.
도 2에서, 제1 서비스 서버 내지 제n 서비스 서버(30-1~30-n)는 사용자의 요청에 따른 서비스를 처리하며, 예컨대 이러한 서비스에는 문자 메시지 서비스, 무선 인터넷 서비스, 데이터 제공 서비스 등이 포함될 수 있다. 제1 서비스 서버 내지 제n 서비스 서버(30-1~30-n)는 서비스 제공에 필요한 데이터(예컨대, 가입자, 단말기, 프로그램, 멀티미디어 등에 관련된 데이터)를 제1 데이터베이스 서버(100)에 저장하거나, 조회할 수 있다. 각 서비스 서버(30-1~30-n)는 제1 데이터베이스 서버(100)에 데이터를 저장하기 위한 데이터 변형 요청 또는 데이터를 조회하기 위한 데이터 조회 요청을 스위치(50)를 통해 제1 데이터베이스 서버(100)로 전송할 수 있다.
상기 데이터 변형 요청은 제1 데이터베이스 서버(100)에 저장된 데이터의 변형을 가져오는 것으로, 업데이트(update) 요청, 삽입(insert) 요청, 및 삭제(delete) 요청 중 어느 하나일 수 있다. 상기 데이터 조회 요청은 제1 데이터베이스 서버(100)에 저장된 데이터의 변형은 없이, 단순히 데이터의 조회를 요청하는 것에 해당한다.
스위치(50)는 복수개의 웹서버들(미도시)이 복수개의 제1 데이터베이스 서버(100)와의 사이에서 트래픽 혼잡도 등을 고려하여, 웹서버가 적절한 제1 데이터베이스 서버(100)와의 통신을 수행할 수 있도록 한다. 예컨대, 스위치(50)는 전송(transport) 계층의 L4 스위치로 구현될 수 있다. 즉, 스위치(50)는 제1 데이터베이스 서버(100) 측과 각 서비스 서버(30-1~30-n) 측의 통신이 이루어질 수 있도록 스위칭 동작을 수행한다.
제1 데이터베이스 서버(100)는 이관하고자 하는 데이터를 저장하고 있는 데이터베이스 서버(즉, 원천 데이터베이스 서버)로서, 사용자에 대한 정보, 이동 통신 서비스를 수행하는 비즈니스 로직, 이동 통신 서비스의 인증을 위한 데이터 등을 저장할 수 있다. 그러나, 제1 데이터베이스 서버(100)에 저장되는 데이터의 종류는 이에 한정되는 것은 아니다.
제1 데이터베이스 서버(100)는 데이터를 직접 저장하는 데이터베이스(database)와 상기 데이터베이스를 관리하는 시스템인 데이터베이스 관리 시스템(DBMS: Database Management System)을 포함하는 개념일 수 있다.
S2 단계에서, 제1 서비스 서버 내지 제n 서비스 서버(30-1~30-n) 각각은 제1 데이터베이스 서버(100)와의 통신을 미들티어(middle-tier, 300)를 통해 수행할 수 있다. 즉, 도 2에 도시된 구조는 제1 서비스 서버 내지 제n 서비스 서버(30-1~30-n)와 제1 데이터베이스 서버(100) 사이에 미들티어(300)가 삽입되어 통신을 중계하는 구조로 변경된다. 미들티어(300)는 하드웨어(hardware), 소프트웨어(software), 또는 이들의 조합으로 구현될 수 있다.
도 3에서, 미들티어(300)는 제1 서비스 서버 내지 제n 서비스 서버(30-1~30-n)와 제1 데이터베이스 서버(100) 사이에서의 통신을 중계하며, 각 서비스 서버(30-1~30-n)로부터의 데이터 처리 요청(데이터 변형 요청 및 데이터 조회 요청)의 트랜젝션(transaction)을 관리할 수 있다. 상기 트랜젝션은 상기 데이터 처리 요청을 처리하기 위한 일련의 과정을 하나의 묶음으로 처리하는 것을 의미한다. 예컨대, 데이터 변형 요청이 특정 위치의 단말기 데이터를 삭제하는 요청이었다면, 미들티어(300)는 제1 데이터베이스 서버(100)로의 데이터 변형 요청의 정상적인 전송, 상기 특정 위치의 단말기 데이터가 정상적으로 삭제되었다는 응답을 제1 데이터베이스 서버(100)로부터 수신하여야만 상기 데이터 변형 요청을 완료할 수 있다(commit). 만일, 상기 전송 및/또는 상기 응답에 문제가 발생하는 경우 상기 특정 위치의 단말기 데이터를 삭제하는 일련의 동작들을 모두 취소하고 데이터 변형 요청을 수신하기 이전 상태로 복귀시킬 수 있다(roll-back).
S3 단계에서, 이관하고자 하는 데이터를 저장하는 제1 데이터베이스 서버(100)로부터 제2 데이터베이스 서버(200)로의 데이터베이스 이관이 진행될 수 있다.
도 4에서, 제2 데이터베이스 서버(200)는 원천 데이터베이스 서버인 제1 데이터베이스 서버(100)로부터 데이터를 이관받을 수 있는 목적 데이터베이스 서버이며, 제1 데이터베이스 서버(100)와 마찬가지로 데이터를 직접 저장하는 데이터베이스(database)와 상기 데이터베이스를 관리하는 시스템인 데이터베이스 관리 시스템(DBMS)을 포함하는 개념일 수 있다.
제2 데이터베이스 서버(200)는 네트워크상의 여러 노드에 분산하여 데이터를 저장하는 분산 데이터베이스와, 지리적으로 분산되어 있는 데이터가 실제로 어느 위치에 저장되어 있는지를 사용자가 의식할 필요 없이 필요한 데이터를 검색하고 갱신할 수 있도록 관리하는 데이터베이스 관리 시스템으로 구성되는 분산 데이터베이스 서버로 구현될 수 있다. 즉, 물리적으로는 분산되고, 논리적으로는 집중되어 있는 형태로 구성된다. 이러한 분산 데이터베이스의 장점은 데이터를 분산 배치하므로 장애에 대한 대비에 강하고, 다수의 이용자가 대규모의 데이터베이스를 낮은 비용으로 공유할 수 있다는 점이다.
이에 반해, 제1 데이터베이스 서버(100)는 분산형 데이터베이스가 아닌 지리적으로 일체로 된 대형 데이터베이스일 수 있다.
제1 데이터베이스 서버(100)와 마찬가지로 제2 데이터베이스 서버(200)는 미들티어(300)와 연결되며, 미들티어(300)가 제1 데이터베이스 서버(100)로부터 제2 데이터베이스 서버(200)로의 분산 이관을 지원할 수 있다.
제1 데이터베이스 서버(100)로부터 제2 데이터베이스 서버(200)로의 데이터베이스 이관은 모든 테이블(table)에 공통적으로 적용될 수 있는 PK(Primary Key)를 기준으로 진행될 수 있다. 예컨대, 상기 PK는 사용자 ID(identification)일 수 있고, 미들티어(300)는 상기 PK를 Mod 연산하여 데이터를 분산 이관하게 될 수 있다.
또한, 제2 데이터베이스 서버(200)는 2m(m은 1이상의 정수) 방식으로 분산되어 최종적으로 4*8m-3 개의 하드웨어가 분리된 DBMS로 분할이 가능하다. 이 때 최종 m은 최초 분산 DBMS를 구성할 때, 미들티어(300)에 정의하여 분산 기준을 결정할 수 있다.
S4 단계에서, 서비스 서버들(30-1~30-n) 중 어느 하나가 데이터 처리 요청을 미들티어(300)로 전송하며, 미들티어(300)는 상기 데이터 처리 요청에 따른 동작을 제1 데이터베이스 서버(100) 및/또는 제2 데이터베이스 서버(200)가 수행하도록 제어할 수 있다. S5 단계에서, 미들티어(300)는 상기 데이터 처리 요청에 따른 동작에 대한 트랜젝션을 관리하며, 상기 데이터 처리 요청에 따른 동작에 대한 데이터 처리 결과를 수집할 수 있다.
도 5와 도 6에서, 미들티어(300)는 서비스 서버들(30-1~30-n) 중 어느 하나로부터 수신한 데이터 처리 요청이 데이터 변형 요청인지 또는 데이터 조회 요청인지 판단할 수 있다(S40).
서비스 서버들(30-1~30-n) 중 어느 하나가 데이터 변형 요청을 스위치(50)를 통해 미들티어(300)로 전송하는 경우(S40의 YES 경로), 미들티어(300)는 제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 각각이 상기 데이터 변형 요청에 따른 동작(예컨대, 데이터의 업데이트, 삽입, 또는 삭제)을 수행하도록 제어할 수 있다(S42). 즉, 상기 데이터 변형 요청에 따라 제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 중 어느 하나만이 해당 동작을 수행하는 것이 아니라, 두 서버 모두 수행하도록 제어할 수 있다.
제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 모두가 상기 데이터 변형 요청에 따른 동작을 성공한 경우(S43의 YES 경로) 미들티어(300)는 상기 데이터 변형 요청에 따른 동작을 적용함으로써 커밋(commit)할 수 있다(S44). 이 경우, 미들티어(300)는 데이터 처리 결과로서, 데이터 변형 요청 성공 로그를 생성하여 저장할 수 있다(S45).
제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 중 적어도 하나가 상기 데이터 변형 요청에 따른 동작을 성공하지 못한 경우(S43의 NO 경로) 미들티어(300)는 상기 데이터 변형 요청에 따른 동작을 취소하고 상기 데이터 변형 요청을 수신하기 이전으로 롤-백(roll-back)할 수 있다(S46). 이 경우, 미들티어(300)는 데이터 처리 결과로서, 데이터 변형 요청 실패 로그를 생성하여 저장할 수 있다(S47).
즉, 상기 데이터 변형 요청을 수신한 미들티어(300)는 제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 모두가 해당 동작을 성공하는 경우에만 커밋으로 처리하는 2 페이즈 커밋(phase commit) 방식으로 상기 데이터 변형 요청을 처리할 수 있다. 이는, 제1 데이터베이스 서버(100) 및 제2 데이터베이스 서버(200) 간의 데이터 형상이 일치되도록 유지하기 위함이다.
만일, 제1 데이터베이스 서버(100)에 대해서만 커밋 또는 롤백을 수행할 경우, 데이터 변형을 시도하는 데이터가 이미 제2 데이터베이스 서버(200)로 이관되었다고 가정하면 제2 데이터베이스 서버(200)에 저장된 데이터에는 데이터 변형이 반영되지 않아 해당 데이터가 손실되는 문제가 발생할 수 있다.
또한, 제2 데이터베이스 서버(200)에 대해서만 커밋 또는 롤백을 수행할 경우, 이후의 S6 단계에서 제2 데이터베이스 서버(200)에 의한 서비스가 정상적으로 이루어지지 못한다고 판단되었다고 가정하면, 데이터 변형이 반영되지 않은 제1 데이터베이스 서버(100)에 저장된 데이터가 제2 데이터베이스 서버(200)로 이관되므로 해당 데이터가 손실되는 문제가 발생할 수 있다.
서비스 서버들(30-1~30-n) 중 어느 하나가 데이터 조회 요청을 스위치(50)를 통해 미들티어(300)로 전송하는 경우(S40의 NO 경로), 미들티어(300)는 제2 데이터베이스 서버(200)가 상기 데이터 조회 요청에 따른 동작(예컨대, 데이터의 검색, 열람)을 수행하도록 제어할 수 있다(S49).
제2 데이터베이스 서버(200)가 상기 데이터 조회 요청에 따른 동작을 수행한 결과, 제2 데이터베이스 서버(200)가 상기 데이터 조회 요청에 따른 동작을 성공하는지 여부에 따라 미들티어(300)는 데이터 처리 결과로서, 데이터 조회 요청 성공 로그 또는 데이터 조회 요청 실패 로그를 생성하여 저장할 수 있다(S49).
따라서, 데이터 변형 요청 및 데이터 조회 요청에 대하여, 미들티어(300)는 데이터베이스 이관 후 서비스를 제공하게 될 제2 데이터베이스(200)가 해당 동작을 완료하였는지 여부에 대한 처리 결과인 로그 데이터를 수집하여 저장할 수 있다.
도 7에서, 미들티어(300)의 일 실시예가 도시되어 있으며, 미들티어(300)는 2 페이즈 커밋(phase commit) 방식으로 데이터 변형 요청을 처리하여 두 데이터베이스 서버(100, 200) 간의 형상을 유지하기 위한 제1 트랜젝션 관리자(310) 및 제2 트랜젝션 관리자(320)를 포함할 수 있다.
제1 트랜젝션 관리자(310) 및 제2 트랜젝션 관리자(320)각각은 양방향의 트랜젝션에 대한 무결성(integrity)을 보장하기 위해 각각의 트랜젝션 풀(315, 325)을 관리하게 된다. 제1 트랜젝션 풀(315)과 제2 트랜젝션 풀(325)은 동시에 처리가능한 트랜젝션의 양을 결정하게 되며, 미들티어(300)의 성능과 밀접한 연관을 갖는다.
만일, 제1 트랜젝션 관리자(310)와 제1 트랜젝션 풀(315) 만이 미들티어(300)에 포함되고, 제1 데이터베이스 서버(100) 및/또는 제2 데이터베이스 서버(200)의 성능(예컨대, 처리속도)이 미들티어(300)에 비해 높을 경우, 제1 트랜젝션 풀(315)이 서비스 자원이 되어 병목을 일으키게 되어 시스템 전체의 성능을 저하시킬 수 있다.
따라서, 도 7에서와 같이 미들티어(300) 내에 제2 트랜젝션 관리자(320)와 제2 트랜젝션 풀(325)을 더 포함하게 하여, 다중 프로세스 구조로 고속 및 대량의 트랜젝션 처리를 가능하게 하여 시스템 전체의 성능을 향상시킬 수 있다. 도 7에서의 미들티어(300)가 2 개의 트렌젝션 관리자를 포함하는 것은 발명의 일 실시예에 불과하며, 본 발명의 범위는 데이터베이스 서버 측과 미들 티어(300) 간의 성능의 균형을 맞추어 시스템 성능을 최적화 시킬 수 있는 범위로 해석되어야 한다.
S6 단계에서, 미들티어(300)는 S5 단계에서 수집되는 데이터 처리 결과를 시스템 관리자에게 제공할 수 있다. 시스템 관리자는 미들티어(300)가 제공하는 데이터 처리 결과에 대한 통계를 기초로 제2 데이터베이스 서버(200)가 제공하는 서비스가 정상인지 아닌지 판단할 수 있다. 예컨대, 일정 기간 동안 데이터 변형/조회 요청 실패 로그가 생성되지 않은 경우, 시스템 관리자는 제2 데이터베이스 서버(200)의 서비스가 정상이라 판단할 수 있다.
제2 데이터베이스 서버(200)가 제공하는 서비스가 정상으로 판단되지 못한 경우(S6의 NO 경로), S2 단계가 다시 시작되도록 롤백할 수 있다. 즉, S2 단계 내지 S6 단계가 순차적으로 진행되어 데이터베이스 이관 및 데이터 처리 요청 수행 결과에 대한 평가가 다시 수행되도록 할 수 있다. 이 경우 앞서 언급한 바와 같이, 2 페이즈 커밋에 의해 제1 데이터베이스 서버(100)와 제2 데이터베이스 서버(200) 간의 데이터 형상이 유지되므로, 이전 데이터의 손실없이 각 단계들이 수행될 수 있다.
도 8에서, 제2 데이터베이스 서버(200)가 제공하는 서비스가 정상으로 판단된 경우(S6의 YES 경로), 미들티어(300)는 제거되어 제2 데이터베이스 서버(200)와 각 서비스 서버(30-1~30-n)가 직접 통신을 수행하게 된다. 이후, 제2 데이터베이스 서버(200)는 각 서비스 서버(30-1~30-n)에 서비스 제공에 필요한 데이터를 제공하게 되며, 데이터베이스 이관 절차가 완료될 수 있다.
각 서비스 서버(30-1~30-n), 스위치(50), 제1 데이터베이스 서버(100), 제2 데이터베이스 서버(200), 및 미들티어(300)는 데이터 처리 시스템 또는 데이터 이관 시스템을 구성할 수 있다.
본 발명의 일 실시예에 따른 데이터 이관 방법에 의하면, 데이터베이스 이관시 2 페이즈 커밋(phase commit) 방식으로 데이터 처리 요청을 처리하여 데이터베이스 서버 간의 데이터 형상이 일치되도록 유지함으로써, 데이터 무결성이 보장될 수 있다.
또한, 데이터베이스 이관을 해당 서비스의 중단 없이도 진행하여, 서비스의 품질을 높일 수 있는 효과가 있다.
상기와 같이 설명된 미들티어(300)는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
상술한 본 발명에 따른 데이터베이스 이관 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
또한, 상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
복수의 서비스 서버들; 30-1~30-n
스위치; 50
제1 데이터베이스 서버; 100
제2 데이터베이스 서버; 200
미들티어; 300

Claims (19)

  1. 제1 데이터베이스 서버(database server)로부터 상기 제1 데이터베이스 서버와 다른 기종의 제2 데이터베이스 서버로의 데이터베이스 이관 진행시 서비스 서버로부터 데이터 변형 요청을 수신하는 경우, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행하도록 제어하고,
    상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 중 적어도 하나가 상기 데이터 변형 요청에 따른 동작을 성공하지 못한 경우 상기 데이터 변형 요청에 따른 동작을 취소하고 데이터 변형 요청 실패 로그를 생성하는 미들티어(middle-tier).
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 모두가 상기 데이터 변형 요청에 따른 동작을 성공한 경우 데이터 변형 요청 성공 로그를 생성하는 미들티어(middle-tier).
  4. 제1항에 있어서,
    상기 데이터베이스 이관 진행시, 상기 서비스 서버로부터 데이터 조회 요청을 수신하는 경우, 상기 제2 데이터베이스 서버가 상기 데이터 조회 요청에 따른 동작을 수행하도록 제어하는 미들티어(middle-tier).
  5. 제1항에 있어서,
    각각이 일정 갯수의 트랜젝션(transaction)을 관리하는 복수의 트랜젝션 매니저들을 포함하는 미들티어(middle-tier).
  6. 제1항에 있어서,
    상기 데이터 변형 요청은, 업데이트(update) 요청, 삽입(insert) 요청, 및 삭제(delete) 요청 중 어느 하나인 미들티어(middle-tier).
  7. 원천 데이터를 저장 및 관리하는 제1 데이터베이스 서버(database server);
    상기 제1 데이터베이스 서버와 다른 기종에 해당하고, 상기 원천 데이터를 이관받아 목적 데이터를 저장하는 제2 데이터베이스 서버; 및
    상기 제1 데이터베이스 서버로부터 상기 제2 데이터베이스 서버로의 데이터베이스 이관 진행시 서비스 서버로부터 데이터 변형 요청을 수신하는 경우, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행하도록 제어하는 미들티어(middle-tier)를 포함하고,
    상기 미들티어는,
    상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 중 적어도 하나가 상기 데이터 변형 요청에 따른 동작을 성공하지 못한 경우 상기 데이터 변형 요청에 따른 동작을 취소하고 데이터 변형 요청 실패 로그를 생성하는 데이터 처리 시스템.
  8. 삭제
  9. 제7항에 있어서,
    상기 미들티어는,
    상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 모두가 상기 데이터 변형 요청에 따른 동작을 성공한 경우 데이터 변형 요청 성공 로그를 생성하는 데이터 처리 시스템.
  10. 제7항에 있어서,
    상기 미들티어는,
    상기 데이터베이스 이관 진행시, 상기 서비스 서버로부터 데이터 조회 요청을 수신하는 경우, 상기 제2 데이터베이스 서버가 상기 데이터 조회 요청에 따른 동작을 수행하도록 제어하는 데이터 처리 시스템.
  11. 제7항에 있어서,
    상기 미들티어는,
    각각이 일정 갯수의 트랜젝션(transaction)을 관리하는 복수의 트랜젝션 매니저들을 포함하는 데이터 처리 시스템.
  12. 제7항에 있어서,
    상기 데이터 변형 요청은, 업데이트(update) 요청, 삽입(insert) 요청, 및 삭제(delete) 요청 중 어느 하나인 데이터 처리 시스템.
  13. 서비스 서버가, 원천 데이터를 저장 및 관리하는 제1 데이터베이스 서버(database server)와의 통신을 미들티어(middle-tier)를 통해 수행하는 (a) 단계;
    상기 제1 데이터베이스 서버로부터 상기 제1 데이터베이스 서버와 다른 기종의 제2 데이터베이스 서버로의 데이터베이스 이관을 진행하는 (b) 단계;
    상기 미들티어가, 상기 서비스 서버로부터 데이터 변형 요청을 수신하는 경우, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행하도록 제어하는 (c) 단계;
    상기 미들티어가, 상기 서비스 서버로부터의 요청에 대한 처리 결과를 수집하는 (d) 단계;
    상기 처리 결과에 따라 상기 제2 데이터베이스 서버를 통한 서비스가 정상적으로 판단된 경우, 상기 서비스 서버와 상기 제2 데이터베이스 서버가 직접 통신하는 (e)단계; 및
    상기 미들티어가, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 중 적어도 하나가 상기 데이터 변형 요청에 따른 동작을 성공하지 못한 경우 상기 데이터 변형 요청에 따른 동작을 취소하고 데이터 변형 요청 실패 로그를 생성하는 (f) 단계를 포함하는 데이터베이스 이관 방법.
  14. 제13항에 있어서,
    상기 처리 결과에 따라 상기 제2 데이터베이스 서버를 통한 서비스가 비정상적으로 판단된 경우, 상기 (a) 단계가 다시 수행되는 데이터베이스 이관 방법.
  15. 삭제
  16. 제13항에 있어서,
    상기 미들티어가, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 각각이 상기 데이터 변형 요청에 따른 동작을 수행한 결과, 상기 제1 데이터베이스 서버 및 상기 제2 데이터베이스 서버 모두가 상기 데이터 변형 요청에 따른 동작을 성공한 경우 데이터 변형 요청 성공 로그를 생성하는 (g) 단계를 더 포함하는 데이터베이스 이관 방법.
  17. 제13항에 있어서,
    상기 미들티어가, 상기 데이터베이스 이관 진행시, 상기 서비스 서버로부터 데이터 조회 요청을 수신하는 경우, 상기 제2 데이터베이스 서버가 상기 데이터 조회 요청에 따른 동작을 수행하도록 제어하는 (h) 단계를 더 포함하는 데이터베이스 이관 방법.
  18. 제13항에 있어서,
    상기 미들티어는,
    각각이 일정 갯수의 트랜젝션(transaction)을 관리하는 복수의 트랜젝션 매니저들을 포함하는 데이터베이스 이관 방법.
  19. 제13항에 있어서,
    상기 데이터 변형 요청은, 업데이트(update) 요청, 삽입(insert) 요청, 및 삭제(delete) 요청 중 어느 하나인 데이터베이스 이관 방법.
KR1020150064443A 2015-05-08 2015-05-08 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법 KR101672724B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150064443A KR101672724B1 (ko) 2015-05-08 2015-05-08 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150064443A KR101672724B1 (ko) 2015-05-08 2015-05-08 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법

Publications (1)

Publication Number Publication Date
KR101672724B1 true KR101672724B1 (ko) 2016-11-04

Family

ID=57530214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150064443A KR101672724B1 (ko) 2015-05-08 2015-05-08 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법

Country Status (1)

Country Link
KR (1) KR101672724B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200092095A (ko) * 2019-01-24 2020-08-03 주식회사 웨어밸리 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
US11928948B2 (en) * 2020-10-19 2024-03-12 Changxin Memory Technologies, Inc. Environmental data monitoring method and monitoring system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060114675A (ko) 2006-10-18 2006-11-07 (주)네오다임 에스오에이피 및 타임스탬프를 이용한 이기종데이터베이스간의 데이터 동기화 프로세스
KR20110139739A (ko) * 2009-03-19 2011-12-29 가부시키가이샤 무라쿠모 데이터의 복제 관리 방법 및 시스템
KR20120009666A (ko) * 2010-07-20 2012-02-02 주식회사 웨어밸리 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060114675A (ko) 2006-10-18 2006-11-07 (주)네오다임 에스오에이피 및 타임스탬프를 이용한 이기종데이터베이스간의 데이터 동기화 프로세스
KR20110139739A (ko) * 2009-03-19 2011-12-29 가부시키가이샤 무라쿠모 데이터의 복제 관리 방법 및 시스템
KR20120009666A (ko) * 2010-07-20 2012-02-02 주식회사 웨어밸리 네트워크 패킷 분석을 통한 데이터베이스 복제 방법 및 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200092095A (ko) * 2019-01-24 2020-08-03 주식회사 웨어밸리 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
KR102174957B1 (ko) * 2019-01-24 2020-11-05 주식회사 웨어밸리 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
US11928948B2 (en) * 2020-10-19 2024-03-12 Changxin Memory Technologies, Inc. Environmental data monitoring method and monitoring system

Similar Documents

Publication Publication Date Title
CN101751415B (zh) 元数据服务系统、元数据同步方法与写服务器更新方法
US20090070337A1 (en) Apparatus and method for a distributed storage global database
CN107787490A (zh) 分布式数据库网格中的直接连接功能
CN102158540A (zh) 分布式数据库实现系统及方法
TWI454917B (zh) Access control method, access control device and access control program
JP2009504030A (ja) 収益管理システムおよび方法
CN107948318B (zh) 多节点间的缓存同步方法和系统
CN109582335B (zh) 一种无中断存储集群节点在线升级方法、装置及设备
CN111901705B (zh) 一种olt设备的omci功能虚拟化系统
CN101689166A (zh) 使用具有全局知识的服务器处理写请求
CN101551822B (zh) 一种数据库复制方法和装置
KR101672724B1 (ko) 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
CN110830582A (zh) 一种基于服务器集群选主方法和装置
CN108509296B (zh) 一种处理设备故障的方法和系统
JPH07311744A (ja) 資源所在位置検出方式
JP5054065B2 (ja) データベース装置、データベース整合システム、及び、データベース整合方法
US20130226969A1 (en) Data access control apparatus and data access control method
CN116797233A (zh) 用户成长体系的管理方法、装置、设备及存储介质
KR100194771B1 (ko) 개인통신서비스(pcs)용 가입관리장치 및 그 방법
KR100659406B1 (ko) Hlr시스템의 가입자 데이터 베이스 백업방법
CN101325738B (zh) 一种实现移动通信核心网寄存器故障恢复的方法、装置
EP1391131B1 (en) Data element information management in a network environment
US11366827B2 (en) Data replication
CN114130035A (zh) 一种用户匹配方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
FPAY Annual fee payment

Payment date: 20190911

Year of fee payment: 6