KR20140050903A - 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법 - Google Patents

데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법 Download PDF

Info

Publication number
KR20140050903A
KR20140050903A KR1020120117315A KR20120117315A KR20140050903A KR 20140050903 A KR20140050903 A KR 20140050903A KR 1020120117315 A KR1020120117315 A KR 1020120117315A KR 20120117315 A KR20120117315 A KR 20120117315A KR 20140050903 A KR20140050903 A KR 20140050903A
Authority
KR
South Korea
Prior art keywords
backup
agent
data
server
transaction
Prior art date
Application number
KR1020120117315A
Other languages
English (en)
Other versions
KR101429575B1 (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 KR1020120117315A priority Critical patent/KR101429575B1/ko
Publication of KR20140050903A publication Critical patent/KR20140050903A/ko
Application granted granted Critical
Publication of KR101429575B1 publication Critical patent/KR101429575B1/ko

Links

Images

Classifications

    • 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/1448Management of the data involved in backup or backup restore
    • 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
    • G06F11/1464Management of the backup or restore process for networked environments

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

본 발명은 온라인 리두 로그 데이터를 실시간으로 백업함으로써, 기존의 백업 방식에서 누락될 수 있는 아카이브 로그 파일의 손실을 최소화하고, 온라인 리두 로그 파일의 복구가 가능한 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법을 제공하는 것을 목적으로 한다.
상술한 목적을 달성하기 위해, 본 발명에 따른 데이터베이스의 실시간 백업 시스템은, 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 생성하는 운영 DB(210)와, 상기 온라인 리두 로그(211)의 트랜잭션(Transaction) 정보를 캡처하여 제 1 백업 시스템(230)에 실시간 트랜잭션 로그 파일로 백업시키며, 캡처한 상기 트랜잭션 정보를 네트워크 전송하는 제 1 에이전트(220)를 갖는 운영 서버(200)와, 상기 제 1 에이전트(220)에서 네트워크 전송되는 캡처한 상기 트랜잭션 정보에 따른 제 2 백업 시스템(320)에 실시간 트랜잭션 로그 파일로 백업시키는 제 2 에이전트(310)를 갖는 복제 서버(300)와, 상기 제 1 에이전트(200)에서 네트워크 전송되는 캡처한 상기 트랜잭션 정보에 따른 제 3 백업 시스템(420)에 실시간 트랜잭션 로그 파일로 백업시키는 제 3 에이전트(410)를 갖는 백업 전용 서버(400)를 포함하는 것을 특징으로 한다.

Description

데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법{REAL TIME BACKUP SYSTEM OF DATABASE, SYSTEM OF RECOVERING DATA AND METHOD OF RECOVERING DATA}
본 발명은 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법에 관한 것으로, 더욱 상세하게는 대용량의 데이터를 백업시 데이터의 손실을 최소화하고, 백업 데이터의 복구를 용이하게 할 수 있는 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법에 관한 것이다.
오늘날 컴퓨터에 저장된 데이터는 손실 혹은 손상에 항상 노출되어 있다. 사고(accidents), 인간의 실수, 바이러스 침입, 하드웨어 고장 및 전력 문제는 컴퓨터에 저장된 정보의 손실 또는 손상에 대한 원인 중 일부에 불과하다. 최근, 데이터의 예상치 못한 손실에 대비하여, 기업들은 통상적으로 데이터 파일을 백업한다. 백업은 원본의 손실 또는 손상이 발생하는 경우에 이용하기 위해, 하나의 파일 또는 한 세트의 파일을 소정 종류의 이동식 매체에 단순히 백업함으로써 행해질 수 있거나, 데이터를 백업할 때 백업 유틸리티를 이용하여 압축할 수 있다.
데이터 손실 또는 손상이 발생하는 경우, 해당 데이터는 통상적으로 백업으로부터 복원된다. 이런 의미에서의 복원(restoring)은 이동식 매체로부터 컴퓨터에 다시 백업하는 것, 또는 데이터 유틸리티가 사용되었다면 데이터를 백업하고 압축해제하는 것을 의미한다.
한편, 기존의 데이터베이스(Database; 이하 DB라 칭함)는 개별 시스템 구축에 따라 별도의 DB를 운영하여 데이터를 분산 저장하고 독립적으로 관리하기 때문에 중/소용량이었으나, 최근에는, 시스템간 데이터 불일치를 줄이고 데이터 상호 간의 연관 정보를 효율적으로 추출할 수 있도록 중앙 집중형의 통합된 대용량 DB를 구축하고 있는 추세이다.
또한, 통합된 대용량 DB에 대하여, 실시간 데이터 연동이 필요한 시스템에 데이터를 제공하고 통계 작업 등과 같은 일괄 작업 시에도 활용하도록 운용 DB에 대해 실시간 백업을 위한 시스템을 구성하여 활용하고 있다.
도 1은 기존 DB의 백업을 위한 시스템의 예를 간단히 도시한 도면이다.
도 1을 참조하면, DB의 백업을 위한 기존의 일반적인 시스템에서, 운영 서버(100)는 운영 DB(110)를 포함하며, 이 운영 DB(110)에서는 온라인 리두 로그(Online Redo Log)(111)의 정보 데이터를 아카이브 로그 파일(Archive Log file)(112)로 생성한 후, 이 아카이브 로그 파일(112)을 주기적으로 백업하게 된다.
그런데, 이와 같은 DB의 백업을 위한 기존의 일반적인 시스템에서는, 아카이브 로그 파일(112)을 주기적으로 백업하기 때문에, 백업이 미처 이루어지지 못한 아카이브 로그 파일(112)이 손실될 수 있으며, 이로 인해 아카이브 로그 파일(112)로 아직 생성되지 않은 온라인 리두 로그(111)의 정보 데이터도 동시에 손실되는 문제점이 있었다.
또한, 운영 서버(100)가 실시간으로 다수의 데이터 처리가 이루어질 경우 데이터의 손실률이 더욱 증가하는 문제점이 있었다.
따라서, 본 발명은 상술한 문제점을 감안하여 도출된 것으로서, 그 목적은 온라인 리두 로그 데이터를 실시간으로 백업함으로써, 기존의 백업 방식에서 누락될 수 있는 아카이브 로그 파일의 손실을 최소화하고, 온라인 리두 로그 파일의 복구가 가능한 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법을 제공하는 것이다.
상술한 목적을 달성하기 위해, 본 발명에 따른 데이터베이스의 실시간 백업 시스템은, 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 생성하는 운영 DB(210)와, 상기 온라인 리두 로그(211)의 트랜잭션(Transaction) 정보를 캡처하여 제 1 백업 시스템(230)에 실시간 트랜잭션 로그 파일로 백업시키며, 캡처한 상기 트랜잭션 정보를 네트워크 전송하는 제 1 에이전트(220)를 갖는 운영 서버(200)와, 상기 제 1 에이전트(220)에서 네트워크 전송되는 캡처한 상기 트랜잭션 정보에 따른 제 2 백업 시스템(320)에 실시간 트랜잭션 로그 파일로 백업시키는 제 2 에이전트(310)를 갖는 복제 서버(300)와, 상기 제 1 에이전트(200)에서 네트워크 전송되는 캡처한 상기 트랜잭션 정보에 따른 제 3 백업 시스템(420)에 실시간 트랜잭션 로그 파일로 백업시키는 제 3 에이전트(410)를 갖는 백업 전용 서버(400)를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터베이스의 실시간 백업 시스템은, 상기 온라인 리두 로그(211)는 복수의 블록(211a) 단위로 구분되며, 상기 온라인 리두 로그(211)의 복수의 블록 단위 중 제 1 블록은 파일 헤더로서 블록의 크기 및 파일의 타입 정보를 갖고, 상기 온라인 리두 로그(211)의 복수의 블록 단위 중 제 2 블록은 리두 헤더로서 사용자에 의해 설정된 시작 위치(SCN)의 범위 정보를 가지며, 상기 온라인 리두 로그(211)의 복수의 블록 단위 중 상기 제 1 블록과 상기 제 2 블록 이외의 블록들은 리두 레코드(Redo Record)(211b)로서 실제 데이터가 존재하며, 각각의 상기 리두 레코드(211b)는 리두 레코드 헤더 및 체인지 벡터로 나누어지고, 상기 온라인 리두 로그(211)를 풀 스캔(full scan)하지 않고, 상기 파일 헤더로부터 정보를 수집하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터베이스의 실시간 백업 시스템은, 상기 운영 서버(200)는 상기 제 1 백업 시스템(230)에 물리적으로 혹은 무선으로 연결된 제 1 백업 장치(500)를 더 포함하고, 상기 제 1 백업 장치(500)는 상기 트랜잭션 로그 파일을 실시간 백업하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터베이스의 실시간 백업 시스템은, 상기 복제 서버(300)는 상기 제 2 백업 시스템(320)에 물리적으로 혹은 무선으로 연결된 제 2 백업 장치(510)를 더 포함하고, 상기 제 2 백업 장치(500)는 상기 트랜잭션 로그 파일을 실시간 백업하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터베이스의 실시간 백업 시스템은, 상기 백업 전용 서버(400)는 상기 제 3 백업 시스템(420)에 물리적으로 혹은 무선으로 연결된 제 3 백업 장치(520)를 더 포함하고, 상기 제 3 백업 장치(520)는 상기 트랜잭션 로그 파일을 실시간 백업하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 복구 시스템은, 제 1 에이전트(220)가 캡처한 상기 트랜잭션 정보는 데이터 복구시 큐(queue)(600)의 구조로 이루어지며, 상기 큐(600)는 PK 컬럼(610) 또는 유니크 인덱스(unique index) 컬럼(620) 중 어느 하나를 병렬로 트랜잭션하여 데이터 복구가 이루어지는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 복구 시스템은, 상기 큐(600)를 전송받은 제 4 에이전트(710)는 멀티쓰레드(640)의 개수만큼 DB 커넥션(630)을 생성하며, 동일한 상기 PK 컬럼 또는 동일한 상기 유니크 인덱스 컬럼을 갖는 트랜잭션들은 하나의 상기 DB 커넥션(630)을 사용하여 복구 시스템(720)으로 복구되는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 복구 시스템은, 상기 멀티쓰레드(640)에 의한 백업 중 상기 PK 컬럼(610) 또는 유니크 인덱스(unique index) 컬럼(620)의 값이 변경될 경우, 단일쓰레드로 전환되어 하나의 DB 커넥션(630) 만을 사용하며 순차적으로 상기 복구 시스템(720)으로 복구되는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 복구 방법은, 데이터의 복구시 제 2 에이전트(310)에 의한 트랜잭션 로그 파일의 복구를 개시하는 단계(S100)와, 멀티쓰레드(640) 개수만큼 큐(600)를 생성하는 단계(S200)와, 상기 멀티쓰레드(640) 개수만큼 SQL 구문 적용을 위한 쓰레드를 생성 및 실행하는 단계(S300)와, 운영 서버(200)로부터 전송받은 캡처한 데이터(SQL 구문)를 저장하는 단계(S400)와, 캡처한 상기 데이터(SQL 구문)를 파싱(Parsing)하여 키로 사용할 컬럼 값을 추출하는 단계(S500)와, 상기 키의 컬럼 값을 기준으로 쓰레드별로 분기하는 단계(S600)와, 각 쓰레드별 상기 큐(600)에 저장하는 단계(S700)와, 상기 큐(600)에서 데이터를 가져와서 복구 시스템(240)에 상기 데이터(SQL 구문)를 적용하는 단계(S800)를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 복구 방법은, 상기 단계(S300)는 각 쓰레드에서 데이터베이스 커넥션을 생성하고, 큐(600)의 객체를 연결하는 단계(S310)를 더 포함하는 것을 특징으로 한다.
본 발명에 의하면, 온라인 리두 로그 데이터를 실시간으로 백업함으로써, 기존의 백업 방식에서 누락될 수 있는 아카이브 로그 파일의 손실을 최소화하고, 온라인 리두 로그 파일의 복구가 가능한 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법을 제공하는 효과가 있다.
도 1은 기존 DB의 백업을 위한 백업 시스템의 예를 간단히 도시한 도면.
도 2는 본 발명에 따른 DB의 실시간 백업을 위한 시스템을 도시한 도면.
도 3은 본 발명에 따른 DB의 실시간 백업을 위한 시스템의 운영 서버에서 수행되는 백업 동작을 나타내는 도면.
도 4는 본 발명에 따른 DB의 실시간 백업을 위한 시스템의 복제 서버에서 수행되는 백업 동작을 나타내는 도면.
도 5는 본 발명에 따른 DB의 실시간 백업을 위한 시스템의 백업 전용 서버에서 수행되는 백업 동작을 나타내는 도면.
도 6은 본 발명에 따른 데이터베이스의 실시간 백업 시스템에서 온라인 리두 로그의 트랜잭션 정보를 실시간 캡처하기 위한 온라인 리두 로그의 포맷을 레이아웃 한 구조를 나타내는 도면.
도 7은 본 발명에 따른 복구 서버에서 수행되는 멀티쓰레드 방식에 의한 복구 동작을 나타내는 도면.
도 8은 본 발명에 따른 복구 서버에서 수행되는 단일쓰레드 방식에 의한 복구 구조를 나타내는 도면.
도 9는 본 발명에 따른 복구 서버에서 수행되는 멀티쓰레드 방식에 의한 복구 동작을 나타내는 플로어 차트.
이하, 첨부한 도면들 및 후술되어 있는 내용을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 그러나, 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 명세서 전체에 걸쳐서 동일한 참조 번호들은 동일한 구성 요소들을 나타낸다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급되지 않는 한 복수형도 포함된다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자가 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
도 2는 본 발명에 따른 DB의 실시간 백업을 위한 백업 시스템의 예를 간단히 도시한 도면이다.
도 2를 참조하면, 본 발명에 따른 DB의 실시간 백업을 위한 시스템의 운영 서버(200)는 운영 DB(210)와, 제 1 에이전트(220)를 포함한다.
여기서, 운영 DB(210)는 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 생성한다.
이때, 제 1 에이전트(220)는 온라인 리두 로그(211)의 트랜잭션(Transaction) 정보를 캡처하여 제 1 백업 시스템(230)에 실시간으로 트랜잭션 로그 파일로 백업시키는 기능을 수행하며, 캡처한 트랜잭션 정보를 후술하는 제 2 에이전트(310)에 네트워크 전송한다.
다음, 복제 서버(300)는 제 2 에이전트(310)와, 제 2 백업 시스템(320)을 포함한다.
여기서, 제 2 에이전트(310)는 운영 서버(200)에서 네트워크 전송되는 캡처한 트랜잭션 정보를 제 2 백업 시스템(320)에 실시간으로 트랜잭션 로그 파일로 백업시키는 기능을 수행하게 된다.
한편, 백업 전용 서버(400)는 제 3 에이전트(410) 및 제 3 백업 시스템(420)을 포함한다.
여기서, 제 3 에이전트(410)는 운영 서버(200)에서 네트워크 전송되는 캡처한 트랜잭션 정보를 제 3 백업 시스템(420)에 실시간으로 트랜잭션 로그 파일로 백업시키는 기능을 수행한다.
즉, 제 2 에이전트(310) 및 제 3 에이전트(410)가 하는 역할을 동일하다.
이와 같은 DB의 실시간 백업을 위한 시스템에 의해, 운영 서버(200)나, 복제 서버(300)나, 백업 전용 서버(400) 중 어느 하나에서 백업을 수행할 수 있는 효과가 있다.
다음, 도 3은 본 발명에 따른 DB의 실시간 백업을 위한 시스템의 운영 서버에서 수행되는 백업 동작을 나타내는 도면이다.
도 3을 참조하여, 운영 서버(200)에서 수행되는 백업 동작에 대해 살펴본다. 운영 서버(200)의 운영 DB(210)는 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 생성하게 된다. 이때, 제 1 에이전트(220)는 온라인 리두 로그(211)의 트랜잭션 정보를 캡처하여 제 1 백업 시스템(230)에 트랜잭션 로그 파일을 실시간 백업시키게 된다. 한편, 제 1 백업 시스템(230)에 물리적으로 혹은 무선으로 연결된 제 1 백업 장치(500)에도 트랜잭션 로그 파일로 백업시킬 수도 있다.
이와 같이, 운영 서버(200)에서 백업이 수행될 경우에는, 운영 서버(200)의 제 1 에이전트(220)가 온라인 리두 로그(211)의 트랜잭션 정보를 캡처하여 실시간으로 백업하기 때문에, 원격지 데이터 전송으로 인한 네트워크 전송 지연을 최소화할 수 있는 효과가 있다.
다음, 도 4는 본 발명에 따른 DB의 실시간 백업을 위한 시스템의 복제 서버에서 수행되는 백업 동작을 나타내는 도면이다.
도 4를 참조하여, 복제 서버(300)에서 수행되는 백업 동작에 대해 살펴본다. 앞서 상술한 바와 같이, 운영 서버(200)의 운영 DB(210)는 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 생성하게 된다. 이때, 제 1 에이전트(220)는 온라인 리두 로그(211)의 트랜잭션 정보를 캡처하고, 캡처한 트랜잭션 정보를 복제 서버(300)로 네트워크 전송하게 된다. 복제 서버(300)의 제 2 에이전트(310)는 전송받은 캡처한 트랜잭션 정보 데이터를 제 2 백업 시스템(320)에 트랜잭션 로그 파일로 실시간으로 백업하게 된다. 한편, 제 2 백업 시스템(320)에 물리적으로 혹은 무선으로 연결된 제 2 백업 장치(510)에도 트랜잭션 로그 파일로 백업시킬 수도 있다.
이와 같이, 복제 서버(300)에서 백업이 수행될 경우에는, 운영 서버(200)의 제 1 에이전트(220)가 온라인 리두 로그(211)의 트랜잭션 정보를 캡처하고, 캡처한 트랜잭션 정보를 복제 서버(300)에 네트워크 전송하여, 복제 서버(300)에서 실시간 백업이 수행되기 때문에, 실시간 백업시 운영 서버(200)의 디스크 입/출력에 따른 부하를 최소화할 수 있는 효과가 있다.
다음, 도 5는 본 발명에 따른 DB의 실시간 백업을 위한 시스템의 백업 전용 서버에서 수행되는 백업 동작을 나타내는 도면이다.
도 5를 참조하여, 백업 전용 서버(400)에서 수행되는 백업 동작에 대해 살펴본다. 마찬가지로, 운영 서버(200)의 운영 DB(210)는 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 생성하게 된다. 이때, 제 1 에이전트(220)는 온라인 리두 로그(211)의 트랜잭션 정보를 캡처하고, 캡처한 트랜잭션 정보를 백업 전용 서버(400)로 네트워크 전송하게 된다. 백업 전용 서버(400)의 제 3 에이전트(410)는 전송받은 캡처한 트랜잭션 정보 데이터를 제 3 백업 시스템(420)에 트랜잭션 로그 파일로 실시간으로 백업하게 된다. 한편, 제 3 백업 시스템(420)에 물리적으로 혹은 무선으로 연결된 제 3 백업 장치(520)에도 트랜잭션 로그 파일로 백업시킬 수도 있다.
이와 같이, 백업 전용 서버(400)에서 백업이 수행될 경우에는, 운영 서버(200) 및 복제 서버(300)의 부하 및 장애를 최소화시킬 수 있는 효과가 있다.
상술한 바와 같이, 본 발명에 따른 DB의 실시간 백업을 위한 시스템은, 운영 서버(200)의 제 1 에이전트(220)에 의해 온라인 리두 로그(211)의 트랜잭션 정보를 캡처한 후, 트랜잭션 로그 파일로 생성할 수도 있고, 복제 서버(300)의 제 2 에이전트(310)에 의해, 운영 서버(200)로부터 전송받은 캡처한 트랜잭션 정보를 트랜잭션 로그 파일로 생성할 수도 있으며, 마찬가지로 백업 전용 서버(400)의 제 3 에이전트(410)에 의해, 운영 서버(200)로부터 전송받은 캡처한 트랜잭션 정보를 트랜잭션 로그 파일로 생성할 수도 있다.
다음, 도 6은 본 발명에 따른 데이터베이스의 실시간 백업 시스템에서 온라인 리두 로그의 트랜잭션 정보를 실시간 캡처하기 위한 온라인 리두 로그의 포맷을 레이아웃 한 구조를 나타내는 도면이다.
도 6을 참조하면, 온라인 리두 로그(211) 파일은 블록(211a) 단위로 구분되어 있다. 여기서, 제 1 블록은 파일 헤더로서 블록의 크기 및 파일의 타입 등의 정보를 갖고 있다. 또한, 제 2 블록은 리두 헤더로서 사용자에 의해 설정된 시작 위치(SCN)의 범위 등의 정보를 갖고 있다. 제 3 블록부터는 리두 레코드(Redo Record)(211b)로서 실제 데이터가 존재하며, 각각의 리두 레코드(211b)는 리두 레코드 헤더 및 체인지 벡터(change vector)로 나누어져 있다.
본 발명에서는 이와 같은 전체 온라인 리두 로그(211) 파일을 풀 스캔(full scan)하지 않고, 헤더에서 필요한 정보만을 빠르게 수집하게 된다.
각각의 데이터 베이스는 OS 플랫폼 및 DB 버전에 따라 블록의 크기 및 데이터 포지션이 다르기 때문에, 온라인 리두 로그(211)의 헤더 정보를 추출하여 각각 설정하게 된다.
또한, 솔루션의 기동시 온라인 리두 로그(211)의 트랜잭션 정보를 캡처하고자 하는 사용자에 의해 설정된 시작 위치(SCN)를 검색하는 방법으로는, 우선, 시작 SCN이 포함되어 있는 온라인 리두 로그(211) 파일을 서치한다. 여기서, 각 온라인 리두 로그(211) 파일의 헤더 블록(512 바이트)만 판독하여 정보를 추출한다.
다음, 온라인 리두 로그(211) 파일이 선택되면 해당 온라인 리두 로그(211) 파일 내에서 시작 SCN 위치를 서치한다. 여기서, 각 블록의 레코드 헤더만을 판독하여 정보를 추출한다.
따라서, 필요한 정보의 각 헤더 정보만을 판독하기 때문에, 시스템의 부하 최소화 및 성능의 극대화를 도모할 수 있는 장점이 있다.
다음, 복제 데이터(SQL)를 추출하는 방식에 대해 설명한다.
우선 오픈된 온라인 리두 로그(211)를 순차적으로 판독하여 16진수 데이터를 실제 SQL 구문으로 완성하여 버퍼 저장한다.
다음, 설정된 버퍼가 가득 차면 타겟(target)으로 전송한다. 이때, 버퍼가 가득차지 않더라도 일정 시간(사용자에 의한 설정)이 지나면 자동으로 타겟으로 버퍼가 전송된다.
다음, 현재 판독 중인 온라인 리두 로그(211) 파일의 캡처가 완료되거나 스위칭될 경우에는 다음 온라인 리두 로그(211) 파일을 연속해서 캡처하게 된다.
즉, 1회 오픈하여 연속적으로 캡처하기 때문에, I/O(입/출력)를 최소화하고, 온라인 리두 로그(211) 파일 내에서 특정 위치를 서치함으로써, 시스템의 부하를 최소화할 수 있다.
다음, 도 7은 본 발명에 따른 DB의 실시간 백업 데이터를 복구하기 위한 시스템의 복제 서버에서 수행되는 멀티쓰레드 방식에 의한 데이터 복구 구조를 나타내는 도면이다.
도 7을 참조하여, 멀티쓰레드 방식에 의해 복구되는 데이터 복구 구조에 대해 설명한다.
상술한 바와 같이, 운영 서버(200)의 운영 DB(210)는 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 저장하게 된다. 이때, 제 1 에이전트(220)는 온라인 리두 로그(211)의 트랜잭션 정보를 캡처하고, 캡처한 트랜잭션 정보를 복제 서버(300)로 네트워크 전송되어 트랜잭션 로그 파일로 생성된다.
이러한 트랜잭션 로그 파일을 이용하여 온라인 리두 파일을 복구하는 방법은 다음과 같다. 트랜잭션 로그 파일은 큐(queue)(600)의 구조로 되어 있다. 트랜잭션들은 PK 컬럼(610) 또는 유니크 인덱스(unique index) 컬럼(620) 중 어느 하나를 병렬(parallel) 기준으로 하여 큐(600)를 구성하게 된다. 예를 들면, 트랜잭션이 PK 컬럼(610)을 기준으로 하여 큐(600)를 구성할 경우에는, PK = 100, PK = 200, PK = 300, PK = 400 등으로 구성된다. 또한, 트랜잭션이 유니크 인덱스 컬럼(620)을 기준으로 하여 큐(600)를 구성할 경우에는, (TX#1), (TX#2), (TX#3), (TX#4), (TX#5), (TX#6), (TX#7) 등으로 구성된다. 물론, 본 발명에서는 설명의 용이함을 위해, 도 7에 도시된 바와 같이, 7개의 트랜잭션을 예로써 설명하였지만, 이에 한정되는 것은 아니다.
다음, 큐(600)를 전송받은 제 4 에이전트(710)는 멀티쓰레드(640)의 개수만큼 DB 커넥션(630)을 생성한다. 여기서, 동일한 멀티 키(동일한 PK 컬럼 또는 유니크 인덱스 컬럼)를 가진 트랜잭션들은 하나의 DB 커넥션(630)을 사용하여 순차적으로 복구 시스템(720)으로 복구하게 된다. 여기서, 멀티쓰레드(640)의 개수는 트랜잭션의 발생량에 따라 적절히 조절할 수 있다.
한편, 도 8은 본 발명에 따른 DB의 실시간 백업 데이터를 복구하기 위한 시스템의 복구 서버에서 수행되는 단일쓰레드 방식에 의한 데이터 복구 구조를 나타내는 도면이다.
도 8을 참조하면, 멀티쓰레드 방식에 의한 데이터 복구 도중 해당 멀티 키 컬럼 값이 변경될 경우에는, 임시적으로 단일쓰레드 방식을 적용함으로써, 정합성을 보장하게 된다.
예를 들면, 도 8에 도시된 바와 같이, 트랜잭션들의 집합 구조인 큐(600)를 분석한 결과, PK = 400이 PK = 300으로 멀티 키 컬럼 값이 변경될 경우에는, 멀티 키 컬럼 값과 상관없이 오직 하나의 DB 커넥션(630) 만을 사용하여 순차적으로 복구 시스템(720)으로 복구하게 된다.
이에 대한 처리가 완료되면, 도 7에서 설명한 바와 같이, 다시 멀티쓰레드 방식을 사용하여 트랜잭션을 적용하면 된다.
도 9는 본 발명에 따른 DB의 실시간 백업 데이터를 복구하기 위해 수행되는 멀티쓰레드 방식에 의한 데이터 복구 동작을 나타내는 플로어 차트이다.
도 9를 참조하면, 본 발명에 따른 DB의 실시간 백업 데이터를 복구하기 위한 시스템의 복구 서버에서 수행되는 멀티쓰레드 방식에 의한 데이터 복구 동작은, 제 4 에이전트(710)에 의한 트랜잭션 로그 파일의 데이터 복구를 개시하는 단계(S100)와, 멀티쓰레드(640) 개수만큼 큐(600)를 생성하는 단계(S200)와, 멀티쓰레드(640) 개수만큼 SQL 구문 적용을 위한 쓰레드를 생성 및 실행하는 단계(S300)와, 운영 서버(200)로부터 전송받은 캡처한 데이터(SQL 구문)를 저장하는 단계(S400)와, SQL 구문을 파싱(Parsing)하여 키로 사용할 컬럼 값을 추출하는 단계(S500)와, 키 컬럼 값을 기준으로 쓰레드별로 분기하는 단계(S600)와, 각 쓰레드별 큐(600)에 저장하는 단계(S700)와, 큐(600)에서 데이터를 가져와서 복구 시스템(720)에 데이터(SQL 구문)를 적용하는 단계(S800)로 진행하게 된다.
여기서, 멀티쓰레드(640) 개수만큼 SQL 구문 적용을 위한 쓰레드를 생성 및 실행하는 단계(S300)에서는, 각 쓰레드에서 데이터베이스 커낵션을 생성하고, 큐(600)의 객체를 연결하는 단계(S310)를 더 포함하게 된다.
이와 같이, 데이터베이스의 실시간 백업 방법 및 시스템에 따르면, 다음과 같은 효과가 있다.
옵션에 따라 실시간 백업 및 실시간 복제가 가능하다.
또한, 실시간 백업 위치를 설정할 수 있고, 운영 서버, 복제 서버, 백업 전용 서버에 선택적으로 트랜잭션 로그의 백업이 가능하다.
또한, 백업된 백업된 트랜잭션 로그로부터 특정 시점(SCN)부터 자동 선택 복구가 가능하다.
또한, 백업 데이터에 대한 암호화가 가능하고, 특정 테이블만 선택적으로 복구가 가능하며, 실시간 백업 상태 모니터링 할 수 있고, 2차 백업 저장 장치로 백업 및 자동 삭제가 가능한 효과가 있다.
이상에서는 본 발명의 실시예를 예로 들어 설명하였지만, 당업자의 수준에서 다양한 변경이 가능하다. 따라서, 본 발명은 상기의 실시예에 한정되어 해석되어서는 안되며, 이하에 기재된 특허청구범위에 의해 해석되어야 함이 자명하다.
100 : 운영 서버
110 : 운영 DB
111 : 온라인 리두 로그
112 : 아카이브 로그 파일
200 : 운영 서버
210 : 운영 DB
211 : 온라인 리두 로그
211a : 블록
211b : 리두 레코드
212 : 아카이브 로그 파일
220 : 제 1 에이전트
230 : 제 1 백업 시스템
300 : 복제 서버
310 : 제 2 에이전트
320 : 제 2 백업 시스템
400 : 백업 전용 서버
410 : 제 3 에이전트
420 : 제 3 백업 시스템
500 : 제 1 백업 장치
510 : 제 2 백업 장치
520 : 제 3 백업 장치
600 : 큐
610 : PK 컬럼
620 : 유니크 인덱스 컬럼
630 : DB 커넥션
640 : 멀티쓰레드
710 : 제 4 에이전트
720 : 복구 시스템

Claims (10)

  1. 온라인 리두 로그(211)의 정보 데이터를 아카이브 로그 파일(212)로 생성하는 운영 DB(210)와,
    상기 온라인 리두 로그(211)의 트랜잭션(Transaction) 정보를 캡처하여 제 1 백업 시스템(230)에 실시간 트랜잭션 로그 파일로 백업시키며, 캡처한 상기 트랜잭션 정보를 네트워크 전송하는 제 1 에이전트(220)를 갖는 운영 서버(200)와,
    상기 제 1 에이전트(220)에서 네트워크 전송되는 캡처한 상기 트랜잭션 정보에 따른 제 2 백업 시스템(320)에 실시간 트랜잭션 로그 파일로 백업시키는 제 2 에이전트(310)를 갖는 복제 서버(300)와,
    상기 제 1 에이전트(200)에서 네트워크 전송되는 캡처한 상기 트랜잭션 정보에 따른 제 3 백업 시스템(420)에 실시간 트랜잭션 로그 파일로 백업시키는 제 3 에이전트(410)를 갖는 백업 전용 서버(400)를 포함하는 것을 특징으로 하는 데이터베이스의 실시간 백업 시스템.
  2. 제 1 항에 있어서,
    상기 온라인 리두 로그(211)는 복수의 블록(211a) 단위로 구분되며,
    상기 온라인 리두 로그(211)의 복수의 블록 단위 중 제 1 블록은 파일 헤더로서 블록의 크기 및 파일의 타입 정보를 갖고,
    상기 온라인 리두 로그(211)의 복수의 블록 단위 중 제 2 블록은 리두 헤더로서 사용자에 의해 설정된 시작 위치(SCN)의 범위 정보를 가지며,
    상기 온라인 리두 로그(211)의 복수의 블록 단위 중 상기 제 1 블록과 상기 제 2 블록 이외의 블록들은 리두 레코드(Redo Record)(211b)로서 실제 데이터가 존재하며, 각각의 상기 리두 레코드(211b)는 리두 레코드 헤더 및 체인지 벡터로 나누어지고,
    상기 온라인 리두 로그(211)를 풀 스캔(full scan)하지 않고, 상기 파일 헤더로부터 정보를 수집하는 것을 특징으로 하는 데이터베이스의 실시간 백업 시스템.
  3. 제 2 항에 있어서,
    상기 운영 서버(200)는 상기 제 1 백업 시스템(230)에 물리적으로 혹은 무선으로 연결된 제 1 백업 장치(500)를 더 포함하고,
    상기 제 1 백업 장치(500)는 상기 트랜잭션 로그 파일을 실시간 백업하는 것을 특징으로 하는 데이터베이스의 실시간 백업 시스템.
  4. 제 2 항에 있어서,
    상기 복제 서버(300)는 상기 제 2 백업 시스템(320)에 물리적으로 혹은 무선으로 연결된 제 2 백업 장치(510)를 더 포함하고,
    상기 제 2 백업 장치(500)는 상기 트랜잭션 로그 파일을 실시간 백업하는 것을 특징으로 하는 데이터베이스의 실시간 백업 시스템.
  5. 제 2 항에 있어서,
    상기 백업 전용 서버(400)는 상기 제 3 백업 시스템(420)에 물리적으로 혹은 무선으로 연결된 제 3 백업 장치(520)를 더 포함하고,
    상기 제 3 백업 장치(520)는 상기 트랜잭션 로그 파일을 실시간 백업하는 것을 특징으로 하는 데이터베이스의 실시간 백업 시스템.
  6. 제 1 에이전트(220)가 캡처한 상기 트랜잭션 정보는 데이터 복구시 큐(queue)(600)의 구조로 이루어지며,
    상기 큐(600)는 PK 컬럼(610) 또는 유니크 인덱스(unique index) 컬럼(620) 중 어느 하나를 병렬로 트랜잭션하여 데이터 복구가 이루어지는 것을 특징으로 하는 데이터 복구 시스템.
  7. 제 6 항에 있어서,
    상기 큐(600)를 전송받은 제 4 에이전트(710)는 멀티쓰레드(640)의 개수만큼 DB 커넥션(630)을 생성하며,
    동일한 상기 PK 컬럼 또는 동일한 상기 유니크 인덱스 컬럼을 갖는 트랜잭션들은 하나의 상기 DB 커넥션(630)을 사용하여 복구 시스템(720)으로 복구되는 것을 특징으로 하는 데이터 복구 시스템.
  8. 제 7 항에 있어서,
    상기 멀티쓰레드(640)에 의한 백업 중 상기 PK 컬럼(610) 또는 유니크 인덱스(unique index) 컬럼(620)의 값이 변경될 경우, 단일쓰레드로 전환되어 하나의 DB 커넥션(630) 만을 사용하며 순차적으로 상기 복구 시스템(720)으로 복구되는 것을 특징으로 하는 데이터 복구 시스템.
  9. 데이터의 복구시 제 2 에이전트(310)에 의한 트랜잭션 로그 파일의 복구를 개시하는 단계(S100)와,
    멀티쓰레드(640) 개수만큼 큐(600)를 생성하는 단계(S200)와,
    상기 멀티쓰레드(640) 개수만큼 SQL 구문 적용을 위한 쓰레드를 생성 및 실행하는 단계(S300)와,
    운영 서버(200)로부터 전송받은 캡처한 데이터(SQL 구문)를 저장하는 단계(S400)와,
    캡처한 상기 데이터(SQL 구문)를 파싱(Parsing)하여 키로 사용할 컬럼 값을 추출하는 단계(S500)와,
    상기 키의 컬럼 값을 기준으로 쓰레드별로 분기하는 단계(S600)와,
    각 쓰레드별 상기 큐(600)에 저장하는 단계(S700)와,
    상기 큐(600)에서 데이터를 가져와서 복구 시스템(240)에 상기 데이터(SQL 구문)를 적용하는 단계(S800)를 포함하는 것을 특징으로 하는 데이터베이스의 데이터 복구 방법.
  10. 제 9 항에 있어서,
    상기 단계(S300)는 각 쓰레드에서 데이터베이스 커넥션을 생성하고, 큐(600)의 객체를 연결하는 단계(S310)를 더 포함하는 것을 특징으로 하는 데이터베이스의 데이터 복구 방법.
KR1020120117315A 2012-10-22 2012-10-22 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법 KR101429575B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120117315A KR101429575B1 (ko) 2012-10-22 2012-10-22 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120117315A KR101429575B1 (ko) 2012-10-22 2012-10-22 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법

Publications (2)

Publication Number Publication Date
KR20140050903A true KR20140050903A (ko) 2014-04-30
KR101429575B1 KR101429575B1 (ko) 2014-08-13

Family

ID=50655830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120117315A KR101429575B1 (ko) 2012-10-22 2012-10-22 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법

Country Status (1)

Country Link
KR (1) KR101429575B1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101589213B1 (ko) * 2015-07-15 2016-01-27 주식회사 지오그레이트 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법
KR20160123748A (ko) * 2015-04-17 2016-10-26 한국전자통신연구원 분산 파일 시스템에서의 파일 복제 제어 장치 및 방법
KR101859090B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 통합 복제 시스템
KR101859094B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 복제 방식의 변경을 고려한 통합 복제 시스템
WO2019074155A1 (ko) * 2017-10-11 2019-04-18 (주) 데이타뱅크시스템즈 데이터베이스 간의 실시간 통합 복제 시스템
CN111209139A (zh) * 2019-12-29 2020-05-29 航天信息股份有限公司 基于版本控制管理系统的容灾方法及装置
CN111639098A (zh) * 2020-05-11 2020-09-08 紫光云技术有限公司 一种云日志管理方法
KR20210008716A (ko) 2019-07-15 2021-01-25 주식회사 메디칼타임즈 양방향 감시 체계를 이용한 워치 독 시스템
CN116701426A (zh) * 2023-08-07 2023-09-05 荣耀终端有限公司 数据处理方法、电子设备及存储介质
CN117033083A (zh) * 2023-09-28 2023-11-10 武汉吧哒科技股份有限公司 数据备份方法、系统及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102139087B1 (ko) * 2019-09-19 2020-07-29 주식회사 티맥스티베로 인덱스 리두 로그를 이용한 인덱스 복구를 위한 방법, 서버 및 컴퓨터 판독가능 저장매체
KR102326683B1 (ko) * 2020-07-22 2021-11-16 웹케시 주식회사 큐를 이용한 비동기 로그 적재 시스템 및 방법과 이를 위한 컴퓨터 프로그램

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990068337A (ko) * 1999-04-10 1999-09-06 정구집 트랜잭션완수키를이용한데이터베이스트랜잭션복구수행
US7277905B2 (en) * 2004-03-31 2007-10-02 Microsoft Corporation System and method for a consistency check of a database backup
KR100891036B1 (ko) * 2008-09-08 2009-03-31 (주)데이타뱅크시스템즈 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법
KR101071484B1 (ko) * 2009-06-15 2011-10-10 대성홀딩스 주식회사 데이터베이스의 논리적 데이터 오류 복구방법

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160123748A (ko) * 2015-04-17 2016-10-26 한국전자통신연구원 분산 파일 시스템에서의 파일 복제 제어 장치 및 방법
KR101589213B1 (ko) * 2015-07-15 2016-01-27 주식회사 지오그레이트 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법
US10303701B1 (en) 2017-10-11 2019-05-28 Databank Systems Ltd. Real-time integrated replication system between databases
KR101859094B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 복제 방식의 변경을 고려한 통합 복제 시스템
WO2019074155A1 (ko) * 2017-10-11 2019-04-18 (주) 데이타뱅크시스템즈 데이터베이스 간의 실시간 통합 복제 시스템
WO2019074156A1 (ko) * 2017-10-11 2019-04-18 (주) 데이타뱅크시스템즈 복제 방식의 변경을 고려한 통합 복제 시스템
KR101859090B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 통합 복제 시스템
KR20210008716A (ko) 2019-07-15 2021-01-25 주식회사 메디칼타임즈 양방향 감시 체계를 이용한 워치 독 시스템
CN111209139A (zh) * 2019-12-29 2020-05-29 航天信息股份有限公司 基于版本控制管理系统的容灾方法及装置
CN111639098A (zh) * 2020-05-11 2020-09-08 紫光云技术有限公司 一种云日志管理方法
CN116701426A (zh) * 2023-08-07 2023-09-05 荣耀终端有限公司 数据处理方法、电子设备及存储介质
CN116701426B (zh) * 2023-08-07 2024-04-05 荣耀终端有限公司 数据处理方法、电子设备及存储介质
CN117033083A (zh) * 2023-09-28 2023-11-10 武汉吧哒科技股份有限公司 数据备份方法、系统及存储介质
CN117033083B (zh) * 2023-09-28 2024-01-19 武汉吧哒科技股份有限公司 数据备份方法、系统及存储介质

Also Published As

Publication number Publication date
KR101429575B1 (ko) 2014-08-13

Similar Documents

Publication Publication Date Title
KR101429575B1 (ko) 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법
US7565661B2 (en) Method and system for real-time event journaling to provide enterprise data services
US6934877B2 (en) Data backup/recovery system
US7680834B1 (en) Method and system for no downtime resychronization for real-time, continuous data protection
US7096392B2 (en) Method and system for automated, no downtime, real-time, continuous data protection
US8478955B1 (en) Virtualized consistency group using more than one data protection appliance
US7650369B2 (en) Database system management method and database system
CN110704242B (zh) 一种连续数据保护系统及方法
JP5308403B2 (ja) データ処理の障害回復方法、システムおよびプログラム
US20030208511A1 (en) Database replication system
US7519870B1 (en) Method and system for no downtime, initial data upload for real-time, continuous data protection
US20080162518A1 (en) Data aggregation and grooming in multiple geo-locations
US20100235681A1 (en) Stream recovery method, stream recovery program and failure recovery apparatus
CN107209704A (zh) 检测丢失的写入
US8762347B1 (en) Method and apparatus for processing transactional file system operations to enable point in time consistent file data recreation
US10146633B2 (en) Data recovery from multiple data backup technologies
CN111427898A (zh) 一种基于解析Oracle日志的持续数据保护系统及方法
CN107368388A (zh) 一种监控文件系统变化的数据库实时备份方法
US10484179B1 (en) Data consistency in an encrypted replication environment
US7840535B2 (en) Replicated data validation
KR101374533B1 (ko) 대용량 데이터에 대한 고성능 복제 및 백업 시스템과, 고성능 복제 방법
CN1457457A (zh) 远程资料弹性复制系统与方法
US20060004839A1 (en) Method and system for data processing with data replication for the same
US10255291B1 (en) Replication of volumes using partial volume split
CN101916215B (zh) 一种基于操作截取的分布式关键任务系统悔改方法

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: 20190709

Year of fee payment: 6