KR20160004721A - 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템 - Google Patents

데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템 Download PDF

Info

Publication number
KR20160004721A
KR20160004721A KR1020140083579A KR20140083579A KR20160004721A KR 20160004721 A KR20160004721 A KR 20160004721A KR 1020140083579 A KR1020140083579 A KR 1020140083579A KR 20140083579 A KR20140083579 A KR 20140083579A KR 20160004721 A KR20160004721 A KR 20160004721A
Authority
KR
South Korea
Prior art keywords
redo log
database server
remote
local database
file
Prior art date
Application number
KR1020140083579A
Other languages
English (en)
Other versions
KR101605455B1 (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 KR1020140083579A priority Critical patent/KR101605455B1/ko
Publication of KR20160004721A publication Critical patent/KR20160004721A/ko
Application granted granted Critical
Publication of KR101605455B1 publication Critical patent/KR101605455B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

본 발명은 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템에 관한 것으로서, 로컬 데이터베이스 서버(Local Database Server)와, 상기 로컬 데이터베이스 서버에 트랜잭션(transaction)이 발생할 경우에 생성되는 리두 로그(Redo Log)를 이중화(Replication)하기 위한 원격지(Remote)를 포함하여 구성되는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템에 있어서, 상기 로컬 데이터베이스 서버는 데이터베이스(Database);와, 상기 로컬 데이터베이스 서버에 트랜잭션(Transaction)이 발생하면, 상기 트랜잭션에 상응하는 리두 로그(Redo Log)를 생성하여 원격지로 송신한 후, 상기 생성된 리두 로그를 상기 데이터베이스에 리두 로그 파일(Redo Log File)로 저장하도록 제어하는 로컬 제어부; 및 상기 로컬 제어부의 제어에 따라, 상기 리두 로그를 원격지로 송신하는 로컬 통신부;를 구비하고, 상기 원격지는 상기 로컬 데이터베이스 서버의 로컬통신부로부터 송신된 리두 로그를 수신하는 원격 통신부;와, 상기 원격 통신부를 통해 수신된 리두 로그를 리두 로그 파일로 저장하도록 제어하는 원격 제어부;와, 상기 원격 제어부의 제어에 따라, 리두 로그 파일을 저장하는 원격 저장부;를 구비하는 것을 특징으로 한다.

Description

데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템{Method for Replicationing of Redo Log without Data Loss and System Thereof}
본 발명은 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템에 관한 것으로서, 더욱 상세하게는 리두 로그가 생성되는 즉시 원격지로 송신하여 데이터 손실 없이 리두 로그(Redo Log)를 이중화(Replication)하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템에 관한 것이다.
최근, 기존의 데이터베이스 관리도구로 데이터를 수집, 저장, 관리, 분석할 수 있는 역량을 넘어서는 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 빅 데이터 처리 등 대용량 데이터베이스 관련 기술이 발전하고 있다.
따라서, 대용량의 데이터를 복제할 경우, 데이터량 폭증에 따른 종래 방법의 한계가 드러나게 되었다.
이에, 실시간 데이터전송에 따른 네트워크 대역폭을 작게 차지하면서도 효과적인 로그 기반의 CDC(Change Data Capture) 기법이 등장하게 되었는데, CDC 기법은 데이터의 변경사항이 기록된 로그만을 전송하여 네트워크부하 및 복제부하를 최소화할 수 있으며, 타임스탬프 기록이 필요하지 않고, 애플리케이션이나 데이터 테이블의 구조 변경이 필요하지 않다는 장점이 있어, 다수에 의해 사용되었다.
한편, CDC 기법을 적용하기 위해서는 리두 로그 파일(Redo Log File)을 필요로 하는데, 데이터베이스의 리두 로그 파일은 데이터베이스의 변경 혹은 운영 중에 발생 및 수행되는 트랜잭션(transaction) 또는 운영정보를 저장하는 파일로서, 데이터베이스의 복구에 사용된다. 이러한 리두 로그 파일은 실제 데이터베이스에 바로 기록하지 않고, 데이터 관련 정보를 나타내는 로그 부분에 먼저 기록하는 WAL(Write Ahead Log)에 따라, 데이터베이스에 해당 내용을 반영하기 전에 반드시 먼저 저장된다.
그러나, 기존의 리두 로그 파일을 이중화하는 방식은 리두 로그 파일 전체를 아카이빙(Archiving) 하거나 특정 시점에 대한 백업(Back Up)을 수행하는 방식이 전부였다. 이러한 방식은 리두 로그 파일의 특정 시점에 대해서만 데이터를 보장할 뿐, 최근 데이터에 대한 손실이 발생한다는 문제점이 있다.
또한, CDC(Change Data Capture)와 같은 리두 로그(Redo Log)를 분석하여 이중화를 수행하는 경우, 로컬(Local) 장비 또는 데이터베이스(Database)가 비정상 종료할 경우에 로컬 데이터베이스에 마지막 반영된 정보를 원격지에 반영하지 못한다는 단점이 있으며, 페일오버(Failover) 수행시 반영하지 못한 데이터는 손실된다는 문제점이 있다.
한국등록특허공보 제10-1086392호
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위해 안출된 것으로서, 본 발명의 목적은 데이터베이스에 운영중에 발생하는 트랜잭션에 의해 생성되는 리두 로그를 원격지로 실시간 송신하여 이중화(Replication)함으로써, 데이터베이스 시스템 운영중에 발생할 수 있는 비정상 운영 및 비정상 종료 등의 장애에 실시간 사전 대비할 수 있는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템을 제공하는 데 있다.
또한, 본 발명의 다른 목적은 데이터베이스 운영중에 트랜잭션이 발생하여 데이터가 변경될 경우, 데이터의 변경사항이 기록된 로그만을 전송하여 네트워크부하 및 복제부하를 최소화하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템을 제공하는 데 있다.
아울러, 본 발명의 또 다른 목적은 트랜잭션이 발생함에 따라 생성되는 리두 로그 파일을 해당 데이터베이스에 저장하기 전에 원격지로 먼저 송신하여 이중화함으로써, 장애 발생에 대한 복구(Recovery)를 수행할 시에 리두 로그 손실을 최소화하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템을 제공하는 데 있다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터베이스 시스템은, 로컬 데이터베이스 서버(Local Database Server)와, 상기 로컬데이터베이스에 트랜잭션(transaction)이 발생할 경우에 생성되는 리두 로그(Redo Log)를 이중화(Replication)하기 위한 원격지(Remote)를 포함하여 구성되는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템에 있어서, 상기 로컬 데이터베이스 서버는 데이터베이스(Database);와, 상기 로컬 데이터베이스 서버에 트랜잭션(Transaction)이 발생하면, 상기 트랜잭션에 상응하는 리두 로그(Redo Log)를 생성하여 원격지로 송신한 후, 상기 생성된 리두 로그를 상기 데이터베이스에 리두 로그 파일(Redo Log File)로 저장하도록 제어하는 로컬 제어부; 및 상기 로컬 제어부의 제어에 따라, 상기 리두 로그를 원격지로 송신하는 로컬 통신부;를 구비하고, 상기 원격지는 상기 로컬 데이터베이스 서버의 로컬통신부로부터 송신된 리두 로그를 수신하는 원격 통신부;와, 상기 원격 통신부를 통해 수신된 리두 로그를 리두 로그 파일로 저장하도록 제어하는 원격 제어부;와, 상기 원격 제어부의 제어에 따라, 리두 로그 파일을 저장하는 원격 저장부;를 구비하는 것을 특징으로 한다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터베이스 운영 방법은, 로컬 데이터베이스 서버(Local Database Server)와, 상기 로컬데이터베이스에 트랜잭션(transaction)이 발생할 경우에 생성되는 리두 로그(Redo Log)를 이중화(Replication)하기 위한 원격지(Remote)를 포함하여 구성되는 리두 로그 이중화 시스템의 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법에 있어서, 상기 로컬 데이터베이스 서버에 트랜잭션(Transaction)이 발생하면, 상기 로컬 데이터베이스 서버가 상기 트랜잭션에 상응하는 리두 로그(Redo Log)를 생성하는 단계; 상기 로컬 데이터베이스 서버가 상기 생성된 리두 로그를 원격지로 송신한 후, 리두 로그 파일(Redo Log File)을 저장하는 단계; 및 상기 원격지가 상기 로컬 데이터베이스 서버로부터 송신된 리두 로그를 파일을 수신하여 리두 로그 파일로 저장하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
이상에서 설명한 바와 같이, 본 발명에 따른 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템에 의하면, 하드웨어의 구성 및 구조에 대한 변경 없이, 단순한 처리과정(소프트웨어)의 변경을 통해, 보다 안정되고 복구가 용이한 데이터베이스 시스템을 손쉽게 제공할 수 있다는 효과가 있다.
또한, 본 발명의 일 실시예에 따른 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템에 의하면, 데이터의 변경사항이 기록된 로그만을 원격지로 전송함으로써, 네트워크부하 및 복제부하를 최소화시킬 수 있다는 효과가 있다.
아울러, 본 발명의 일 실시예에 따른 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템에 의하면, 트랜잭션이 발생함에 따라 변경된 데이터 및 관련정보를 이중화를 위한 원격지로 실시간 전송하여 저장함으로써, 데이터베이스의 비정상 운영 및 비정상 종료시에 발생하는 데이터 손실을 최소화할 수 있다는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 리두 로그 이중화를 위한 데이터베이스 시스템을 개략적으로 도시한 시스템도이다.
도 2는 본 발명의 일 실시예에 따른 리두 로그 이중화를 위한 로컬 데이터베이스 서버 및 원격지의 구성을 개략적으로 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 로컬 데이터베이스 서버에서 이루어지는 리두 로그 이중화 과정을 설명하기 위해 개략적으로 도시한 동작 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 원격지에서 이루어지는 리두 로그 이중화 과정을 설명하기 위해 개략적으로 도시한 동작 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 리두 로그 이중화 시스템에서 원격지의 리두 로그 파일이 손실 또는 손상된 경우, 원격지를 복구하는 방법을 설명하기 위해 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 리두 로그 이중화 시스템의 동작을 설명하기 위해 시스템 구성을 개략적으로 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 로컬 데이터베이스 서버 및 원격지 간에 이루어지는 리두 로그 이중화를 위한 데이터 송수신 동작을 설명하기 위해 도시한 도면이다.
이하, 본 발명의 바람직한 실시예들을 첨부한 도면들을 참조하여 상세히 설명하도록 한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명의 다양한 양상들이 아래에서 설명된다. 여기에서 제시되는 발명들은 폭넓은 다양한 형태들로 구현될 수 있으며, 여기에서 제시되는 임의의 특정한 구조, 기능 또는 이들 모두는 단지 예시적이라는 것을 이해하도록 한다. 여기에서 제시되는 발명들에 기반하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 여기에서 제시되는 하나의 양상이 임의의 다른 양상들과 독립적으로 구현될 수 있으며, 둘 이상의 이러한 양상들이 다양한 방식들로 결합될 수 있다는 것을 이해할 것이다. 예를 들어, 여기에서 설명되는 임의의 수의 양상들을 이용하여 장치가 구현될 수 있거나 또는 방법이 실시될 수 있다. 또한, 여기에서 설명되는 하나 이상의 양상들에 더하여 또는 이들 양상들이 아닌 다른 구조, 기능 또는 구조 및 기능을 이용하여 이러한 장치가 구현될 수 있거나 또는 이러한 방법이 실시될 수 있다.
본 명세서에서 데이터베이스(Database)란, 서로 관련된 데이터들을 컴퓨터가 처리할 수 있는 형태로 저장하는 시스템을 의미한다. 즉, 데이터베이스는 데이터를 보관하고 사용자의 물음에 대답하는 시스템이라고 볼 수 있는데, 상기 데이터베이스에 저장된 데이터는 끊임없이 변화할 수 있다. 다시 말해서, 데이터베이스는 이러한 외부의 변화에 맞추어 적절히 저장된 데이터를 변경시킬 수 있어야 하는데, 새로운 데이터를 저장하거나 기존의 데이터를 삭제, 변경시키는 작업을 수행하는 것을 특징으로 한다. 이때, 데이터베이스에 저장되는 데이터는 일관성을 유지해야 한다.
본 명세서에서 이중화(Replication)란, 시스템의 신뢰도와 가용성을 증대시키기 위해 동시에 여러 곳에 동일한 데이터를 저장하는 것을 의미한다. 즉, 데이터베이스를 이중화할 경우, 메인이 되는 데이터베이스에 장애가 발생해도 이중화되어 있는 원격지의 데이터를 투입하여 바로 서비스를 복구 가능하도록 구현될 수 있다. 특히, 인터넷 서비스를 하는 기업의 데이터베이스에는 쇼핑몰의 제품정보, 주문/결재내역 등을 비롯하여 언론사의 기사자료, 병원의 진료기록, 인터넷 커뮤니티 사이트의 게시판 자료 등 서비스에 필요한 각종 중요데이터들이 저장될 수 있는데, 해당 데이터베이스를 이중화할 경우, 늘어나는 사이트 접속자에 대응하여 부하를 분산시킬 수 있고, 서버에 장애가 발생해도 신속하게 서비스 복구가 가능하여 중단 없는 서비스를 제공할 수 있다.
본 명세서에서 트랜잭션(transaction)이란, 정보의 교환이나 데이터베이스 갱신 등 일련의 작업들에 대한 연속처리단위를 의미하며, 데이터베이스의 무결성이 보장되는 상태에서 요청된 작업을 완수하기 위한 작업의 기본 단위로 정의될 수도 있다. 예를 들어, 고객의 전화 주문을 받아 대리인이 주문 내용을 컴퓨터에 입력한다면, 데이터베이스로부터 재고량 조사, 주문 상품의 가용 여부 확인, 주문하기, 주문 상태 확인 등의 작업단계를 하나의 트랜잭션으로 볼 수 있는 것이다. 즉, 디지털 신호처리의 경우, 다수의 신호에 대한 처리를 동시에 병행하는 다중처리 방식이 취해지고 있는데, 트랜잭션은 각각의 독립적으로 처리되는 호에 관한 제어정보를 저장하기 위해 호에 대응하여 설계된 메모리 영역에서 각 처리 간 제어정보를 접수 및 관리할 수 있다. 따라서, 트랜잭션은 특정 작업처리를 위한 호에 상응하게 발생되며, 처리종료 후에는 다시 공백 상태로 되돌아가서 다른 호에 의하여 사용할 수 있다.
본 명세서에서 리두(Redo)란, 데이터베이스 운영중에 트랜잭션 또는 운영정보의 발생 등과 같이, 데이터 변경에 관련된 내용을 모두 기록해 두었다가 장애에 대비하는 기능을 의미한다. 즉, 리두(Redo)를 통해 복구할 수 있는 장애로는 물리적으로 디스크가 깨지는 Media Fail 발생 시에 데이터베이스 복구를 위해 사용되는 데이터베이스 복구(Media recovery) 기능과, 인스턴스(Instance)가 비정상적으로 종료됐을 때 트랜잭션 데이터의 유실에 대비하기 위한 인스턴스 복구(Instance Recovery) 기능 및 트랜잭션 발생시에 우선 변경사항을 리두 로그(Redo log)에 기록하고, 메모리 데이터블록과 데이터 파일 간 동기화는 나중에 일괄적으로 수행하는 패스트 커밋(Fast Commit) 기능 등을 포함할 수 있다.
본 명세서에서 리두 로그 파일(Redo Log File)이란, 운영중인 데이터베이스 시스템 내에서 발생하는 장애에 대처하기 위해 저장되는 각종 정보인 리두 로그(Redo Log)를 정식으로 기록해두는 파일을 의미한다. 즉, 특정 데이터를 장애 발생 직전의 상태로 복원(Recovery)시키기 위해 필요한 데이터를 포함하는 파일로서, 예를 들어, 트랜잭션이 발생함에 따라 변경되는 데이터, 트랜잭션이 발생한 시점, 처리 시간, 데이터 변경 및 처리 내역 등 구체적인 내용을 포함할 수 있다.
본 명세서에서 버퍼(Buffer)란, 데이터 이중화를 위해 데이터베이스에서 원격지로 로그 데이터를 전송할 경우, 양자 간 데이터의 전송속도 혹은 처리속도 차이를 보상하여 양호하게 결합시키기 위한 목적으로 사용되는 기억영역을 의미한다. 예를 들어, 데이터베이스로부터 로그 데이터가 수신되면, 원격지는 수신된 로그 데이터를 복사(Copy)하여 버퍼에 임시 저장한 후, 리두 로그 파일(Redo Log File)로 저장할 수 있다. 이때, 로그 데이터가 버퍼에 임시로 저장되어 있는 동안, 로그 데이터의 전송속도 및 처리속도가 보상되어 전체적인 시스템 성능이 향상될 수 있다.
본 발명에서 원격지 복구(Recovery)란, 이중화 운영 중에 원격지에서 손실 혹은 손상되는 리두 로그 파일을 복구하는 것을 의미한다. 예를 들어, 원격지의 전원이 Off되는 경우, 해당 시점 동안은 로컬 데이터베이스 서버로부터 실시간 송신되는 리두 로그를 수신할 수 없다. 따라서, 해당 시점 동안의 리두 로그가 원격지에 저장되어 있지 않으므로, 유실된 데이터를 확인하여 상기 로컬 데이터베이스 서버로부터 다시 가져오는 과정을 수행하여 원격지의 리두 로그 파일을 복구할 수 있다.
이하에서는, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 리두 로그 이중화를 위한 데이터베이스 시스템을 개략적으로 도시한 시스템도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터베이스 시스템은 로컬 데이터베이스 서버(110) 및 원격지(120)를 포함하여 구성될 수 있다. 상기 로컬 데이터베이스 서버(110)는 특정 서비스를 운영하는 서버를 포함할 수 있고, 상기 원격지(120)는 장애 및 사고 등에 대비하여 로컬 데이터베이스 서버(110)의 안전성을 향상시키기 위해 이중화(Replication)되는 타겟(Target) 장치로서, 하드웨어(H/W) 또는 소프트웨어(S/W) 형태로 구현될 수 있다. 한편, 상기 로컬 데이터베이스 서버(110)는 (a)과정과 같이, 외부로부터 입력되는 명령을 수신하고, 상기 명령에 대응되는 피드백을 출력할 수 있다. 그리고, 원격지(120)는 상기 로컬 데이터베이스 서버(110)에 저장되어 있는 데이터를 이중화(Replication)하기 위한 시스템을 포함할 수 있다. 이때, (b)과정은 로컬 데이터베이스 서버(110)의 이중화 방향을 나타내는 것으로서, 로컬 데이터베이스로부터 원격지로 단방향에 의해서만 이루어진다. 그리고 (c)과정은 로컬 데이터베이스 서버(110)와 원격지(120) 간의 통신 방향을 나타내는 것으로서, 양방향으로 이루어질 수 있다. 예를 들어, 상기 (c)과정은 장애 복구를 위해 로컬 데이터베이스 서버(110)가 원격지(120)와 데이터를 송수신하는 모든 과정을 포함할 수 있다.
따라서, 본 발명에 따른 리두 로그 이중화 시스템은, 데이터베이스 서버에 트랜잭션이 발생하면, 그에 대응되는 리두 로그를 생성하여 특정 원격지에 우선적으로 송신 및 저장하여 이중화함으로써, 예기치 못한 장애가 발생할 경우에 원격지에 이중화되어 있는 리두 로그를 이용해 데이터베이스를 복구하여 데이터 손실을 최소화할 수 있다는 장점이 있다.
또한, 본 발명에 따른 리두 로그 이중화 시스템은, 데이터베이스 서버에 트랜잭션이 발생하면, 트랜잭션과 관련한 변경사항을 리두 로그로 생성하고 원격지로 전송하여 이중화시킴으로써, 데이터 변경사항이 기록된 로그만을 원격지로 전송함으로써, 네트워크부하 및 복제부하를 최소화시킬 수 있다는 장점이 있다.
도 2는 본 발명의 일 실시예에 따른 리두 로그 이중화를 위한 로컬 데이터베이스 서버 및 원격지의 구성을 개략적으로 도시한 블록도이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 리두 로그 이중화를 위한 데이터베이스 시스템은 로컬 데이터베이스 서버(210) 및 상기 로컬데이터베이스 서버(210)에 트랜잭션(transaction)이 발생할 경우에 생성되는 리두 로그(Redo Log)를 이중화(Replication)하기 위한 원격지(220)를 포함하여 구성될 수 있다.
상기 로컬 데이터베이스 서버(210)는 로컬 제어부(211), 데이터베이스(212) 및 로컬 통신부(213)를 포함하여 구성될 수 있다.
상기 로컬 제어부(211)는 로컬 데이터베이스 서버에 트랜잭션(Transaction)이 발생하면, 상기 트랜잭션에 상응하는 리두 로그(Redo Log)를 생성하여 원격지로 송신한 후, 상기 생성된 리두 로그를 상기 데이터베이스에 리두 로그 파일(Redo Log File)로 저장하도록 제어할 수 있다. 즉, 상기 로컬 제어부(211)는 로컬 데이터베이스 서버에 트랜잭션이 발생하여 데이터가 변경된 경우, 장애 및 사고에 대비하여 상기 데이터의 변경사항이 기록된 리두 로그를 생성할 수 있다. 그리고 상기 로컬 제어부(211)는 상기 생성된 리두 로그를 이중화하기 위해 원격지에 먼저 송신한 다음, 로컬 데이터베이스 서버의 데이터베이스(212)에 저장하도록 제어할 수 있다. 이때, 상기 로컬 제어부(211)는 생성된 리두 로그를 버퍼(Buffer)에 복사하여 임시로 저장하였다가, 데이터베이스(212)에 리두 로그 파일(Redo Log File)로 정식으로 저장하도록 제어할 수도 있다. 다시 말해서, 상기 로컬 제어부(211)는 해당 트랜잭션이 데이터베이스에 반영되기 전에 리두 로그를 먼저 생성하여 원격지(220)로 송신함으로써, 원격지(220)에 이중화된 데이터가 트랜잭션이 발생한 후 가장 최초로 발생한 데이터가 되도록 유지할 수 있다.
상기 데이터베이스(212)는 상기 로컬 제어부(211)의 제어에 따라, 로컬 제어부(211)를 통해 생성된 리두 로그를 파일로 정식 저장할 수 있다. 또한, 상기 데이터베이스(212)는 로컬 데이터베이스 서버에 구비되는 것으로서, 로컬 데이터베이스 서버에 필요한 각종 데이터를 저장할 수 있다.
상기 로컬 통신부(213)는 로컬 제어부(211)의 제어에 따라, 생성된 리두 로그를 원격지로 송신할 수 있다. 상기 로컬 통신부(213)는 유/무선 통신 방식으로 구현될 수 있다. 상기 로컬 통신부(213)는 이중화를 위해 생성된 리두 로그를 원격지(220)로 송신하고, 추후에 원격지(220)로부터 송신되는 리두 로그 처리결과에 관련된 정보들을 수신할 수 있다. 또한, 상기 로컬 통신부(213)는 추후 데이터 복구 과정에서 필요한 각종 데이터 및 정보들을 더 수신할 수 있다.
한편, 상기 원격지는 원격 통신부(221), 원격 제어부(222) 및 원격 저장부(223)를 포함하여 구성될 수 있다.
상기 원격 통신부(221)는 로컬 데이터베이스 서버(210)에 구비된 로컬 통신부(213)로부터 리두 로그를 수신하여 원격 제어부(222)로 전달할 수 있다. 상기 원격 통신부(221)는 로컬 데이터베이스 서버(210)와 원격지(220) 간의 통신을 지원하는 것으로서, 이중화 및 복구 전반에 사용되는 데이터 송/수신 처리에 관여할 수 있다.
상기 원격 제어부(222)는 원격 통신부(221)로부터 전달받은 리두 로그를 저장부에 저장하도록 제어할 수 있다. 이때, 상기 원격 제어부(222)은 동기(Sync) 또는 비동기(Async) 방식으로 상기 리두 로그를 저장할 수 있는데, 비동기(Async) 방식으로 리두 로그를 저장할 경우는 상기 리두 로그를 버퍼에 복사하여 임시저장하였다가 원격 저장부(223)에 리두 로그 파일로 정식 저장할 수 있다. 반면, 동기(Sync) 방식으로 리두 로그를 저장할 경우는 버퍼에 임시저장하는 과정을 거치지 않고 직접 리두 로그 파일로 저장할 수 있다. 상기 동기화 혹은 비동기화 방식으로 리두 로그를 저장하는 방법은 로컬 데이터베이스 서버(210)의 데이터베이스(220)에도 적용될 수 있으며, 해당 과정에 대해서는 도 4에서 더욱 상세하게 설명하기로 한다.
상기 원격 저장부(223)는 원격 제어부(222)의 제어에 따라, 리두 로그를 파일로 저장할 수 있다. 이때, 상기 원격 저장부(223)는 로컬 데이터베이스 서버(210)의 데이터와 동일한 구조의 데이터를 저장하는 것으로서, 상기 데이터를 카테고리별 테이블 형태로 구분 및 저장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 로컬 데이터베이스 서버에서 이루어지는 리두 로그 이중화 과정을 설명하기 위해 개략적으로 도시한 동작 흐름도이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 로컬 데이터베이스 서버는
로컬 데이터베이스 서버에 특정 트랜잭션이 발생할 경우, 해당 트랜잭션에 대응되는 리두 로그를 생성하여 원격지에 우선적으로 전송하여 저장할 수 있다.
우선, 로컬 데이터베이스 서버에 트랜잭션이 발생하면, 로컬 데이터베이스 서버가 리두 로그를 생성할 수 있다[S310, S320]. 즉, 로컬 데이터베이스 서버에 데이터베이스 운영 중에 운영정보의 발생 등과 같이 데이터 변경에 의한 트랜잭션이 발생하면, 상기 로컬 데이터베이스 서버는 추후에 발생할지도 모르는 장애나 사고에 대비하여 데이터 변경에 관련된 리두 로그(Redo Log)를 생성하여 이중화(Replication)를 위한 장비(즉, 원격지)로 송신할 수 있다. 상기 리두 로그는 데이터 변경에 관련된 관련정보를 포함할 수 있으며, 상기 로컬 데이터베이스 서버는 상기 발생한 트랜잭션이 데이터베이스에 반영되기 전에 리두 로그를 먼저 생성하여 원격지로 송신할 수 있다.
그리고 이중화 수행이 요구되면, 상기 로컬 데이터베이스 서버는 상기 생성된 리두 로그를 원격지로 송신한 다음, 해당 리두 로그를 데이터베이스에 저장할 수 있다[S330, S340, S350]. 즉, 로컬 데이터베이스 서버는 생시 생성된 리두 로그를 해당 데이터베이스에 저장하기 전에 먼저 원격지로 송신한 후 리두 로그 파일(Redo Log File)로 정식 저장할 수 있다. 이에, 추후에 로컬 데이터베이스에 장애 혹은 사고가 발생할 경우, 원격지에 이중화시켜 둔 리두 로그를 이용해 시스템을 복구함으로써, 데이터의 유실 없이 가장 최근의 데이터(시스템 장애 전에 저장된 가장 최근 데이터)를 복원할 수 있다. 이때, 상기 로컬 데이터베이스 서버는 상기 리두 로그를 원격지로 송신하기 전에 해당 시스템의 버퍼에 리두 로그를 복사하여 임시 저장할 수도 있다.
이후, 원격지로부터 상기 전송된 리두 로그에 대한 처리결과가 수신되면, 로컬 데이터베이스 서버는 상기 전송된 처리결과를 확인한 후, 트랜잭션을 종료할 수 있다[S360, S370, S380], 즉, 로컬 데이터베이스 서버는 상기 리두 로그를 이중화한 원격지로부터 리두 로그 처리결과에 대해 수신하여 해당 트랜잭션을 종료할 수 있다. 이때, 상기 원격지로부터 수신된 리두 로그 처리 결과가 수신되면, 상기 로컬 데이터베이스 서버는 데이터베이스에 파일로 저장한 리두 로그의 LSN(Log Sequence Number)과 원격지에서 처리되어 수신된 LSN을 비교하여 정상적으로 처리되었을 경우에 해당 트랜잭션을 종료할 수 있다. 만약 비교결과, 로컬 데이터베이스 서버의 LSN과 원격지로부터 수신한 LSN이 같지 않을 경우, 상기 트랜잭션은 대기를 지속하여 계속 비교를 수행할 수 있다. 한편, 원격지로부터 리두 로그 처리결과가 수신되지 않을 경우, 상기 로컬 데이터베이스 서버는 해당 트랜잭션을 종료시키지 않은 상태에서 처리결과의 수신을 계속 대기할 수 있다.
상기한 바와 같이, 본 발명에 따른 리두 로그(Redo Log) 이중화의 경우, 데이터베이스 운영중에 수행되는 트랜잭션(transaction) 및 운영정보를 저장하는 리두 로그 파일(Redo Log File)을 이용하여 데이터베이스를 복구할 수 있는데, 이러한 리두 로그 파일은 WAL(Write Ahead Log)에 따라 데이터베이스에 변경된 내용을 반영하기 전에 반드시 먼저 저장하여, 예고 없이 발생하는 시스템 장애에 항시 대비할 수 있다는 장점이 있다.
도 4는 본 발명의 일 실시예에 따른 원격지에서 이루어지는 리두 로그 이중화 과정을 설명하기 위해 개략적으로 도시한 동작 흐름도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 원격지는 로컬 데이터베이스 서버로부터 이중화를 위해 생성되는 리두 로그를 수신 및 저장하여 추후 발생할 수 있는 사고나 장애에 사전 대비할 수 있다.
우선, 로컬 데이터베이스 서버로부터 리두 로그가 송신되면, 원격지가 이를 수신할 수 있다[S410]. 상기 리두 로그는 로컬 데이터베이스 서버에 트랜잭션이 발생한 경우 생성되어 상기 로컬 데이터베이스 서버에 저장되기 전에 먼저 원격지로 송신될 수 있다. 즉, 상기 리두 로그는 상기 로컬 데이터베이스 서버는 상기 발생한 트랜잭션이 데이터베이스에 반영되기 전에 생성된 것이다.
이때, 상기 원격지가 상기 로컬 데이터베이스 서버로부터 수신한 리두 로그를 동기(Sync) 방식으로 저장하고자 하는 경우, 상기 원격지는 리두 로그를 파일로 저장할 수 있다[S420, S450]. 즉, 상기 원격지의 저장방식이 동기 방식으로 설정되어 있을 경우, 상기 원격지는 리두 로그를 곧바로 리두 로그 파일로 저장할 수 있다. 상기 리두 로그 파일은 추후 복구를 위해 사용되는 파일로서, 아카이빙(Archiving)되어 있는 파일을 포함할 수 있다. 그리고 상기 저장방식은 원격지를 최초 세팅할 경우 설정되거나, 혹은 사용자에 의해 실시간으로 설정될 수 있다.
한편, 상기 원격지가 리두 로그를 비동기(Async) 방식으로 저장하고자 하는 경우, 상기 원격지는 상기 리두 로그를 버퍼(buffer)에 우선 복사하였다가, 해당 버퍼가 풀(Full) 상태가 되면 리두 로그를 파일로 정식 저장할 수 있다[S420, S430, S440, S450]. 즉, 상기 원격지의 저장방식이 비동기 방식으로 설정되어 있을 경우, 상기 원격지는 리두 로그를 복사하여 버퍼에 임시로 저장할 수 있다. 이때, 버퍼가 풀(Full) 상태인 경우, 버퍼에 있는 내용을 파일로 저장할 수 있다.
다시 말해서, 리두 로그를 파일로 저장할 때에는 많은 시간이 소요되는데, 일반적으로 같은 데이터를 여러 번에 나누어 파일로 저장하는 것보다 한번에 파일로 저장하는 것이 시간이 훨씬 적게 소요될 수 있다. 이때, 상기 시간은 단순히 리두 로그를 저장하기 위한 시간이기도 하지만, 원격지의 처리결과를 대기하고 있는 시간도 포함할 수 있기 때문에, 동기 방식과 비동기 방식에는 성능의 차이가 발생하게 된다. 즉, 동기(Sync) 방식의 경우에는 로컬 데이터베이스 서버의 리두 로그 파일과 원격지의 리두 로그 파일이 순간적으로 동일하게 유지된 상태에서 이중화가 유지될 수 있으며, 비동기(Async) 방식의 경우에는 순간적으로는 다를 수 있지만, 일정 시간이 지난 후에는 로컬 데이터베이스 서버와 원격지의 리두 로그 파일이 동일하게 유지될 수 있다.
그런 다음, 상기 원격지는 리두 로그 처리결과를 로컬 데이터베이스 서버로 송신할 수 있다[S460]. 즉, 상기 원격지는 리두 로그를 파일로 저장한 후, 해당 결과를 로컬 데이터베이스 서버로 송신할 수 있다.
도 5는 본 발명의 일 실시예에 따른 리두 로그 이중화 시스템에서 원격지의 리두 로그 파일이 손실 또는 손상된 경우, 원격지를 복구하는 방법을 설명하기 위해 도시한 도면이다.
도 5에 도시된 바와 같이, 본 발명에 따른 리두 로그 이중화 시스템은 원격지에 사고 또는 장애가 발생할 경우, 로컬 데이터베이스 서버의 동작만으로 상기 원격지에 저장되는 리두 로그 파일을 복구할 수 있다.
우선, 로컬 데이터베이스 서버가 원격지에 리두 로그 파일의 상태정보를 요청하여 수신할 수 있다[S510]. 즉, 원격지가 이중화 운영 중에 종료될 수 있는데, 이때, 로컬 데이터베이스 서버는 상기 원격지로부터 리두 로그 파일의 상태정보를 수신하여 수신된 상태정보를 근거로 이중화를 재시도하여 상기 원격지를 복구(Recovery)할 수 있다. 상기 상태정보는 이중화를 위해 원격지에 저장되어 있는 리두 로그 파일의 마지막 상태를 의미하는 것으로서, 이는 원격지에 반영되지 못한 리두 로그의 복구 시작지점을 얻기 위한 정보이다.
이때, 상기 원격지로부터 수신된 리두 로그 파일의 상태정보에 로컬 데이터베이스 서버의 리두 로그 파일이 모두 반영되어 있다면, 상기 로컬 데이터베이스 서버는 버퍼에 저장되어 있는 리두 로그가 파일로 저장되지 못하도록 파일을 잠금 설정하고, 이중화 수행 여부를 변경한 후에 파일을 잠금 해제할 수 있다[S520, S530, S540, S550]. 즉, 상기 원격지로부터 수신되는 리두 로그 파일의 상태정보가 상기 로컬 데이터베이스 서버의 리두 로그 파일을 모두 반영하고 있을 경우, 상기 로컬 데이터베이스 서버는 일반적인 이중화 처리과정을 거치기 위해 이중화 수행 여부를 변경할 수 있다. 이때, 상기 이중화 수행 여부를 변경하는 동안에는 이중화 처리과정을 거치기 위해 버퍼에 복사되어 있는 리두 로그가 파일로 저장되지 않도록 버퍼 또는 리두 로그 파일을 잠금 설정할 수 있다. 이는, 이중화 수행 여부를 변경하는 도중에 버퍼의 내용이 파일로 저장되어 이중화되는 파일의 상태가 동일하지 않게 되는 것을 방지하기 위해 수행할 수 있다. 다시 말해서, 로컬 데이터베이스 서버는 복구를 수행하지만, 원격지에서는 해당 과정이 복구를 위한 과정인지 일반적인 운영과정인지 구분할 수 없으므로, 원격지에서는 수신된 데이터를 저장하고 처리된 결과를 송신하는 과정을 반복하는 방식으로 일반 처리과정과 동일하게 동작할 수 있다. 그리고 이중화 수행 여부가 변경된 이후에는 버퍼의 내용을 파일로 저장할 수 있도록 잠금을 해제할 수 있는데, 이에, 잠금이 해제된 이후에는 리두 로그 파일로 저장되는 내용은 이중화 과정을 수행하는데 사용될 수 있다.
한편, 상기 원격지로부터 수신되는 리두 로그 파일의 상태정보가 상기 로컬 데이터베이스 서버의 리두 로그 파일을 모두 반영하고 있지 않을 경우, 상기 로컬 데이터베이스 서버는 상기 상태정보에 대응되는 리두 로그 파일을 읽어 상기 원격지로 재전송할 수 있다[S520, S560]. 즉, 상기 로컬 데이터베이스 서버가 원격지로부터 수신된 리두 로그 파일의 상태정보를 분석할 수 있다. 그리고 분석결과, 로컬 데이터베이스 서버의 리두 로그 파일이 원격지에 모두 반영되어 있다고 판단되지 않으면, 상기 로컬 데이터베이스 서버는 이중화를 다시 수행하기 위해 리두 로그를 원격지로 재송신할 수 있는데, 상기 로컬 데이터베이스 서버로부터 재송신되는 리두 로그 파일은 온라인(Online) 리두 로그 파일 또는 아카이빙(Archiving)되어 있는 파일을 포함할 수 있다. 이때, 상기 로컬 데이터베이스 서버는 상기 원격지로 재송신하기 위한 리두 로그의 LSN(Log Sequence Number)과 수신을 위한 LSN을 비교하여 둘이 동일할 경우에 해당 과정을 수행할 수 있다.
상기한 바와 같이, 본 발명의 일 실시예에 따른 리두 로그 이중화 시스템은 원격지에 사고 또는 장애가 발생하여 데이터가 유실되는 경우에도, 로컬 데이터베이스 서버의 동작만으로 원격지를 복구할 수 있으므로, 원격지에서는 처리과정의 변화 없이 일반적인 과정으로 데이터를 처리하기만 하면 된다는 장점이 있다.
도 6은 본 발명의 일 실시예에 따른 리두 로그 이중화 시스템의 동작을 설명하기 위해 시스템 구성을 개략적으로 도시한 도면이고, 도 7은 본 발명의 일 실시예에 따른 로컬 데이터베이스 서버 및 원격지 간에 이루어지는 리두 로그 이중화를 위한 데이터 송수신 동작을 설명하기 위해 도시한 도면이다.
이하에서는, 도 6에 도시된 데이터베이스 시스템을 참조로, 도 7에 도시된 데이터베이스 시스템의 리두 로그 이중화를 위한 데이터 송수신 동작을 설명하기로 한다.
우선, 도 6에 도시된 바와 같이, 본 발명에 따른 데이터베이스 시스템(611)은 리두 로그 버퍼(612) 및 리두 로그 파일(613)을 포함하여 구성될 수 있고, 원격지(620)는 리시버(621), 버퍼(622) 및 리두 로그 파일(623)를 포함하여 구성될 수 있다. 상기 리두 로그 버퍼(612, 622) 및 리두 로그 파일(613, 623)은 테이블 형태로 구현되어 상기 데이터베이스(610) 내에 존재할 수 있다.
도 5에 도시된 바와 같이, 본 발명에 따른 이중화된 데이터베이스 시스템은, 상기 데이터베이스에 트랜잭션이 발생하면, 상기 트랜잭션에 상응하는 로그 데이터(Log Data)를 생성한다[S710, S711]. 상기 트랜잭션은 정보의 교환이나 데이터베이스 갱신 등 일련의 작업에 대한 처리 과정을 포함할 수 있다. 그리고 상기 로그 데이터는 운영중인 데이터베이스 시스템 내에 발생할 수 있는 장애에 대처하기 위해 저장되는 각종 정보를 포함할 수 있다.
이후, 상기 데이터베이스(610)는 데이터베이스(610)를 이중화하기 위해 상기 생성된 로그 데이터를 원격지(620)로 송신할 수 있다[S712, S713, S714].
그러면, 상기 원격지(620)는 리시버(621)를 통해 수신된 로그 데이터를 버퍼(622)에 복사(Copy)한 후, 리두 로그 파일로 저장한다[S715(b), S715(c)]. 이때, 상기 버퍼(622)는 데이터베이스(610)와 원격지(620) 간의 데이터 전송속도 혹은 처리속도 차이를 보상하기 위해 상기 로그 데이터를 복사하여 임시로 저장하는 공간으로서, 데이터베이스 시스템의 성능을 향상시킬 수 있다. 그리고, 상기 리두 로그 파일(623)은 장애로부터 복원하고자하는 데이터(즉, 로그 데이터)를 디스크에 정식으로 기록해두는 파일로서, 트랜잭션이 발생함에 따라 변경되는 데이터, 트랜잭션이 발생한 시점, 처리 시간, 데이터 변경 및 처리 내역 등의 구체적인 내용을 포함할 수 있다.
한편, 상기 데이터베이스(610)는 원격지(620)로 로그 데이터를 송신한 후, 자신의 테이블에도 로그 데이터를 저장할 수 있다. 이때, 상기 데이터베이스(610)는 상기 원격지(620)와 동일한 방법으로 상기 로그 데이터를 로그 데이터 버퍼(612)에 복사하여 임시 저장하였다가 로그 데이터 파일(613)로 저장할 수 있다[S715(a)]. 이때, 상기 데이터베이스(610) 및 원격지(620)를 통해 이루어지는 S715(a) 단계는 S715(b) 단계 및 S715(c) 단계와 동시에 이루어질 수 있다.
이후, 상기 원격지(620)로부터 처리결과가 수신되면, 상기 데이터베이스(610)는 처리결과를 확인한 후, 트랜잭션을 종료할 수 있다[S716, S717, S718]. 즉, 상기 원격지(620)로부터 수신된 처리결과, 상기 원격지(620)에 리두 로그 파일이 제대로 저장되었을 경우, 상기 원격지(620)는 그에 해당하는 긍정적인 메시지를 상기 데이터베이스(610)로 전송할 수 있다. 그러면, 상기 데이터베이스(610)는 상기 원격지(620)로부터 전송된 메시지를 근거로 트랜잭션을 종료하여 이후에 발생하는 또 다른 트랜잭션을 실행하도록 준비할 수 있다.
상기한 바와 같이, 본 발명에 따른 데이터 이중화의 경우, 데이터베이스 운영중에 수행되는 트랜잭션(transaction) 및 운영정보를 저장하는 리두 로그 파일(Redo Log File)을 이용하여 데이터베이스를 복구할 수 있는데, 이러한 리두 로그 파일은 WAL(Write Ahead Log)에 따라 데이터베이스에 변경된 내용을 반영하기 전에 반드시 먼저 저장하여 예고 없이 발생하는 시스템 장애에 항시 대비할 수 있다는 장점이 있다.
상기한 바와 같이, 본 발명에 따르면, 트랜잭션 발생 전에 마지막으로 반영된 데이터는 항상 원격지에 저장되어 있기 때문에, 원격지에 저장된 이중화 데이터를 이용하여 복구할 경우 데이터 손실을 방지할 수 있다는 장점이 있다.
또한, 본 발명에 따르면, 원격지에 이중화된 리두 로그는 로컬 데이터베이스 서버의 리두 로그와 동일하므로, 로컬 데이터베이스 서버의 리두 로그가 손실 또는 손상되는 경우에 원격지의 리두 로그를 사용하여 데이터 손실 없는 복구가 가능하다는 장점이 있다.
이상과 같이, 본 발명에서는 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 의해 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
610 : 로컬 데이터베이스 서버 620 : 원격지
611 : 데이터베이스 621 : 리시버
612 : 로컬 버퍼 622 : 원격 버퍼
613 : 로컬 리두 로그 파일 623 : 원격 리두 로그 파일

Claims (24)

  1. 로컬 데이터베이스 서버(Local Database Server)와, 상기 로컬 데이터베이스 서버에 트랜잭션(transaction)이 발생할 경우에 생성되는 리두 로그(Redo Log)를 이중화(Replication)하기 위한 원격지(Remote)를 포함하여 구성되는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템에 있어서,
    상기 로컬 데이터베이스 서버는
    데이터베이스(Database);와,
    상기 로컬 데이터베이스 서버에 트랜잭션(Transaction)이 발생하면, 상기 트랜잭션에 상응하는 리두 로그(Redo Log)를 생성하여 원격지로 송신한 후, 상기 생성된 리두 로그를 상기 데이터베이스에 리두 로그 파일(Redo Log File)로 저장하도록 제어하는 로컬 제어부; 및
    상기 로컬 제어부의 제어에 따라, 상기 리두 로그를 원격지로 송신하는 로컬 통신부;를 구비하고,
    상기 원격지는
    상기 로컬 데이터베이스 서버의 로컬통신부로부터 송신된 리두 로그를 수신하는 원격 통신부;와,
    상기 원격 통신부를 통해 수신된 리두 로그를 리두 로그 파일로 저장하도록 제어하는 원격 제어부;와,
    상기 원격 제어부의 제어에 따라, 리두 로그 파일을 저장하는 원격 저장부;를 구비하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  2. 제 1 항에 있어서,
    상기 로컬 데이터베이스 서버의 로컬 제어부는
    상기 발생한 트랜잭션이 데이터베이스에 반영되기 전에 상기 생성된 리두 로그를 원격지로 송신하도록 제어하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  3. 제 1 항에 있어서,
    상기 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템은
    상기 리두 로그를 트랜잭션별로 저장 및 관리하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  4. 제 1 항에 있어서,
    상기 로컬 데이터베이스 서버는
    상기 로컬 통신부를 통해 원격지로부터 리두 로그 처리결과가 수신되면,
    상기 제어부가 해당 트랜잭션을 종료하도록 제어하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  5. 제 1 항에 있어서,
    상기 로컬 데이터베이스 서버 및 상기 원격지는
    상기 생성된 리두 로그를 동기(Sync) 방식 또는 비동기(Async) 방식 중 어느 하나의 방식으로 저장하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  6. 제 5 항에 있어서,
    상기 동기(Sync) 방식은
    상기 생성된 리두 로그를 곧바로 리두 로그 파일로 저장하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  7. 제 5 항에 있어서,
    상기 비동기(Async) 방식은
    상기 생성된 리두 로그를 리두 로그를 파일로 저장하기 전에 버퍼에 임시 복사(Copy)하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  8. 제 1 항에 있어서,
    상기 원격지가 이중화 운영 중에 종료되었을 경우,
    상기 로컬 데이터베이스 서버는 상기 원격지로부터 리두 로그 파일의 상태정보를 수신하여 수신된 상태정보를 근거로 이중화를 재시도함으로써, 상기 원격지를 복구(Recovery)하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  9. 제 8 항에 있어서,
    상기 원격지로부터 수신되는 리두 로그 파일의 상태정보가 상기 로컬 데이터베이스 서버의 리두 로그 파일을 모두 반영하고 있을 경우,
    상기 로컬 데이터베이스 서버는
    일반적인 이중화 처리과정을 거치기 위해 이중화 수행 여부를 변경하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  10. 제 9 항에 있어서,
    상기 이중화 수행 여부를 변경하는 동안에는
    이중화 처리과정을 거치기 위해 버퍼에 복사되어 있는 리두 로그가 파일로 저장되지 않도록 버퍼를 잠금 설정하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  11. 제 8 항에 있어서,
    상기 원격지로부터 수신되는 리두 로그 파일의 상태정보가 상기 로컬 데이터베이스 서버의 리두 로그 파일을 모두 반영하고 있지 않을 경우,
    상기 로컬 데이터베이스 서버는
    상기 상태정보에 대응되는 리두 로그 파일을 상기 원격지로 재전송하여 원격지를 복구하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  12. 제 11 항에 있어서,
    상기 로컬 데이터베이스 서버로부터 재전송되는 리두 로그 파일은 온라인(Online) 리두 로그 파일 또는 아카이빙(Archiving) 되어 있는 파일 중 어느 하나인 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 시스템.
  13. 로컬 데이터베이스 서버(Local Database Server)와, 상기 로컬 데이터베이스 서버에 트랜잭션(transaction)이 발생할 경우에 생성되는 리두 로그(Redo Log)를 이중화(Replication)하기 위한 원격지(Remote)를 포함하여 구성되는 리두 로그 이중화 시스템의 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법에 있어서,
    상기 로컬 데이터베이스 서버에 트랜잭션(Transaction)이 발생하면, 상기 로컬 데이터베이스 서버가 상기 트랜잭션에 상응하는 리두 로그(Redo Log)를 생성하는 단계;
    상기 로컬 데이터베이스 서버가 상기 생성된 리두 로그를 원격지로 송신한 후, 리두 로그 파일(Redo Log File)을 저장하는 단계; 및
    상기 원격지가 상기 로컬 데이터베이스 서버로부터 송신된 리두 로그를 파일을 수신하여 리두 로그 파일로 저장하는 단계를 포함하여 이루어지는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  14. 제 11 항에 있어서,
    상기 로컬 데이터베이스 서버는
    상기 발생한 트랜잭션이 데이터베이스에 반영되기 전에 상기 생성된 리두 로그를 원격지로 송신하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  15. 제 11 항에 있어서,
    상기 리두 로그 이중화 시스템은
    상기 리두 로그를 트랜잭션별로 저장 및 관리하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  16. 제 11 항에 있어서,
    상기 리두 로그 이중화 방법은,
    상기 로컬 데이터베이스 서버가
    상기 원격지로부터 리두 로그 처리결과가 수신되면, 해당 트랜잭션을 종료하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  17. 제 11 항에 있어서,
    상기 로컬 데이터베이스 서버 및 상기 원격지는
    상기 생성된 리두 로그를 동기(Sync) 방식 또는 비동기(Async) 방식 중 어느 하나의 방식으로 저장하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  18. 제 17 항에 있어서,
    상기 동기(Sync) 방식은
    상기 생성된 리두 로그를 곧바로 리두 로그 파일로 저장하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  19. 제 17 항에 있어서,
    상기 비동기(Async) 방식은
    상기 생성된 리두 로그를 리두 로그를 파일로 저장하기 전에 버퍼에 임시 복사(Copy)하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  20. 제 11 항에 있어서,
    상기 원격지가 이중화 운영 중에 종료될 경우,
    상기 로컬 데이터베이스 서버는 상기 원격지로부터 리두 로그 파일의 상태정보를 수신하여 수신된 상태정보를 근거로 이중화를 재시도함으로써, 상기 원격지를 복구(Recovery)하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  21. 제 20 항에 있어서,
    상기 원격지로부터 수신되는 리두 로그 파일의 상태정보가 상기 로컬 데이터베이스 서버의 리두 로그 파일을 모두 반영하고 있을 경우,
    상기 로컬 데이터베이스 서버는
    일반적인 이중화 처리과정을 거치기 위해 이중화 수행 여부를 변경하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  22. 제 21 항에 있어서,
    상기 이중화 수행 여부를 변경하는 동안에는
    이중화 처리과정을 거치기 위해 버퍼에 복사되어 있는 리두 로그가 파일로 저장되지 않도록 버퍼를 잠금 설정하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  23. 제 20 항에 있어서,
    상기 원격지로부터 수신되는 리두 로그 파일의 상태정보가 상기 로컬 데이터베이스 서버의 리두 로그 파일을 모두 반영하고 있지 않을 경우,
    상기 로컬 데이터베이스 서버는
    상기 상태정보에 대응되는 리두 로그 파일을 상기 원격지로 재전송하여 원격지를 복구하는 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
  24. 제 23 항에 있어서,
    상기 로컬 데이터베이스 서버로부터 재전송되는 리두 로그 파일은 온라인(Online) 리두 로그 파일 또는 아카이빙(Archiving) 되어 있는 파일 중 어느 하나인 것을 특징으로 하는 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법.
KR1020140083579A 2014-07-04 2014-07-04 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템 KR101605455B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140083579A KR101605455B1 (ko) 2014-07-04 2014-07-04 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140083579A KR101605455B1 (ko) 2014-07-04 2014-07-04 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템

Publications (2)

Publication Number Publication Date
KR20160004721A true KR20160004721A (ko) 2016-01-13
KR101605455B1 KR101605455B1 (ko) 2016-03-22

Family

ID=55172624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140083579A KR101605455B1 (ko) 2014-07-04 2014-07-04 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템

Country Status (1)

Country Link
KR (1) KR101605455B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018097522A1 (ko) * 2016-11-28 2018-05-31 주식회사 실크로드소프트 데이터베이스의 이중화를 위한 기법
US10901944B2 (en) 2017-05-24 2021-01-26 Microsoft Technology Licensing, Llc Statelessly populating data stream into successive files
KR102303895B1 (ko) * 2020-03-12 2021-09-23 (주)선재소프트 이중화 성능이 개선된 데이터베이스 이중화시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101936787B1 (ko) * 2017-05-24 2019-01-14 (주)선재소프트 데이터베이스 이중화 방법 및 데이터베이스 이중화 시스템
KR102038529B1 (ko) 2017-11-30 2019-10-30 주식회사 리얼타임테크 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100891036B1 (ko) * 2008-09-08 2009-03-31 (주)데이타뱅크시스템즈 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법
EP2306319B1 (en) 2009-09-14 2012-06-06 Software AG Database server, replication server and method for replicating data of a database server by at least one replication server

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018097522A1 (ko) * 2016-11-28 2018-05-31 주식회사 실크로드소프트 데이터베이스의 이중화를 위한 기법
US11106654B2 (en) 2016-11-28 2021-08-31 Silcroad Soft, Inc. Technique for duplexing database
US10901944B2 (en) 2017-05-24 2021-01-26 Microsoft Technology Licensing, Llc Statelessly populating data stream into successive files
KR102303895B1 (ko) * 2020-03-12 2021-09-23 (주)선재소프트 이중화 성능이 개선된 데이터베이스 이중화시스템

Also Published As

Publication number Publication date
KR101605455B1 (ko) 2016-03-22

Similar Documents

Publication Publication Date Title
EP2281240B1 (en) Maintaining data integrity in data servers across data centers
CN103226502B (zh) 一种数据灾备控制系统及数据恢复方法
CN102891849B (zh) 业务数据同步方法、恢复方法及装置和网络设备
JP4668763B2 (ja) ストレージ装置のリストア方法及びストレージ装置
US7114094B2 (en) Information processing system for judging if backup at secondary site is necessary upon failover
US7793060B2 (en) System method and circuit for differential mirroring of data
JP4108074B2 (ja) 多重リモートストレージでのデータ同期
JP4461147B2 (ja) リモートデータミラーリングを用いたクラスタデータベース
KR101605455B1 (ko) 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
CN105159795A (zh) 数据同步方法、装置和系统
JP5292351B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
US8903766B2 (en) Data mirroring using a virtual connection
JP5292350B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
CN112052127B (zh) 一种用于双机热备环境的数据同步方法及装置
WO2023151443A1 (zh) 同步主备数据库
CN112948484A (zh) 分布式数据库系统和数据灾备演练方法
JP5218121B2 (ja) 情報システム及びディザスタリカバリ方法
US7587628B2 (en) System, method and computer program product for copying data
JP4452494B2 (ja) 複数リモートストレージでのリモートコピー停止後のデータ同期化方式
JP4721057B2 (ja) データ管理システム,データ管理方法及びデータ管理用プログラム
JPH04299435A (ja) データベース等価方式
JP2004272884A5 (ko)
CN113626517B (zh) PostgreSQL数据库流复制异常处理方法及装置
JP7315215B2 (ja) 疎結合システム

Legal Events

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

Payment date: 20190311

Year of fee payment: 4