KR101589213B1 - 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 - Google Patents

백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 Download PDF

Info

Publication number
KR101589213B1
KR101589213B1 KR1020150100375A KR20150100375A KR101589213B1 KR 101589213 B1 KR101589213 B1 KR 101589213B1 KR 1020150100375 A KR1020150100375 A KR 1020150100375A KR 20150100375 A KR20150100375 A KR 20150100375A KR 101589213 B1 KR101589213 B1 KR 101589213B1
Authority
KR
South Korea
Prior art keywords
database
data
backup
query
time
Prior art date
Application number
KR1020150100375A
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 KR1020150100375A priority Critical patent/KR101589213B1/ko
Application granted granted Critical
Publication of KR101589213B1 publication Critical patent/KR101589213B1/ko

Links

Images

Classifications

    • G06F17/30575
    • 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/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법에 관한 것으로, 해결하고자 하는 기술적 과제는, 일례로, 데이터베이스의 데이터 변경 시 기록되는 메모리 영역인 리두 버퍼를 실시간으로 백업하여 백업을 하면서 발생되는 디스크의 입출력을 최소화함으로써, 백업을 하면서 발생하는 운영 서버의 부하를 최소화할 수 있는 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법을 제공하는 데 있다.

Description

백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법{load dispersion method using backup data base}
본 발명은 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법에 관한 것이다.
오늘날 데이터는 급격하게 증가하고 있으며, 데이터를 활용하기 위해 다양한 분석 질의를 통해 가치있는 데이터를 구하기 위해 노력하고 있다. 운영 데이터베이스에서 분석용 질의를 하는 경우에는 대부분 데이터에 대한 전체 스캔을 하여 운영 서버 성능 관점에서 악영향을 초래할 수 있으며, 그로 인해 많은 기업들이 분석용 데이터베이스를 별도로 두어 운영하고 있다.
분석용 데이터베이스를 별도로 두어 운영하는 부분에 있어서 데이터의 일관성 문제와 동기화에 대한 문제가 발생되고 있으며, 실시간 동기화 및 복제를 하기 위해 별도의 응용프로그램 및 관리프로그램을 만들어 사용하고 있다.
실시간 복제를 통해서 데이터베이스의 데이터를 동기화하는 방법이 있으나, 로그 화일 형태로 만들어진 데이터를 복제하여 네트워크로 전송하는 방식이므로 데이터의 변경이 다량으로 발생될 경우 성능 저하 현상이 발생될 수 있다.
또한, 백업 데이터를 활용하는 부분에 있어서 서비스 및 사용자 계층을 나누어 운영 데이터베이스와 백업 데이터베이스를 분리하여 사용하게 하는 방법이 있으나, 이는 백업 데이터베이스를 활용하는 측면에서 수동으로 의사 결정하여 선택하는 방식이므로 의사 결정이 안된 분석용 또는 많은 부하를 유발하는 질의에 대해서는 백업 데이터베이스를 활용하지 못하는 한계성을 지니고 있다.
본 발명의 해결하고자 하는 과제는, 데이터베이스의 데이터 변경 시 기록되는 메모리 영역인 리두 버퍼를 실시간으로 백업하여 백업을 하면서 발생되는 디스크의 입출력을 최소화함으로써, 백업을 하면서 발생하는 운영 서버의 부하를 최소화할 수 있는 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법을 제공하는 데 있다.
본 발명의 다른 해결하고자 하는 과제는, 백업한 데이터를 활용해 데이터베이스에 대한 이중화를 구성하여 운영 데이터베이스에서 수행되는 질의중 시간이 오래 소요될 것으로 예상되는 쿼리(질의)를 자동으로 캡처하여 백업 데이터베이스에서 수행함으로써, 기존 운영 데이터베이스 서버의 부하를 로드 밸런싱할 수 있는 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 제공하는데 있다. 즉, 본 발명은 백업된 데이터를 운영 데이터베이스에서 수행 시간이 오래 걸리는 쿼리를 백업 데이터베이스에서 수행하여 결과를 리턴함으로써, 운영 데이터베이스의 부하를 분산할 수 있으며 여러 개의 백업본을 활용해 멀티버젼 데이터베이스(multi-version database)를 만들 수 있는 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 제공하는 데 있다.
본 발명의 또 다른 해결하고자 하는 과제는 특정 시간을 기준 시점으로 백업 데이터와 변경된 데이터를 적용하여 복원할 수 있는 데이터 복원 방법을 제공하는데 있다.
본 발명의 일 실시예에 따른 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법은 데이터베이스의 데이터 변경 시 사용되는 메모리 영역인 리두 버퍼의 데이터를 메모리에서 직접 실시간 복제하는 단계; 상기 복제된 데이터의 시스템의 마지막 변경 번호와 가장 최근에 복제한 데이터의 시스템의 마지막 변경 번호를 비교하는 단계; 상기 비교 후 실시간으로 복제한 데이터를 백업 데이터베이스로 전송하는 단계; 및 상기 전송된 변경 데이터를 백업 데이터베이스에 반영하는 단계를 포함한다.
상기 변경 번호 비교 단계는 상기 메모리에서 직접 데이터 복제 시 변경된 블록 단위의 데이터로 복제할 수 있으며, 데이터 블록 헤더에서 시스템의 마지막 변경 번호를 읽어 들여 마지막으로 백업 데이터베이스에 전송된 시스템의 마지막 변경 번호와 비교할 수 있다.
또한, 본 발명에 따른 데이터 복원 방법은, 위에 기재된 단계를 포함하고, 물리적인 파일에 대해 특정 시간에 백업을 수행하는 단계; 상기 특정 시간에 백업된 데이터로 별도의 메모리 및 인스턴스를 확보하는 단계; 상기 메모리 및 인스턴스가 확보되어 변경된 데이터의 기록 파일을 적용하는 단계; 및 상기 특정 시간을 기준 시점으로 백업 데이터와 변경된 데이터를 적용하여 복원하는 단계를 더 포함한다.
상기 복원된 데이터를 다수의 인스턴스로 복원하여 복원된 이후의 각각의 데이터 인스턴스에 대해 변경 사항을 특정 시간까지만 적용하여 멀티버젼 데이터베이스에 대한 구성으로 타임 시리즈 데이터를 만들 수 있다.
또한, 본 발명에 따른 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법은 위에 기재된 단계를 포함하고, 상기 데이터베이스의 질의에 대한 실행 계획을 분석하는 단계; 상기 분석된 결과를 기초로 필터링하여 데이터베이스에서 질의되는 것을 제어하여 상기 백업 데이터베이스로 질의를 전송하는 단계; 및 상기 백업 데이터베이스에 질의된 결과를 다시 상기 운영 데이터베이스로 가져와 최종 사용자에게 전달하는 단계를 포함한다.
상기 실행 계획에 대해 분석 시 실행 계획과 상기 데이터베이스의 각 객체에 대한 통계 정보를 활용하여 구문 파싱 단계에서 부하가 많을 것으로 예상되는 질의문을 상기 데이터베이스에서 차단하고 상기 백업 데이터베이스에서 자동으로 수행하게 하며, 구문 분석 시 데이터를 집계하는 형태의 함수 및 기준값보다 큰 대량의 데이터를 읽을 것으로 예상되는 그룹바이(group by) 또는 섬(sum)의 분석 함수가 수행될 때 상기 백업 데이터베이스로 자동 로드 오버(load-over)할 수 있다.
본 발명은 데이터베이스의 데이터 변경 시 기록되는 메모리 영역인 리두 버퍼를 실시간으로 백업하여 백업을 하면서 발생되는 디스크의 입출력을 최소화함으로써, 백업을 하면서 발생하는 운영 서버의 부하를 최소화할 수 있는 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법을 제공한다. 즉, 본 발명에 의하면, 데이터의 변경에 대한 복제를 메모리 영역에서 실시함으로써, 기존의 로그 파일에서 복제하는 입출력을 최소화하고, 로그 파일에 아직 반영되지 않은 데이터의 경우 복제가 되지 않아서 손실이 되는 경우를 최소화 할 수 있는 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법을 제공한다. 다르게 설명하면, 데이터베이스에서 데이터의 변경이 발생되면 메모리 영역에서 변경된 것을 리두 로그 화일로 쓰기 작업을 하게 되는데, 이때 운영 시스템의 데이터 변경량이 많은 경우에는 성능 저하 현상이 발생될 수 있으므로 이를 개선하여 메모리 영역에서 직접 읽어 들여서 백업 데이터베이스에 전송하는 방식으로 하면 기존 대비 디스크 입출력(DISK IO)을 많은 부분에서 개선할 수 있게 된다.
또한, 본 발명은 백업한 데이터를 활용해 데이터베이스에 대한 이중화를 구성하여 운영 데이터베이스에서 수행되는 질의중 시간이 오래 소요될 것으로 예상되는 쿼리(질의)를 자동으로 캡처하여 백업 데이터베이스에서 수행함으로써, 기존 운영 데이터베이스 서버의 부하를 로드 밸런싱할 수 있는 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 제공한다. 즉, 본 발명은 백업된 데이터를 운영 데이터베이스에서 수행 시간이 오래 걸리는 쿼리를 백업 데이터베이스에서 수행하여 결과를 리턴함으로써, 운영 데이터베이스의 부하를 분산할 수 있는 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 제공한다. 다르게 설명하면, 메모리 영역으로 복제된 백업 데이터베이스를 활용하여 부하가 유발될 것으로 예상되는 질의문에 대해 자동으로 전환하여 수행하고, 운영 서버(또는 클라이언트)에 그 결과값을 리턴함으로써, 운영 서버의 부하를 로드 밸런싱할 수 있는 방법을 제공한다. 또 다르게 설명하면, 백업 데이터베이스를 분석용 질의 데이터베이스로 활용할 수 있으나 부하를 유발하는 질의를 자동으로 백업 서버로 전환되어 사용되는 것이 아니라 수동으로 설정해야 하는 한계성을 지니고 있는 부분이 있는데, 이를 자동으로 백업 데이터베이스로 질의문을 넘겨줌으로써 기존 운영 데이터베이스의 부하를 개선할 수 있게 된다.
또한, 본 발명은 여러 개의 백업본을 활용해 멀티버젼 데이터베이스(multi-version database)를 만들 수 있도록 한다. 즉, 본 발명에서는 여러 개의 백업본을 활용하여 멀티 버전 데이터베이스를 구성하게 됨으로써, 특정 시점의 타임 시리즈(time-series) 데이터에 대해 용이하게 분석할 수 있도록 한다.
또한, 본 발명은 특정 시간을 기준 시점으로 백업 데이터와 변경된 데이터를 적용하여 복원할 수 있는 데이터 복원 방법을 제공한다.
도 1은 본 발명에 따른 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법, 데이터 복원 방법 및 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 구현하기 위한 데이터 베이스 시스템 구성의 일례를 도시한 것이다.
도 2는 본 발명에 따른 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법을 도시한 순서도이다.
도 3은 본 발명에 따른 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 도시한 순서도이다.
도 4는 본 발명에 따른 데이터 복원 방법을 도시한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
또한, 본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise, include)" 및/또는 "포함하는(comprising, including)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및 /또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 더욱이, 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
또한, 본 명세서에서 제1, 제2 등의 용어가 다양한 부분, 부재, 부품, 영역 및/또는 층들을 설명하기 위하여 사용되지만, 이들 부분, 부재, 부품, 영역 및/또는 층들은 이들 용어에 의해 한정되어서는 안 됨은 자명하다. 이들 용어는 하나의 부분, 부재, 부품, 영역 및/또는 층을 다른 부분, 부재, 부품, 영역 및/또는 층과 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1부분, 부재, 부품, 영역 및/또는 층은 본 발명의 가르침으로부터 벗어나지 않고서도 제2부분, 부재, 부품, 영역 및/또는 층을 지칭할 수 있다.
도 1은 본 발명에 따른 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법, 데이터 복원 방법 및 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 구현하기 위한 데이터 베이스 시스템 구성의 일례를 도시한 것이다.
도 1에 도시된 바와 같이, 본 발명에 따른 데이터 베이스 시스템(100)은 운영 서버(110)와 백업 서버(120)를 포함할 수 있다. 또한, 운영 서버(110)는 운영 데이터베이스(111)를 포함하고, 백업 서버(120)는 백업 데이터베이스(121)를 포함한다.
여기서, 운영 서버(110)는 운영 데이터베이스(111)의 데이터 변경 시 발생되는 체크 포인트(checkpoint)를 모니터링하기 위한 서버 에이전트(112)를 더 포함할 수 있다. 더불어, 이러한 서버 에이전트(112)는 운영 데이터베이스(111)에서 수행되는 질의문에 대한 실행 계획을 분석하여 많은 자원을 요구할 것으로 판단되는 질의문이 있는지 없는지 확인하는 역할도 한다. 이러한 서버 에이전트(112)의 기능 및 역할은 아래에서 다시 설명된다.
이와 같이 하여, 운영 서버(110)는 백업 서버(120)에 데이터를 백업하며, 또한 운영 서버(110)는 백업 서버(120)에 질의문 전송을 수행하고, 백업 서버(120)는 운영 서버(110)에 질의문에 대한 응답을 리턴할 수 있다. 이러한 운영 서버(110)와 백업 서버(120)는 고속 네트워크를 통해 상호간 연결되어, 고속 데이터의 송수신이 가능하다.
도 2는 본 발명에 따른 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법을 도시한 순서도이다.
도 2에 도시된 바와 같이, 본 발명에 따른 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법은 운영 데이터베이스 모니터링 단계(S11), 운영 데이터베이스 변경 여부 판단 단계(S12), 데이터 실시간 복제 단계(S13), 변경 번호 동일 여부 판단 단계(S14), 복제 데이터 전송 단계(S15) 및 백업 데이터베이스 반영 단계(S16)를 포함한다.
운영 데이터베이스 모니터링 단계(S11)에서는, 운영 서버가 운영 데이터베이스에 변경이 있었는지를 실시간으로 모니터링하여 이루어진다.
운영 데이터베이스 변경 여부 판단 단계(S12)에서는, 운영 서버가 운영 데이터베이스에 변경이 있었는지를 판단하며, 변경이 있었을 경우 다음 단계(S13)를 수행하고, 변경이 없었을 경우 이전 단계(S11)로 복귀한다.
데이터 실시간 복제 단계(S13)에서는, 운영 서버가 데이터베이스의 데이터 변경 시 사용되는 메모리 영역인 리두 버퍼의 데이터를 메모리에서 직접 실시간 복제하여 이루어진다. 즉, 데이터의 변경이 발생되었을 때의 메모리 영역에서 변경분을 직접 읽어들이기 위해서, 데이터 변경 영역인 리두 버퍼를 주기적으로 읽어들여(redo capture process) 메모리에 기록하여 두고, 운영 데이터베이스의 메모리 영역을 백업 서버의 메모리 영역으로 고속네트워크를 통하여 복제하며(redo memory copy process) 백업 데이터베이스로 전송한다.
여기서, 리두 버퍼를 주기적으로 읽어 들일 때, 데이터의 일관성과 변경된 데이터의 손실이 발생되지 않도록, 데이터 변경 시 발생되는 체크 포인트(checkpoint)를 상술한 서버 에이전트를 이용하여 확인하도록 한다.
또한, 운영 데이터베이스와 백업 데이터베이스 간의 메모리 복제는 큐의 구조로 이루어지도록 하며, 큐에 쌓이는 순서는 트랜잭션의 순서와 일치하도록 한다.
변경 번호 동일 여부 판단 단계(S14)에서는, 운영 서버가 복제된 데이터의 시스템의 마지막 변경 번호와 가장 최근에 복제한 데이터의 시스템의 마지막 변경 번호를 비교하여 이루어진다.
여기서, 변경 번호 동일 여부 판단 단계는 메모리에서 직접 데이터 복제 시 변경된 블록 단위의 데이터로 복제하며, 데이터 블록 헤더에서 시스템의 마지막 변경 번호를 읽어 들여 마지막으로 백업 데이터베이스에 전송된 시스템의 마지막 변경 번호와 비교하여 동일한지 아닌지를 판단한다.
만약 운영 데이터베이스의 시스템의 마지막 변경 번호와 백업 서버의 백업 전용 메모리 영역과 비교하였는데, 찾고자 하는 시스템의 마지막 변경 번호가 없을 경우, 이미 메모리 영역이 플러시(flush)되어 리두 로그 화일에 쓰여진 경우이므로, 이때에는 커런트 리두 로그 화일에서 시스템의 마지막 변경 번호를 찾아서 찾고자 하는 시스템의 마지막 변경 번호가 맞을 경우 리두 데이터를 복제하여 백업 데이터베이스 서버의 전용 메모리 공간으로 복제한다.
또한, 만약 커런트 리두 로그 화일에도 찾고자 하는 시스템의 마지막 변경 번호가 없는 경우에는 리두 로그 화일을 영구적으로 보관하기 위해 존재하는 아카이브 로그 화일을 찾아서 백업 서버의 메모리 영역으로 복제한다. 이때, 복제된 백업 화일은 주기적인 체크포인트가 발생되면 데이터 화일에 적용되도록 한다.
더불어, 리두 버퍼 영역에서 데이터를 주기적으로 캡처하기 위해서는, 도 1에 도시된 바와 같이, 데이터베이스의 데이터 변경 시 발생되는 체크 포인트를 모니터링하기 위한 서버 에이전트가 동작하여야 하며, 이러한 프로세스는 백그라운드로 수행되도록 함이 바람직하다.
메모리 영역에 복제되는 순서는 운영 데이터베이스의 시스템의 마지막 변경 번호의 순서와 동일해야 하며, 운영 서버에서 어떠한 오류로 인해 시스템의 마지막 변경 번호를 찾을 수 없는 경우에는 심각한 경고 메시지를 운영자에게 남기고 더 이상의 동기화는 중지해야 한다.
물론, 다시 동기화를 하기 위해서는 백업 서버에 적용된 마지막 시스템의 마지막 변경 번호 이후의 데이터 변경 파일을 찾아야 하며 전혀 존재하지 않는 경우 백업 서버를 재구성해야 하는 경우가 발생될 수 있다.
여기서, 백업 데이터베이스를 재구성해야 하는 경우 최초의 엑스포트(export) 백업 시 시스템의 마지막 변경 번호를 확인해야 하며, 백업 데이터베이스에 데이터를 임포트(import)한 이후에는 최초 엑스포트하면서 확인한 시스템의 마지막 변경 번호 이후의 변경된 파일을 찾아서 동기화를 해야 한다. 이때, 네트워크 구성에 따라서 동기화 속도가 달라질 수 있으므로, 운영 데이터베이스와 백업 데이터베이스와의 네트워크의 대역폭은 높을수록 유리하다.
계속해서, 복제 데이터 전송 단계(S15)에서는, 상술한 비교 단계 이후 실시간으로 복제한 데이터를 백업 데이터베이스로 전송하여 이루어진다.
백업 데이터베이스 반영 단계(S16)에서는, 전송된 변경 데이터를 백업 데이터베이스에 반영하여 이루어진다.
여기서, 상술한 바와 같이 백업 데이터베이스를 재구성한 경우, 상술한 방법으로 변경된 데이터를 모두 동기화 하고 그 이후 실시간 변경된 데이터는 운영 데이터베이스 메모리 영역에서 직접 어태치(attach)하여 백업 데이터베이스로 동기화하여 백업을 완성시킬 수 있다.
이와 같이 하여, 본 발명은 데이터베이스의 데이터 변경 시 기록되는 메모리 영역인 리두 버퍼를 실시간으로 백업하여 백업을 하면서 발생되는 디스크의 입출력을 최소화함으로써, 백업을 하면서 발생하는 운영 서버의 부하를 최소화할 수 있게 된다.
도 3은 본 발명에 따른 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 도시한 순서도이다.
도 3에 도시된 바와 같이, 본 발명에 따른 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 단계는 운영 데이터베이스 질의문 실행 계획 모니터링 단계(S21), 질의문 실행 계획 분석 단계(S22), 질의문 전송 단계(S23) 및 질의문 결과물 리턴 단계(S24)를 포함한다.
운영 데이터베이스 질의문 실행 계획 모니터링 단계(S21)에서는, 예를 들면, 운영 데이터베이스에서 수행되는 SQL에 대해 실행 계획을 서버 에이전트가 모니터링하여 이루어진다.
질의문 실행 계획 분석 단계(S22)에서는, 운영 데이터베이스의 질의에 대한 실행 계획을 분석하여 이루어진다. 즉, 운영 데이터베이스에서의 질의문 수행 소요 시간이 미리 결정된 기준 시간보다 큰지 분석하여 이루어진다. 예를 들면, 서버 에이전트가 운영 데이터베이스에서 수행되는 SQL에 대해 실행 계획을 분석하여 상대적으로 많은 자원을 요구할 것으로 판단되는 SQL인지 아닌지 판단한다. 만약, 질의문 수행 소요 시간이 미리 결정된 기준 시간보다 클 경우, 다음 단계(S23)를 수행하고, 미리 결정된 기준 시간보다 작을 경우 이전 단계(S21)로 복귀한다.
좀 더 구체적으로 설명하면, 실행 계획에 대해 분석 시 실행 계획과 운영 데이터베이스의 각 객체에 대한 통계 정보를 활용하여 구문 파싱 단계에서 부하가 많을 것으로 예상되는 질의문을 운영 데이터베이스에서 차단하고, 백업 데이터베이스에서 자동으로 수행하게 한다. 또한, 구문 분석 시 데이터를 집계하는 형태의 함수 및 기준값보다 큰 대량의 데이터를 읽을 것으로 예상되는 그룹바이(group by) 또는 섬(sum)의 분석 함수가 수행될 때, 백업 데이터베이스로 자동 로드 오버(load-over)되도록 한다.
다음으로, 질의문 전송 단계(S23)에서는, 상술한 분석된 결과를 기초로 필터링하여 운영 데이터베이스에서 질의되는 것을 제어하여 백업 데이터베이스로 질의문을 전송하여 이루어진다.
질의문 결과물 리턴 단계(S24)에서는, 백업 데이터베이스에 질의된 결과를 다시 운영 데이터베이스로 가져와 최종 사용자에게 전달하여 이루어진다.
즉, 본 발명에서는 운영 서버가 많은 자원을 요구할 것으로 판단되는 SQL을 필터링하여 백업 데이터베이스로 고속 네트워크를 통해 전송하고, 백업 서버에서 실행한 리졸트-셋트(result-set)를 복제해 온다. 따라서, 이를 통해 실제로 발생되는 자원 사용을 백업 데이터베이스와 로드 밸런싱을 할 수 있는데, 이것이 가능한 이유는 데이터베이스 간의 실시간 메모리 복제 기술이 있기 때문에 가능한 것이다. 즉, 본 발명에서는 페일 오버(fail-over)의 개념이 아닌 부하를 자동으로 감지하여 자동 로드 오버(load-over)를 할 수 있기 때문이다.
한편, 상술한 바와 같이 질의문을 백업 서버에 자동으로 넘겨주기 위해서는 커넥션을 맺고 끊는 것에 대한 부하를 최소화하기 위해서 미리 커넥션을 맺어놓고 하도록 함이 바람직하다.
이와 같이 하여, 본 발명은 백업한 데이터를 활용해 데이터베이스에 대한 이중화를 구성하여 운영 데이터베이스에서 수행되는 질의중 시간이 오래 소요될 것으로 예상되는 쿼리(질의)를 자동으로 캡처하여 백업 데이터베이스에서 수행함으로써, 기존 운영 데이터베이스 서버의 부하를 로드 밸런싱할 수 있게 된다. 즉, 본 발명은 백업된 데이터를 운영 데이터베이스에서 수행 시간이 오래 걸리는 쿼리를 백업 데이터베이스에서 수행하여 결과를 리턴함으로써, 운영 데이터베이스의 부하를 분산할 수 있으며 여러 개의 백업본을 활용해 멀티버젼 데이터베이스를 만들 수 있게 된다.
도 4는 본 발명에 따른 데이터 복원 방법을 도시한 순서도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 데이터 복원 방법은 물리적인 파일에 대해 특정 시간에 백업을 수행하는 단계(S31), 특정 시간에 백업된 데이터로 별도의 메모리 및 인스턴스를 확보하는 단계(S32), 메모리 및 인스턴스가 확보되어 변경된 데이터의 기록 파일을 적용하는 단계(S33) 및 특정 시간을 기준 시점으로 백업 데이터와 변경된 데이터를 적용하여 복원하는 단계(S34)를 포함한다.
여기서, 복원된 데이터를 다수의 인스턴스로 복원하여 복원된 이후의 각각의 데이터 인스턴스에 대해 변경 사항을 특정 시간까지만 적용하여 멀티버젼 데이터베이스(multi version database)에 대한 구성으로 타임 시리즈 데이터(time serise data)를 만든다.
즉, 본 발명에서와 같이 상술한 실시간 메모리 백업과 병행하여 물리적인 파일에 대한 백업을 특정 시간에 배치를 통하여 백업을 하게 되면, 멀티버젼의 백업을 가질 수 있으며, 멀티버젼의 백업으로 여러 개의 인스턴스를 구성하게 되고, 이에 따라 히스토리컬 데이터(historical data)를 보다 더 용이하게 얻을 수 있게 된다.
여기서, 본 발명은 도 1에 도시된 방법과 도 2에 도시된 방법이 함께 수행되거나, 도 1, 도 2 및 도 3에 도시된 방법이 함께 수행되거나, 도 1 및 도 3에 도시된 방법이 함께 수행되거나, 또는 도 2 및 도 3에 도시된 방법이 함께 수행될 수 있다.
이상에서 설명한 것은 본 발명에 따른 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
100; 본 발명에 따른 데이터베이스 시스템
110; 운영 서버 111; 운영 데이터베이스
112; 서버 에이전트 120; 백업 서버
121; 백업 데이터베이스

