KR100891036B1 - 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법 - Google Patents
데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR100891036B1 KR100891036B1 KR1020080088200A KR20080088200A KR100891036B1 KR 100891036 B1 KR100891036 B1 KR 100891036B1 KR 1020080088200 A KR1020080088200 A KR 1020080088200A KR 20080088200 A KR20080088200 A KR 20080088200A KR 100891036 B1 KR100891036 B1 KR 100891036B1
- Authority
- KR
- South Korea
- Prior art keywords
- redo log
- log
- database
- backup
- redo
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management 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
본 발명의 기술적 과제는 데이터 손실을 최소화하고, 복구 시간을 단축할 수 있는 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법을 제공함에 있다.
본원의 제1 발명에 따른 데이터베이스의 실시간 복제를 통한 자동 복구 방법은, 액티브 사이트 내 액티브 데이터베이스의 리두 로그를 수신하여 제1 백업 데이터베이스에 복제함에 있어서, 제1 백업 에이전트가 상기 리두 로그 파일의 리두 로그 헤더를 수신하는 단계; 기 저장된 로그 시퀀스 번호와 수신된 리두 로그 헤더의 현재 로그 시퀀스 번호가 일치하는지를 판단하는 단계; 상기 판단결과, 일치하면 상기 제1 백업 에이전트는 기 수신된 리두 로그를 적용하는 단계; 및 상기 판단결과, 일치하지 않고 상기 액티브 데이터베이스의 장애로 판단되면 상기 제1 백업 데이터베이스에 저장된 리두 로그 정보를 수정하는 단계를 포함한다.
데이터베이스, 복구, 리두 로그, 실시간, 자동
Description
본 발명은 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 실시간 리두로그 복제 방식으로 자동 복구하는 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법에 관한 것이다.
오늘날 컴퓨터에 저장된 데이터는 손실 혹은 손상에 항상 노출되어 있다. 사고(accidents), 인간의 실수, 바이러스 침입, 하드웨어 고장 및 전력 문제는 컴퓨터에 저장된 정보의 손실 또는 손상에 대한 원인들 중 일부에 불과하다. 최근 데이터의 예기치 못한 손실에 대비하여, 기업들은 통상적으로 데이터 파일을 백업한다. 백업은 원본의 손실 또는 손상이 발생하는 경우에 이용되기 위해 하나의 파일 또는 한 세트의 파일을 소정 종류의 이동식 매체에 단순히 복제함으로써 행해질 수 있거나, 데이터를 복제할 때 백업 유틸리티를 이용하여 압축할 수 있다. 데이터 손실 또는 손상이 발생하는 경우, 해당 데이터는 통상적으로 백업으로부터 복원된다. 이 런 의미에서의 복원(restoring)은 이동식 매체로부터 컴퓨터에 다시 복제하는 것, 또는 데이터 유틸리티가 사용되었다면 데이터를 복제하고 압축해제하는 것을 의미한다.
한편, 데이터베이스의 자동 복구를 위하여 한국등록특허 제673233호에는 DBMS의 데이터베이스 자동 복구 방법을 제시하고 있다. 한국등록특허 제673233호에 개시된 DBMS의 데이터베이스 자동 복구 방법에 따르면, 고객 서비스 운영에 생성되는 데이터베이스를 저장하기 위한 운영용 데이터베이스와, 상기 운영용 데이터베이스 운영 중에 생성되는 데이터의 이력이 기록된 파일의 모임인 운영용 아카이브 로그 파일을 포함하는 운영 서버, 및 상기 운영용 데이터베이스를 복제한 복구용 데이터베이스 및 상기 운영용 아카이브 로그 파일을 복제한 복구용 아카이브 로그 파일을 포함하며, 특정 시간 간격으로 상기 복구용 아카이브 로그 파일을 상기 복구용 데이터베이스에 적용하여 상기 운영서버를 복구하는 백업서버로 구성되어, 운영자의 실수 또는 장비의 고장으로 인하여 장애가 발생 시에 특정 시간 간격내의 데이터베이스만 복구하면 되므로, 복구 시간을 단축시킬 수 있도록 한다.
그러나, 한국등록특허 제673233호는 특정 시간 간격마다 크론을 실행하여 운영 서버로부터 아카이브 로그 파일을 백업 서버로 복제하는 방식을 채택하고 있어, 특정 시간 간격 내에 사고 발생 전까지 생성된 변경 사항은 복구시에 반영할 수 없다는 문제점이 있다. 또한, 아카이브 로그 파일 자체를 운영서버로부터 백업 서버로 복제하므로 파일의 복제에 소요되는 시간이 커져 특정 시간 간격을 좁히려고 하더라도 한계가 있다는 문제점이 있다.
위와 같은 문제점들 해결하기 위한 본 발명의 기술적 과제는 데이터 손실을 최소화하고, 복구 시간을 단축할 수 있는 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법을 제공함에 있다.
본원의 제1 발명에 따른 데이터베이스의 실시간 복제를 통한 자동 복구 방법은, 액티브 사이트 내 액티브 데이터베이스의 리두 로그를 수신하여 제1 백업 데이터베이스에 복제함에 있어서, 제1 백업 에이전트가 상기 액티브 데이터베이스 내 리두 로그 파일의 리두 로그 헤더를 수신하는 단계; 기 저장된 로그 시퀀스 번호와 수신된 리두 로그 헤더의 현재 로그 시퀀스 번호가 일치하는지를 판단하는 단계; 상기 판단결과, 일치하면 상기 제1 백업 에이전트는 기 수신된 리두 로그를 적용하는 단계; 및 상기 판단결과, 일치하지 않고 상기 액티브 데이터베이스의 장애로 판단되면 상기 제1 백업 데이터베이스에 저장된 리두 로그 정보를 수정하는 단계를 포함한다.
또한, 본원의 제2 발명에 따른 데이터베이스의 실시간 복제를 통한 자동 복구 방법은, 액티브 사이트 내 액티브 데이터베이스로부터 제1 백업 데이터베이스로 리두 로그를 실시간으로 복제하고, 상기 제1 백업 데이터베이스로부터 제2 백업 데이터베이스로 소정 시간 지연시켜 주기적으로 재복제하는 데이터베이스의 자동 복구 방법에 있어서, 백업 사이트 내 제1 백업 에이전트는 상기 제2 백업 데이터베이스에서 복구에 필요한 아카이브 로그 파일을 상기 백업 사이트 내 제2 백업 에이전트로 전송하는 단계; 상기 제2 백업 에이전트는 상기 제2 백업 데이터베이스에 상기 아카이브 로그 파일을 적용하는 단계; 상기 제2 백업 에이전트는 상기 제2 백업 데이터베이스로부터 상기 액티브 에이전트로 복구용 데이터를 익스포트하는 단계; 및 상기 액티브 사이트 내 액티브 에이전트는 복구용 데이터를 상기 액티브 데이터베이스에 임포트하는 단계를 포함한다.
또한, 본원의 제3 발명에 따른 데이터베이스의 실시간 복제를 통한 자동 복구 시스템은, 액티브 데이터베이스로부터 리두 로그를 캡쳐하여 상기 리두 로그가 커런트 리두 로그이면 제1 백업 에이전트로 상기 커런트 리두 로그를 전송하고, 상기 리두 로그가 커런트 리두 로그가 아니면 리두 로그 헤더를 전송하는 액티브 에이전트; 및 상기 커런트 리두 로그를 수신하여 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하면 상기 액티브 에이전트로부터 수신되는 리두 로그를 제1 백업 데이터베이스에 이어쓰기를 실행하고, 상기 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하지 않으면 상기 리두 로그를 제1 백업 데이터베이스에 새로쓰기를 실행하며, 상기 리두 로그 헤더를 수신하여 상기 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하면 상기 제1 백업 데이터베이스에 수신된 리두 로그를 적용하나, 상기 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하지 않고 상기 액티브 데이터베이스의 장애로 판단되면 리두 로그 블록과 리두 로그 파일의 정보를 수정하는 백업 에이전트를 포함한다.
본 발명에 따르면, 운영 서버의 리두 로그 파일 중 추가된 리두 로그를 실시간으로 백업 서버에 복제함으로써 데이터 손실을 최소화할 수 있고, 복구 시간을 대폭 단축할 수 있다.
또한, 본 발명에 따르면, 백업 서버 내에 복제된 제1 백업 데이터베이스를 소정 시간 후에 제2 백업 데이터베이스로 재복제함으로써 사용자 실수에 의한 논리적 데이터 손실을 신속하게 복구할 수 있다.
또한, 본 발명에 따르면, 파일이 아닌 로그를 복제하므로 전송되는 데이터의 크기 작아져 네트워크 트래픽 및 시스템 부하가 감소되어, 기존의 TCP/IP 네트워크 및 시스템을 증설하지 않거나 최소한의 증설로 활용 가능하므로 운영비용이 절감된다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명에 따른 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 개략도이다.
본 발명에 따른 데이터베이스의 실시간 복제를 통한 자동 복구 시스템은, 액티브 사이트(100) 내 액티브 에이전트(110), 및 액티브 데이터베이스(120)와, 백업 사이트(200) 내 제1 백업 에이전트(210), 제1 백업 데이터베이스(220), 제2 백업 에이전트(230) 및 제2 백업 데이터베이스(240)를 포함한다.
액티브 에이전트(110)는 액티브 데이터베이스(120)로부터 리두 로그(Redo Log)를 캡쳐하여 캡쳐한 리두 로그(Redo Log)가 커런트 리두 로그(Current Redo Log)이면 제1 백업 에이전트(210)로 커런트 리두 로그(Current Redo Log)를 전송하고, 기존의 전송 중인 리두 로그가 커런트 리두 로그(Current Redo Log)가 아니면 리두 로그 헤더(Redo Log Header)를 전송한다.
백업 사이트의 제1 백업 에이전트(210)는 커런트 리두 로그(Current Redo Log)를 수신하여 기존 로그 시퀀스 번호(Stored Log Sequence Number)와 현재 로그 시퀀스 번호(Current Log Sequence Number)가 일치하면 액티브 에이전트(110)로부터 수신되는 리두 로그(Redo Log)를 제1 백업 데이터베이스(220)에 "이어쓰기"를 실행하고, 일치하지 않으면 리두 로그(Redo Log)를 제1 백업 데이터베이스(220)에 "새로쓰기"를 실행한다. 한편, 제1 백업 에이전트(210)는 리두 로그 헤더(Redo Log Header)를 수신하여 기존 로그 시퀀스 번호(Stored Log Sequence Number)와 현재 로그 시퀀스 번호(Current Log Sequence Number)가 일치하면 제1 백업 데이터베이스(220)에 리두 로그(Redo Log)를 적용하나, 일치하지 않고 액티브 사이트의 장애로 판단되면 리두 로그 블록(Redo Log Block)과 리두 로그 파일(Redo Log File)을 수정한 후 리두 로그(Redo Log)를 적용한다.
본 발명에서는 유사 어휘가 다수 존재하여 정리하면 다음과 같다.
- 리두 로그 파일(Redo Log File): 복수개의 리두 로그 블록(Redo Log Block)의 집합
- 리두 로그 헤더(Redo Log Header)는 리두 로그 파일(Redo Log File)의 첫 부분에 위치하여 리두 로그 파일(Redo Log File)을 정의
- 리두 로그 블록(Redo Log Block): 복수개의 리두 로그(Redo Log)의 집합
- 블록 헤더(Block Header): 리두 로그 블록(Redo Log Block)의 첫 부분에 위치하여 리두 로그 블록(Redo Log Block)을 정의
- 리두 로그(Redo Log): Data 처리에 대한 기록으로 하나 이상의 리두 로그 블록에 포함됨
도 2는 본 발명에 따른 액티브 사이트측 액티브 에이전트(110)의 실행 흐름도이다.
액티브 에이전트(110)는 액티브 데이터베이스(120) 내 리두 로그 파일(Redo Log File)로부터 리두 로그 헤더(Redo Log Header)를 독출하여(S211), 독출된 리두 로그 헤더(Redo Log Header)를 포함하는 리두 로그(Redo Log)가 커런트 리두 로그(Current Redo Log)인지를 판단한다(S213).
독출된 리두 로그 헤더(Redo Log Header)를 포함하는 리두 로그(Redo Log)가 커런트 리두 로그(Current Redo Log)가 아니면, 리두 로그 헤더(Redo Log Header)를 제1 백업 에이전트(210)로 전송함과(S217) 아울러 리두 로그 헤더(Redo Log Header)를 독출하는 과정으로 회귀한다(S211). 여기서, 커런트 리두 로그(Current Redo Log)가 아니면, 리두 로그 헤더(Redo Log Header)에는 최선 시스템 체인지 번호(Start SCN: System Change Number, 시스템이 동작을 수행할 때마다 발생되는 번호) 및 이것의 저장시각(Time)과, 최후 시스템 체인지 번호(Last SCN) 및 이것의 저장시각, 그리고 리두 로그 블록(Redo Log Block)의 개수 등의 정보가 기록된다.
한편, 독출된 리두 로그 헤더(Redo Log Header)를 포함하는 리두 로그(Redo Log)가 커런트 리두 로그(Current Redo Log)이면, 기존 로그 시퀀스 번호(Stored LSN: Stored Log Sequence Number)와 현재 로그 시퀀스 번호(Current LSN)가 일치하는지를 판단한다(S215). 여기서, 리두 로그 파일(Redo Log File)은 순환적인 형태로 사용되므로 로그 시퀀스 번호(LSN)를 할당한다. 예컨대, 두 개의 파일이 리두 로그 파일(Redo Log File)을 구성하고 있다면, 첫번째 파일이 채워지고, 두번째 파일도 채워지면, 다시 첫번째 파일이 재사용되어 채워지고, 그 다음으로 두번째 파일이 재사용되고 채워진다. 이런 순환적인 과정이 반복되는데 파일이 채워질 때마다 리두 엔트리의 집합을 구별하기 위해 로그 시퀀스 번호(LSN)를 할당한다.
S215단계에서의 판단결과, 일치하면 액티브 에이전트(110)는 액티브 데이터베이스(120)의 현재 로그 시퀀스 번호(LSN)에 해당하는 전체 리두 로그 중 일부의 리두 로그가 전송되고 나머지 리두 로그는 아직 전송되지 않은 것으로 판단하여, 기존에 전송하고 남은 나머지 리두 로그를 이어보내기 위하여 "이어보내기"를 준비하고(S219), 일치하지 않으면 현재 로그 시퀀스 번호(LSN)에 해당하는 리두 로그는 전송되지 않은 것으로 판단하여 "새로 보내기"를 준비한다(S221).
보낼 준비가 완료되면, 블록 헤더(Block Header)가 커런트 블록 헤더(Current Block Header)인지를 판단하여(S223), 일치하면 커런트 블록 번호(Current Block Number)를 액티브 에이전트(110) 내 메모리에 저장하고(S225), 커런트 리두 로그(Current Redo Log)를 백업 에이전트(210)로 전송한다(S227).
도 3은 본 발명에 따른 백업 사이트측 백업 에이전트(210)의 실행 흐름도이다.
제1 백업 에이전트(210)는 커런트 리두 로그(Current Redo Log)를 수신하여(S311), 기존 로그 시퀀스 번호(Stored LSN)와 현재 로그 시퀀스 번호(Current LSN)이 일치하는지를 판단하고(S313), 일치하면 액티브 에이전트(110)로부터 수신되는 리두 로그(Redo Log)에 대하여 제1 백업 데이터베이스(220)에 "이어쓰기"를 실행하지만(S317), 일치하지 않으면 액티브 에이전트(110)로부터 수신되는 리두 로그(Redo Log)에 대하여 제1 백업 데이터베이스(220)에 "새로쓰기"를 실행한다(S315).
한편, 제1 백업 에이전트(210)는 리두 로그 헤더(Redo Log Header)를 수신하여(S321), 기존 로그 시퀀스 번호(Stored LSN)와 현재 로그 시퀀스 번호(Current LSN)가 일치하는지를 판단하고(S323), 일치하면 기 수신된 리두 로그(Redo Log)를 즉시 적용한다(S325). 한편, 일치하지 않고 액티브 사이트의 시스템 장애가 발생하면, 기 수신된 리두 로그를 직접 적용하지 않은 바, 마지막으로 적용된 시퀀스(Last applied sequence)보다 이후의 리두 로그(Redo Log)가 존재하는지를 판단한다(S327). 즉, 백업을 위한 리두 로그(Redo Log)가 존재하는지를 판단하고(S327), 존재하지 않으면 종료한다.
S327 단계에서, 백업을 위한 리두 로그(Redo Log)가 존재하면, 마지막 블록이 완벽한 상태로 존재하는지를 판단한다(S329). 즉, 쓰기가 완성되지 않은 데이터 블록이 존재하면 복구에 치명적인 에러가 발생하므로, 마지막 블록이 완벽한 상태가 아니면, 마지막 리두 로그(Last Redo Log)를 제거하고, 완벽하지 않은 마지막 블록 헤더(Last Block Header)의 포함된 정보(예컨대, Checksum)를 수정함으로써 정상적으로 쓰기가 종료된 블록 헤더(Block Header)인 것처럼 인식하게 한다.
마지막 블록 헤더(Last Block Header)를 수정한 후에는 마지막 블록 헤더(Last Block Header)를 포함하는 마지막 리두 로그 파일(Last Redo Log File)의 리두 로그 헤더(Redo Log Header)를 수정하는 바(S333), 마지막 블록 헤더(Last Block Header)의 SCN, 저장시각, 블록개수 등의 정보를 독출하여 마지막 리두 로그 파일(Last Redo Log File)의 리두 로그 헤더(Redo Log Header)의 해당 영역에 덮어쓰기를 실행한다.
이후 기 수신된 리두 로그를 적용한다(S335).
도 4는 본 발명에 따른 제2 백업 데이터베이스 생성 및 복구 흐름도이다.
제1 백업 에이전트(210)는 제2 백업 데이터베이스(240)에서 복구에 필요한 아카이브 로그 파일(Archive Log File)을 제2 백업 에이전트(230)로 전송하고(S411), 제2 백업 에이전트(230)는 제2 백업 데이터베이스(240)에 아카이브 로그 파일(Archive Log File)을 적용한다(S413). 이후, 제2 백업 에이전트(230)는 제2 백업 데이터베이스(240)로부터 액티브 에이전트(110)로 복구용 데이터를 익스포트(export)하고(S415), 액티브 에이전트(110)는 복구용 데이터를 액티브 데이터베이스로 임포트(import)한다(S417).
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
도 1은 본 발명에 따른 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 개략도,
도 2는 본 발명에 따른 액티브 사이트측 액티브 에이전트(110)의 실행 흐름도,
도 3은 본 발명에 따른 백업 사이트측 제1 백업 에이전트(210)의 실행 흐름도, 및
도 4는 본 발명에 따른 제2 백업 데이터베이스 생성 및 복구 흐름도.
*도면의 주요 부분에 대한 설명*
100: 액티브 사이트 200: 백업 사이트
110: 액티브 에이전트 210: 제1 백업 에이전트
120: 액티브 데이터베이스 220: 제1 백업 데이터베이스
230: 제2 백업 에이전트
240: 제2 백업 데이터베이스
Claims (8)
- 삭제
- 액티브 사이트 내 액티브 데이터베이스의 리두 로그를 수신하여 제1 백업 데이터베이스에 복제함에 있어서,제1 백업 에이전트가 상기 액티브 데이터베이스 내 리두 로그 파일의 리두 로그 헤더를 수신하는 단계;기 저장된 로그 시퀀스 번호와 수신된 리두 로그 헤더의 현재 로그 시퀀스 번호가 일치하는지를 판단하는 단계;상기 판단결과, 일치하면 상기 제1 백업 에이전트는 기 수신된 리두 로그를 적용하는 단계; 및상기 판단결과, 일치하지 않고 상기 액티브 데이터베이스의 장애로 판단되면 상기 제1 백업 데이터베이스에 저장된 리두 로그 정보를 수정하는 단계를 포함하고,상기 리두 로그 정보를 수정하는 단계는,상기 제1 백업 데이터베이스에 백업용 리두 로그가 존재하는지를 판단하는 단계;상기 백업용 리두 로그가 존재하면, 마지막 블록이 완벽한 상태로 존재하는지를 판단하는 단계;상기 마지막 블록이 완벽한 상태가 아니면, 상기 마지막 블록의 블록 헤더를 수정하는 제1 수정 단계;상기 제1 수정 단계 후, 마지막 블록의 블록 헤더를 포함하는 마지막 리두 로그 파일의 리두 로그 헤더를 수정하는 제2 수정 단계; 및상기 제2 수정 단계 후, 기 수신된 리두 로그를 상기 제1 백업 데이터베이스에 적용하는 단계를 포함하는 데이터베이스의 실시간 복제를 통한 자동 복구 방법.
- 제2항에 있어서,상기 제1 수정 단계는,완전하지 않은 마지막 리두 로그를 제거하는 단계; 및상기 마지막 블록의 블록 헤더에 포함된 정보를 정상적으로 쓰기 종료된 블록 헤더인 것처럼 인식하도록 수정하는 단계를 포함하는 데이터베이스의 실시간 복제를 통한 자동 복구 방법.
- 제2항에 있어서,상기 제2 수정 단계는,상기 마지막 블록의 블록 헤더의 마지막 시스템 체인지 번호, 저장시각, 및 블록개수를 포함하는 정보를 독출하여 마지막 리두 로그 파일의 리두 로그 헤더의 해당 영역에 덮어쓰기를 실행하는 것을 특징으로 하는 데이터베이스의 실시간 복제를 통한 자동 복구 방법.
- 액티브 사이트 내 액티브 데이터베이스의 리두 로그를 수신하여 제1 백업 데이터베이스에 복제함에 있어서,제1 백업 에이전트가 상기 액티브 데이터베이스 내 리두 로그 파일의 리두 로그 헤더를 수신하는 단계;기 저장된 로그 시퀀스 번호와 수신된 리두 로그 헤더의 현재 로그 시퀀스 번호가 일치하는지를 판단하는 단계;상기 판단결과, 일치하면 상기 제1 백업 에이전트는 기 수신된 리두 로그를 적용하는 단계;상기 판단결과, 일치하지 않고 상기 액티브 데이터베이스의 장애로 판단되면 상기 제1 백업 데이터베이스에 저장된 리두 로그 정보를 수정하는 단계상기 액티브 사이트 내 액티브 에이전트는 상기 액티브 데이터베이스 내 리두 로그 파일로부터 리두 로그 헤더를 독출하여, 독출된 상기 리두 로그 헤더를 포함하는 리두 로그가 커런트 리두 로그인지를 판단하는 단계;상기 리두 로그가 커런트 리두 로그가 아니면, 리두 로그 헤더를 상기 제1 백업 에이전트로 전송하는 단계;상기 리두 로그가 커런트 리두 로그이면, 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하는지를 판단하는 단계;상기 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하면, 기존에 전송하고 남은 나머지 리두 로그의 이어보내기를 준비하고, 일치하지 않으면 상기 현재 로그 시퀀스 번호에 해당하는 리두 로그의 새로 보내기를 준비하는 단계;독출된 리두 로그 블록의 블록 헤더가 커런트 블록 헤더인지를 판단하여, 일치하면 커런트 리두 로그 블록의 블록 번호를 상기 액티브 에이전트 내 메모리에 저장하는 단계; 및상기 커런트 리두 로그를 상기 제1 백업 에이전트로 전송하는 단계를 포함하는 데이터베이스의 실시간 복제를 통한 자동 복구 방법.
- 제2 항에 있어서,상기 리두 로그 정보를 수정하는 단계는 실시간으로 처리되는 것을 특징으로 하는 데이터베이스의 실시간 복제를 통한 자동 복구 방법.
- 액티브 사이트 내 액티브 데이터베이스로부터 제1 백업 데이터베이스로 리두 로그를 실시간으로 복제하고, 상기 제1 백업 데이터베이스로부터 제2 백업 데이터베이스로 소정 시간 지연시켜 주기적으로 재복제하는 데이터베이스의 자동 복구 방법에 있어서,백업 사이트 내 제1 백업 에이전트는 상기 제2 백업 데이터베이스에서 복구에 필요한 아카이브 로그 파일을 상기 백업 사이트 내 제2 백업 에이전트로 전송하는 단계;상기 제2 백업 에이전트는 상기 제2 백업 데이터베이스에 상기 아카이브 로그 파일을 적용하는 단계;상기 제2 백업 에이전트는 상기 제2 백업 데이터베이스로부터 상기 액티브 사이트 내 액티브 에이전트로 복구용 데이터를 익스포트하는 단계; 및상기 액티브 에이전트는 복구용 데이터를 상기 액티브 데이터베이스에 임포트하는 단계를 포함하는 데이터베이스의 실시간 복제를 통한 자동 복구 방법.
- 액티브 데이터베이스로부터 리두 로그를 캡쳐하여 상기 리두 로그가 커런트 리두 로그이면 제1 백업 에이전트로 상기 커런트 리두 로그를 전송하고, 상기 리두 로그가 커런트 리두 로그가 아니면 리두 로그 헤더를 전송하는 액티브 에이전트; 및상기 커런트 리두 로그를 수신하여 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하면 상기 액티브 에이전트로부터 수신되는 리두 로그를 제1 백업 데이터베이스에 이어쓰기를 실행하고, 상기 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하지 않으면 상기 리두 로그를 제1 백업 데이터베이스에 새로쓰기를 실행하며, 상기 리두 로그 헤더를 수신하여 상기 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하면 상기 제1 백업 데이터베이스에 수신된 리두 로그를 적용하나, 상기 기존 로그 시퀀스 번호와 현재 로그 시퀀스 번호가 일치하지 않고 상기 액티브 데이터베이스의 장애로 판단되면 리두 로그 블록과 리두 로그 파일의 정보를 수정하는 백업 에이전트를 포함하는 데이터베이스의 실시간 복제를 통한 자동 복구 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080088200A KR100891036B1 (ko) | 2008-09-08 | 2008-09-08 | 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080088200A KR100891036B1 (ko) | 2008-09-08 | 2008-09-08 | 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100891036B1 true KR100891036B1 (ko) | 2009-03-31 |
Family
ID=40698831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080088200A KR100891036B1 (ko) | 2008-09-08 | 2008-09-08 | 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100891036B1 (ko) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101071484B1 (ko) | 2009-06-15 | 2011-10-10 | 대성홀딩스 주식회사 | 데이터베이스의 논리적 데이터 오류 복구방법 |
KR101429575B1 (ko) * | 2012-10-22 | 2014-08-13 | 주식회사 엔써티 | 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법 |
KR101589213B1 (ko) * | 2015-07-15 | 2016-01-27 | 주식회사 지오그레이트 | 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 |
KR101605455B1 (ko) * | 2014-07-04 | 2016-03-22 | (주)선재소프트 | 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템 |
US9563655B2 (en) | 2013-03-08 | 2017-02-07 | Oracle International Corporation | Zero and near-zero data loss database backup and recovery |
KR20180101941A (ko) | 2017-03-06 | 2018-09-14 | 주식회사 데이터스트림즈 | 소스 데이터베이스 관리시스템에서 변경되는 데이터를 실시간으로 목표 데이터베이스 관리시스템에 복제하는 장치 및 그 방법 |
US10303701B1 (en) | 2017-10-11 | 2019-05-28 | Databank Systems Ltd. | Real-time integrated replication system between databases |
KR20200122723A (ko) * | 2019-04-18 | 2020-10-28 | 주식회사 웨이투빗 | 백업 데이터에 대한 신뢰성을 확보하면서도 블록체인 네트워크를 복구하는 딜레이드 동기화 방법 및 장치 |
KR20200122724A (ko) * | 2019-04-18 | 2020-10-28 | 주식회사 웨이투빗 | 백업 데이터에 대한 신뢰성을 확보하면서도 블록체인 네트워크를 복구하며, 노드를 재활용함으로써 자원 소모를 최소화하는 딜레이드 동기화 방법 및 장치 |
CN112612647A (zh) * | 2020-12-29 | 2021-04-06 | 上海达梦数据库有限公司 | 日志并行重演方法、装置、设备及存储介质 |
WO2023227921A1 (en) * | 2022-05-23 | 2023-11-30 | Coupang Corp. | Systems and methods for database migration |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070058281A (ko) * | 2004-03-31 | 2007-06-08 | 마이크로소프트 코포레이션 | 데이터베이스 백업의 일관성 검사를 위한 시스템 및 방법 |
-
2008
- 2008-09-08 KR KR1020080088200A patent/KR100891036B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070058281A (ko) * | 2004-03-31 | 2007-06-08 | 마이크로소프트 코포레이션 | 데이터베이스 백업의 일관성 검사를 위한 시스템 및 방법 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101071484B1 (ko) | 2009-06-15 | 2011-10-10 | 대성홀딩스 주식회사 | 데이터베이스의 논리적 데이터 오류 복구방법 |
KR101429575B1 (ko) * | 2012-10-22 | 2014-08-13 | 주식회사 엔써티 | 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법 |
US9563655B2 (en) | 2013-03-08 | 2017-02-07 | Oracle International Corporation | Zero and near-zero data loss database backup and recovery |
KR101605455B1 (ko) * | 2014-07-04 | 2016-03-22 | (주)선재소프트 | 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템 |
KR101589213B1 (ko) * | 2015-07-15 | 2016-01-27 | 주식회사 지오그레이트 | 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 |
KR20180101941A (ko) | 2017-03-06 | 2018-09-14 | 주식회사 데이터스트림즈 | 소스 데이터베이스 관리시스템에서 변경되는 데이터를 실시간으로 목표 데이터베이스 관리시스템에 복제하는 장치 및 그 방법 |
US10795911B2 (en) | 2017-03-06 | 2020-10-06 | Datastreams Corp. | Apparatus and method for replicating changed-data in source database management system to target database management system in real time |
US10303701B1 (en) | 2017-10-11 | 2019-05-28 | Databank Systems Ltd. | Real-time integrated replication system between databases |
KR20200122723A (ko) * | 2019-04-18 | 2020-10-28 | 주식회사 웨이투빗 | 백업 데이터에 대한 신뢰성을 확보하면서도 블록체인 네트워크를 복구하는 딜레이드 동기화 방법 및 장치 |
KR20200122724A (ko) * | 2019-04-18 | 2020-10-28 | 주식회사 웨이투빗 | 백업 데이터에 대한 신뢰성을 확보하면서도 블록체인 네트워크를 복구하며, 노드를 재활용함으로써 자원 소모를 최소화하는 딜레이드 동기화 방법 및 장치 |
KR102221366B1 (ko) * | 2019-04-18 | 2021-03-02 | 주식회사 웨이투빗 | 백업 데이터에 대한 신뢰성을 확보하면서도 블록체인 네트워크를 복구하며, 노드를 재활용함으로써 자원 소모를 최소화하는 딜레이드 동기화 방법 및 장치 |
KR102221350B1 (ko) * | 2019-04-18 | 2021-03-02 | 주식회사 웨이투빗 | 백업 데이터에 대한 신뢰성을 확보하면서도 블록체인 네트워크를 복구하는 딜레이드 동기화 방법 및 장치 |
US11436198B2 (en) | 2019-04-18 | 2022-09-06 | Metabora Co., Ltd. | Method and device for restoring blockchain network with its credibility on backup data maintained by using delayed synchronization |
CN112612647A (zh) * | 2020-12-29 | 2021-04-06 | 上海达梦数据库有限公司 | 日志并行重演方法、装置、设备及存储介质 |
CN112612647B (zh) * | 2020-12-29 | 2024-02-23 | 上海达梦数据库有限公司 | 日志并行重演方法、装置、设备及存储介质 |
WO2023227921A1 (en) * | 2022-05-23 | 2023-11-30 | Coupang Corp. | Systems and methods for database migration |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100891036B1 (ko) | 데이터베이스의 실시간 복제를 통한 자동 복구 시스템 및 그 방법 | |
US8229896B1 (en) | Method and apparatus for identifying data blocks required for restoration | |
US6101585A (en) | Mechanism for incremental backup of on-line files | |
US10229152B2 (en) | Automatically restoring data replication consistency without service interruption during parallel apply | |
US10503616B2 (en) | Periodic data replication | |
US8712970B1 (en) | Recovering a database to any point-in-time in the past with guaranteed data consistency | |
US7634679B2 (en) | Remote location failover server application | |
US8762342B1 (en) | Method of inserting a validated time-image on the primary CDP subsystem in a continuous data protection and replication (CDP/R) subsystem | |
US20090043826A1 (en) | Method for Reliably Updating A Data Group In A Read-Before-Write Data Replication Environment Using A Comparison File | |
US20070208918A1 (en) | Method and apparatus for providing virtual machine backup | |
US20030208511A1 (en) | Database replication system | |
CN111427898A (zh) | 一种基于解析Oracle日志的持续数据保护系统及方法 | |
CN105550073A (zh) | 数据库备份方法及其系统 | |
US8095510B2 (en) | Data restoration in a storage system using multiple restore points | |
JPH05233382A (ja) | トランザクション整合資源回復方法 | |
US20080162600A1 (en) | Optimizing backup and recovery utilizing change tracking | |
US20190227710A1 (en) | Incremental data restoration method and apparatus | |
CN112925676B (zh) | 一种基于wal实现分布式数据库集群任意时间点恢复的方法 | |
CN113360322B (zh) | 一种基于备份系统恢复数据的方法及设备 | |
US20100017648A1 (en) | Complete dual system and system control method | |
US20060101097A1 (en) | Replicated data validation | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
US7979650B2 (en) | Discovering data storage for backup | |
CN115495286A (zh) | 配置文件定时备份的测试方法、系统、设备和存储介质 | |
CN111949615A (zh) | 一种文件防误删处理方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130228 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140324 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150130 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180322 Year of fee payment: 10 |