Claims (6)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 데이터베이스의 데이터 변경 시 사용되는 메모리 영역인 리두 버퍼의 데이터를 메모리에서 직접 실시간 복제하는 단계;
    상기 복제된 데이터의 시스템의 마지막 변경 번호와 가장 최근에 복제한 데이터의 시스템의 마지막 변경 번호를 비교하는 단계;
    상기 비교 후 실시간으로 복제한 데이터를 백업 데이터베이스로 전송하는 단계; 및
    상기 전송된 변경 데이터를 백업 데이터베이스에 반영하는 단계를 포함하는 데이터베이스의 메모리 영역 실시간 복제를 통한 백업 방법을 포함하고,
    상기 데이터베이스의 질의에 대한 실행 계획을 분석하는 단계;
    상기 분석된 결과를 기초로 필터링하여 상기 데이터베이스에서 질의되는 것을 제어하여 상기 백업 데이터베이스로 질의를 전송하는 단계; 및
    상기 백업 데이터베이스에 질의된 결과를 다시 상기 데이터베이스로 가져와 최종 사용자에게 전달하는 단계를 포함함을 특징으로 하는 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법.
  6. 제 5 항에 있어서,
    상기 실행 계획에 대해 분석 시 실행 계획과 상기 데이터베이스의 각 객체에 대한 통계 정보를 활용하여 구문 파싱 단계에서 부하가 많을 것으로 예상되는 질의문을 상기 데이터베이스에서 차단하고 상기 백업 데이터베이스에서 자동으로 수행하게 하며, 구문 분석 시 데이터를 집계하는 형태의 함수 및 기준값보다 큰 대량의 데이터를 읽을 것으로 예상되는 그룹바이(GROUP BY) 또는 섬(SUM)의 분석 함수가 수행될 때 상기 백업 데이터베이스로 자동 로드 오버(LOAD-OVER)함을 특징으로 하는 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법.
KR1020150100375A 2015-07-15 2015-07-15 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 KR101589213B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150100375A KR101589213B1 (ko) 2015-07-15 2015-07-15 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150100375A KR101589213B1 (ko) 2015-07-15 2015-07-15 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법

Publications (1)

Publication Number Publication Date
KR101589213B1 true KR101589213B1 (ko) 2016-01-27

Family

ID=55309680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150100375A KR101589213B1 (ko) 2015-07-15 2015-07-15 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법

Country Status (1)

Country Link
KR (1) KR101589213B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101823130B1 (ko) * 2016-11-28 2018-03-09 주식회사 실크로드소프트 데이터베이스의 이중화를 위한 기법
US11032361B1 (en) 2020-07-14 2021-06-08 Coupang Corp. Systems and methods of balancing network load for ultra high server availability

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940008605B1 (ko) * 1990-06-29 1994-09-24 디지탈 이큅먼트 코오포레이숀 언두 로그 사용을 최적화하는 방법 및 장치
KR100891036B1 (ko) * 2008-09-08 2009-03-31 (주)데이타뱅크시스템즈 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법
KR20140050903A (ko) * 2012-10-22 2014-04-30 주식회사 엔써티 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법
JP5719083B2 (ja) * 2013-03-04 2015-05-13 株式会社東芝 データベース装置、プログラムおよびデータ処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940008605B1 (ko) * 1990-06-29 1994-09-24 디지탈 이큅먼트 코오포레이숀 언두 로그 사용을 최적화하는 방법 및 장치
KR100891036B1 (ko) * 2008-09-08 2009-03-31 (주)데이타뱅크시스템즈 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법
KR20140050903A (ko) * 2012-10-22 2014-04-30 주식회사 엔써티 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법
JP5719083B2 (ja) * 2013-03-04 2015-05-13 株式会社東芝 データベース装置、プログラムおよびデータ処理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101823130B1 (ko) * 2016-11-28 2018-03-09 주식회사 실크로드소프트 데이터베이스의 이중화를 위한 기법
WO2018097522A1 (ko) * 2016-11-28 2018-05-31 주식회사 실크로드소프트 데이터베이스의 이중화를 위한 기법
US11106654B2 (en) 2016-11-28 2021-08-31 Silcroad Soft, Inc. Technique for duplexing database
US11032361B1 (en) 2020-07-14 2021-06-08 Coupang Corp. Systems and methods of balancing network load for ultra high server availability
WO2022013618A1 (en) * 2020-07-14 2022-01-20 Coupang Corp. Systems and methods of balancing network load for ultra high server availability
TWI763225B (zh) * 2020-07-14 2022-05-01 南韓商韓領有限公司 用於路由網路流量的電腦實行系統以及方法
US11627181B2 (en) 2020-07-14 2023-04-11 Coupang Corp. Systems and methods of balancing network load for ultra high server availability

Similar Documents

Publication Publication Date Title
US11816063B2 (en) Automatic archiving of data store log data
US9906598B1 (en) Distributed data storage controller
KR101904786B1 (ko) 소스 데이터베이스 관리시스템에서 변경되는 데이터를 실시간으로 목표 데이터베이스 관리시스템에 복제하는 장치 및 그 방법
WO2019154394A1 (zh) 分布式数据库集群系统、数据同步方法及存储介质
US9507845B1 (en) Virtual splitter
US8918392B1 (en) Data storage mapping and management
AU2011312029B2 (en) Automatic replication of virtual machines
CN102460398B (zh) 用于在备份操作中执行去重复的源分类
EP2052337B1 (en) Retro-fitting synthetic full copies of data
US7680834B1 (en) Method and system for no downtime resychronization for real-time, continuous data protection
US11314444B1 (en) Environment-sensitive distributed data management
US20160034357A1 (en) Managing backup operations from a client system to a primary server and secondary server
US7519870B1 (en) Method and system for no downtime, initial data upload for real-time, continuous data protection
US20140215265A1 (en) Data backup and recovery
JP5308403B2 (ja) データ処理の障害回復方法、システムおよびプログラム
US8930364B1 (en) Intelligent data integration
US10936545B1 (en) Automatic detection and backup of primary database instance in database cluster
KR101429575B1 (ko) 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법
US10235145B1 (en) Distributed scale-out replication
US11663093B2 (en) Automated development of recovery plans
US9984139B1 (en) Publish session framework for datastore operation records
US9672113B1 (en) Data recovery from multiple data backup technologies
CN104679896A (zh) 一种大数据环境下的智能检索方法
KR101589213B1 (ko) 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법
US11042454B1 (en) Restoration of a data source

Legal Events

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

Payment date: 20191111

Year of fee payment: 5