KR20040046520A - 이중화 dbms에서의 상태제어 및 일관성 유지 방법 - Google Patents

이중화 dbms에서의 상태제어 및 일관성 유지 방법 Download PDF

Info

Publication number
KR20040046520A
KR20040046520A KR1020020074464A KR20020074464A KR20040046520A KR 20040046520 A KR20040046520 A KR 20040046520A KR 1020020074464 A KR1020020074464 A KR 1020020074464A KR 20020074464 A KR20020074464 A KR 20020074464A KR 20040046520 A KR20040046520 A KR 20040046520A
Authority
KR
South Korea
Prior art keywords
state
dbms
standby
active
log
Prior art date
Application number
KR1020020074464A
Other languages
English (en)
Other versions
KR100509946B1 (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 KR10-2002-0074464A priority Critical patent/KR100509946B1/ko
Publication of KR20040046520A publication Critical patent/KR20040046520A/ko
Application granted granted Critical
Publication of KR100509946B1 publication Critical patent/KR100509946B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이중화용 주 메모리 상주 데이터베이스 관리시스템에서 상태 제어 및 일관성을 유지하기 위한 방법에 관한 것으로서, 활동/대기 DBMS로 이중화를 형성하고 각 DBMS의 내부상태를 구비하는 단계; 초기 구동시 상기 DBMS를 포함하는 시스템의 상태와 상기 각 DBMS의 내부상태, 그리고 상대방 DBMS의 상태정보를 수신하여 초기상태를 설정하는 단계; 상기 초기화가 종료된 후 정상운용시 상기 시스템의 상태와 상대방 DBMS간에 송수신되는 상태정보를 기초로 상기 각 DBMS의 내부상태를 변경하는 단계;를 포함하는 것을 특징으로 하며, 두개의 DBMS가 활동 상태나 대기 상태로 모두 동시에 구동되는 현상을 배제할 수 있다. 또한 활동 DBMS에서도 재시동과 관련된 파일들을 디스크에 저장함으로써 이중화 상태에서 활동 DBMS의 재시동시 정상적으로 재시동되며 데이터베이스에 대한 일관성을 보장하며, 대기 DBMS의 재시동시 재수행(redo) 과정만을 수행함으로써, 그리고 활동 DBMS를 대기 DBMS로 교체하는 과정에서 로그 관리자의 잠금을 설정하고 로그 버퍼내의 로그 정보들을 대기 DBMS로 전송함으로써 활동 및 대기 데이터베이스에 대한 일관성을 제공한다.

Description

이중화 DBMS에서의 상태제어 및 일관성 유지 방법{Method for controlling and maintaining states of dual DBMS's}
본 발명은 주 메모리 상주 데이터베이스 관리시스템(Main Memory residentDatabase Management System : 이하 "MMDBMS" 혹은 "DBMS"라고 함)의 이중화 처리방법에 있어 이중화 DBMS의 상태를 제어하고, 이러한 상태 제어를 통하여 이중화 DBMS의 일관성을 유지하기 위한 방법에 관한 것이다.
기존 이중화 구조를 가지는 데이터베이스 관리시스템 및 그의 이중화 처리방법에서는 다음과 같은 문제점이 있다.
첫째, 종래의 방법에서는 DBMS 초기 구동시 상태 관리자로부터 DBMS의 상태를 수신하여 DBMS의 상태를 결정한다. 이러한 경우 이중화된 DBMS가 모두 활동(active-active) 상태로 운용될 수 있다. A 시스템의 DBMS는 대기 상태로 구동중이고, B 시스템의 DBMS는 활동 상태로 구동중이라고 가정하자. A 시스템이 시스템 오류로 인하여 재구동되고, DBMS가 재시동되는 시점에 상태 관리자로부터 검출된 상태가 활동 상태라면, A, B 두 시스템 모두에서 DBMS는 활동 상태로 동작하게 된다. 이러한 상황은 이중화 시스템 중 어느 한 시점에 각 시스템은 서로 다른 상태로 구동되어야 한다는 요구 사항을 충족시키지 못한다. 또한 이후에 B 시스템에서 상태 관리자로부터 대기 상태를 검출하여 대기 상태로 교체된다고 하더라도 A 시스템의 DBMS는 가장 최근 정보를 유지하는 B 시스템의 데이터베이스를 기반으로 재시동되지 않았기 때문에 데이터베이스에 대한 일관성을 보장하지 못한다.
둘째, 종래의 방법에서는 첫 번째 문제점에서와 동일한 이유로 이중화된 DBMS가 모두 대기(standby-standby) 상태로 운용될 수 있다. A 시스템의 DBMS는 대기 상태로 구동중이고, B 시스템의 DBMS는 활동 상태로 구동중이라고 가정하자. B 시스템이 시스템 오류로 인하여 재구동되고, DBMS가 재시동되는 시점에 상태 관리자로부터 검출된 상태가 대기 상태이라면, A, B 두 시스템 모두에서 DBMS는 대기 상태로 동작하게 된다. 이러한 상황은 이중화 시스템 중 어느 한 시점에 각 시스템은 서로 다른 상태로 구동되어야 한다는 요구 사항을 충족시키지 못한다. 또한 이후에 A 시스템에서 상태 관리자로부터 활동 상태를 검출하여 활동 상태로 교체된 이후에야 B 시스템은 정상적으로 동작할 수 있다.
셋째, 종래의 방법에서는 이중화된 DBMS가 정상적으로 구동시 활동 DBMS에서 대기 DBMS로 로그 버퍼내의 로그 정보를 전송하고 로그 버퍼의 내용을 기록하지 않는다. 이러한 경우 활동 DBMS가 재시동되는 시점에 상태 교체가 발생하였다면 아무런 문제 없이 이중화 시스템이 구동된다. 하지만 활동 DBMS가 재시동되는 시점에 상태 교체가 발생하지 않아 상태 관리자로부터 검출된 상태가 활동 상태라면 재시동을 위하여 필요한 로그 정보가 없거나 현재 데이터베이스 상태를 반영한 로그 정보가 아니므로 데이터베이스에 대한 일관성을 보장하지 못한다.
넷째, 종래의 방법에서는 대기 DBMS 재시동시 활동 DBMS로부터 재시동 관련 파일을 복사 후 정상적인 회복 기능을 수행한다. 대기 DBMS가 재시동되는 기간 동안 활동 DBMS에는 수행이 종료되지 않은 트랜잭션이 존재한다고 가정하자. 대기 DBMS의 재시동 과정이 종료되어 이중화 시스템이 정상적으로 구동될 경우, 활동 DBMS에서 종료되지 않은 트랜잭션이 데이터베이스에 변경 작업을 수행할 경우 로그 정보를 대기 DBMS에 전송한다. 이 때, 대기 DBMS에서는 정상적인 회복 과정을 수행했으므로 해당 트랜잭션에 대한 정보가 없으므로 무시한다. 활동 DBMS에서 해당 트랜잭션을 완료할 경우 대기 DBMS에는 해당 트랜잭션의 내용이 반영되지 못한다. 따라서 이러한 경우 활동 및 대기 데이터베이스에 대한 일관성을 제공하지 못한다.
다섯째, 종래의 방법에서는 활동 DBMS가 대기 DBMS로 상태 교체시 로그 버퍼내의 로그 정보를 대기 DBMS로 전송하지 않으므로 상태 교체 후 활동 DBMS에서 일관된 상태의 데이터베이스를 유지할 수 없다.
본 발명이 이루고자 하는 기술적 과제는 활동(active)과 대기(standby) 상태로 동작하는 MMDBMS의 이중화 처리방법에 있어서, 어느 한 시점에 각각 활동 DBMS, 대기 DBMS로 동작하도록 DBMS의 상태를 제어하고, 이러한 상태 제어와 동작 과정의 개선을 통하여 이중화 DBMS의 일관성을 유지하기 위한 방법을 제공하는 것이다.
도 1은 본 발명의 일 실시예에 따른 주 메모리 상주 데이터베이스 관리시스템(DBMS)의 이중화 구조를 도시한 블럭도이다.
도 2는 주 메모리 상주 DBMS가 가질 수 있는 내부 상태를 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 주 메모리 상주 DBMS의 초기 구동시 상태 제어 및 일관성 유지 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 주 메모리 상주 DBMS의 정상 운용시 상태 제어 및 일관성 유지 과정을 도시한 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 대기 DBMS가 상태 제어 및 일관성 유지 방법에 의해 활동 DBMS로 상태를 교체하는 과정을 도시한 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 활동 DBMS가 상태 제어 및 일관성 유지 방법에 의해 대기 DBMS로 교체하는 과정을 도시한 흐름도이다.
상기한 목적을 달성하기 위한 본 발명에 따른 이중화용 주 메모리 상주 데이터베이스 관리시스템에서 상태 제어 및 일관성 유지 방법은 활동 DBMS와 대기 DBMS가 통신망을 통하여 연결되어 활동 혹은 대기 중 어느 하나로 운용되는 이중화 구조를 형성하고 상기 이중화상태를 유지하는 방법에 있어서, 상기 각 DBMS의 내부상태를 구비하는 단계; 초기 구동시 상기 DBMS를 포함하는 시스템의 상태와 상기 각 DBMS의 내부상태, 그리고 상대방 DBMS의 상태정보를 수신하여 초기상태를 설정하는 단계; 상기 초기화가 종료된 후 정상운용시 상기 시스템의 상태와 상대방 DBMS간에 송수신되는 상태정보를 기초로 상기 각 DBMS의 내부상태를 변경하는 단계;를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하면서 본 발명의 일 실시 예에 따른 이중화MMDBMS에서의 상태 제어 및 일관성 유지 방법을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 이중화용 MMDBMS의 상태 제어 및 일관성 유지를 위한 이중화 구조를 도시한 도면이다. 이러한 이중화 구조를 가지는 DBMS는 두 개의 시스템에 설치되어 각각 활동(active) DBMS(110)와 대기(standby) DBMS(120)로 동작한다. 이 두 DBMS(101, 102)는 네트워크(103)를 통해 연결되어 정보를 송수신한다.
각 DBMS는 상태 관리자(111, 121), 통신 관리자(112, 122), DBMS 서버(113, 123), 디스크 데이터베이스(116, 126), 및 DBMS 서버에 포함된 로그 관리자(114, 124), 이중화 관리자(115, 125)를 포함한다. 상태 관리자(111, 121)는 시스템의 상태를 설정하고 설정된 상태 정보를 DBMS에 전송하는 작업을 수행한다. 통신 관리자(112, 122)는 사용자로부터 데이터베이스에 대한 접근 요구를 수신하여 DBMS 서버(113, 123)에 전달하고, DBMS 서버(113, 123)가 처리한 결과를 사용자에게 전송하는 기능을 수행한다. DBMS 서버(113, 123)는 통신 관리자로부터 수신한 질의를 처리하는 과정에 있어 메모리 데이터베이스에 대한 변경 작업을 수행하고 변경 내역을 로그로 작성하며, 변경된 메모리 데이터베이스를 디스크 데이터베이스(116, 126)로 백업하는 기능을 수행한다.
DBMS 서버(113, 123)에 위치한 로그 관리자(114, 124)는 활동 DBMS(110)에서는 메모리 데이터베이스의 변경 사항인 로그를 디스크 데이터베이스(116)에 반영하고 대기 DBMS(120)로 전송하며, 대기 DBMS(120)에서는 수신된 변경사항을 메모리 데이터베이스 및 디스크 데이터베이스(126)에 반영하는 작업을 수행한다. 이중화관리자(115, 125)는 이중화된 두 개의 메모리 데이터베이스에 대한 일치성 유지 및 DBMS의 내부 상태 제어를 담당하기 위한 것으로 독립된 쓰레드로 구성된다. 두 시스템의 DBMS 내부 상태 변화시 즉각적인 서비스를 수행할 수 있도록 DBMS내의 운영 정보들을 변경하는 작업을 수행한다.
도 2는 이중화용 MMDBMS가 가질 수 있는 내부 상태를 나타낸 도면이다. DBMS의 내부 상태(201)는 크게 활동 관련 상태(202), 대기 관련 상태(203), 비정상 상태(204)로 구분되며, 활동 관련 상태(202)는 다시 Active_alone 상태(특허청구범위에는 "제1상태"로 표현되었음,205)와, Active_dual 상태(특허청구범위에는 "제2상태"로 표현되었음, 206), Activating 상태(특허청구범위에는 "제3상태"로 표현되었음, 207) 및 Deactivating 상태(특허청구범위에는 "제4상태"로 표현되었음, 208)로 세분화된다. Active_alone 상태(205)는 대기 DBMS의 시스템 오류나 대기 DBMS와의 통신 장애 등으로 인해 활동 DBMS(110)가 데이터베이스 변경내역들을 대기 DBMS(120)로 송수신할 수 없는 상태이고, Active_dual 상태(206)는 대기 DBMS(120)와 정상적인 이중화 상태에서 데이터베이스 이중화를 수행할 수 있는 상태이며, Activating 상태(207)는 활동 DBMS 재시동시 초기에 설정되는 상태이거나 이중화된 상태의 대기 DBMS가 활동 DBMS로 변경되고 있는 상태이고, Deactivating 상태(208)는 활동 DBMS가 대기 DBMS와 상태를 교체하기 위해 대기 DBMS로 상태를 변경중인 경우이다.
대기 관련 상태(203)는 Standby_alone 상태(특허청구범위에는 "제5상태"로 표현되었음, 209)와 Standby_dual 상태(특허청구범위에는 "제6상태"로 표현되었음,210)로 세분화된다. Standby_alone 상태(209)는 대기 DBMS 재시동시 초기에 설정되는 상태이고, Standby_dual 상태(210)는 활동 DBMS의 Active_dual 상태와 관련된 경우로 대기 DBMS가 활동 DBMS로부터 데이터베이스 변경 내역들을 수신하면서 정상적으로 데이터베이스 이중화 처리를 수행하고 있는 상태이다.
마지막으로, 비정상 상태(204)는 시스템의 오류나 DBMS 구동 오류 상태로 데이터베이스에 대한 이중화 및 로컬 데이터베이스에 대한 변경도 처리할 수 없는 상태이다. 상세한 설명 및 특허청구범위의 해석에 있어서 다음과 같은 사항을 정리한다. 먼저 DBMS 내부 상태가 활동 관련 상태일 경우 활동 DBMS라 하고, 내부 상태가 대기 관련 상태일 경우 대기 DBMS라고 정의 한다. 그리고 특허청구범위에서 활동 DBMS 혹은 대기 DBMS를 포함하는 시스템은 넓게는 각 DBMS자체를 의미할 수 있고, 좁게는 도 1의 시스템 구성에 있어서 상태관리자를 의미할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 이중화용 MMDBMS의 초기 구동시 상태 제어 및 일관성 유지 과정을 도시한 흐름도이다. DBMS가 구동되면 먼저 상태 관리자로부터 현 시스템의 상태를 수신(301)한다. 상태 수신 결과 활동(Active)이면 DBMS 내부 상태가 활동 관련 상태인지 점검(302)하여 활동 관련 상태가 아니면 DBMS 구동을 중지(303)하고, 활동 관련 상태이면 DBMS 내부 상태를 Activating으로 설정(304)하고 디스크에 저장된 로그 정보와 디스크 데이터베이스를 이용해 정상적인 주 메모리 상주 DBMS의 회복 기능을 수행(305)한다. 회복 기능을 정상적으로 수행하고 나면 대기 DBMS에 재시동 메시지를 전송(306)하여 대기 DBMS가 재시동 되어 활동 DBMS와 데이터베이스에 대한 일관성을 보장하도록 한다. 재시동 메시지 전송이 성공적으로 이루어지면 DBMS 내부 상태를 Active_dual로 설정(307)하고 실패하면 Active_alone으로 설정(308)한다.
상태 관리자로부터 수신한 상태가 대기(Standby)이면 활동 DBMS에 대기 DBMS가 구동되었다는 것을 알리기 위하여 재시동 시작 메시지를 전송(309)하고 활동 DBMS로부터 활동 DBMS가 구동 상태라는 메시지를 수신(310)한다. 정상적으로 메시지 송수신이 수행되면 활동 DBMS로부터 재시동과 관련된 정보를 복사(311)하고 DBMS 내부 상태를 Standby_alone으로 설정(312)한다. 복사한 로그 정보를 기반으로 로그 레코드에 대한 재수행(redo) 과정만을 수행(313)하고 활동 DBMS에 재시동 과정이 종료되었음을 알리는 재시동 종료 메시지를 전송(314)한 후 DBMS 내부 상태를 Standby_dual로 설정(315)한다. 위 과정중에 에러가 발생하면 대기 DBMS 구동을 중지한다. 활동 및 대기 DBMS가 정상적으로 구동되면 DBMS는 상태 관리자, 활동/대기 DBMS로부터 메시지를 수신(316)하여 DBMS 상태 변화 및 상태 교체에 대비한다.
도 4는 본 발명의 일 실시 예에 따른 이중화용 MMDBMS의 정상 운용시 상태 제어 및 일관성 유지 과정을 도시한 동작 흐름도이다. 이중화된 각 DBMS는 정상 운용 중에 접근 요구 메시지를 수신하여 처리한다(400).
활동 DBMS에서는 통신 관리자, 상태 관리자, 대기 DBMS로부터 접근 요구 메시지를 수신한다(401). 대기 DBMS로부터 재시동 시작 메시지를 수신한 경우(411)에는 통신 관리자로부터 수신한 사용자 질의 처리를 중단하기 위하여 로그 관리자에 잠금을 설정(412)하고, 로그 버퍼의 내용을 디스크에 존재하는 로그 파일에 저장(413)한다. 그리고 대기 DBMS에 활동 DBMS가 구동중이라는 메시지를 전송(414)하고, 대기 DBMS로부터 재시동 종료 메시지를 수신(415)하기 위하여 기다린다. 메시지 수신이 성공하면 DBMS 내부 상태를 Active_dual로 설정(416)하고, 성공하지 못하면 DBMS 내부 상태를 Active_alone으로 설정(417)하고, 로그 관리자의 잠금을 해제하고 수신 메시지에 대한 처리를 종료한다.
상태 관리자로부터 상태 변경을 알리는 메시지를 수신하거나 대기 DBMS로부터 상태 교체 메시지를 수신(421)할 경우 대기 DBMS로 교체(442)한다.
통신 관리자로부터는 사용자 질의 메시지를 수신(431)하여 질의를 처리하며 데이터베이스에 대한 변경 내역을 로그로 작성한다(432). 이렇게 작성된 로그 정보는 로그 버퍼에 임시 보관되고 로그 버퍼가 가득차거나 트랜잭션이 완료되는 시점에 로그를 디스크에 존재하는 로그 파일에 저장(433)하고 DBMS 내부 상태가 Active_dual이거나 Deactivating인 경우(434)에 로그 관리자를 통하여 대기 DBMS로 로그 버퍼의 내용을 전송(435)한다. 로그 정보 전송이 실패하면 DBMS 내부 상태를 Active_alone으로 설정(436)하고 수신 메시지에 대한 처리를 종료한다.
대기 DBMS에서는 상태 관리자와 활동 DBMS로부터 접근 요구 메시지를 수신한다(451). 따라서 활동 DBMS에서와 같이 사용자 질의 메시지를 수신하지 못한다. 상태 관리자로부터 상태 변경을 알리는 메시지를 수신하였을 때 활동 DBMS와의 연결이 실패하거나 활동 DBMS로부터 상태 교체 메시지를 수신(461)할 경우 활동 DBMS로 교체(462)한다. 활동 DBMS로부터 로그 정보를 수신(471)한 경우에는 우선적으로 DBMS의 로그 버퍼에 로그 정보를 저장(472)하고, 로그 버퍼의 로그 레코드에 대한 재실행을 수행(473)하여 메모리 데이터베이스의 내용을 변경하고, 로그 관리자는메모리 로그 버퍼의 내용을 안정적인 기억장치인 디스크 로그 파일에 저장(474)하고 수신 메시지에 대한 처리를 종료한다.
도 5는 본 발명의 일 실시 예에 따른 대기 DBMS가 상태 제어 및 일관성 유지 방법에 의해 활동 DBMS로 상태를 교체하는 과정을 도시한 동작 흐름도이다.
대기 DBMS의 이중화 관리자가 상태 관리자로부터 변경된 상태 메시지를 수신했을 때 활동 DBMS로의 연결 설정이 실패(활동 DBMS가 비정상 상태)하거나 활동 DBMS로부터 상태 교체 메시지를 수신(501)하면 DBMS 내부 상태를 Activating으로 설정(502)하고, 수행중인 트랜잭션에 대해 철회를 수행(503)한다. 그리고 체크포인트 과정을 수행하면서 체크포인트에 대한 로그를 기록하고(504), 로그 버퍼의 내용을 안정적인 기억장치인 디스크 로그 파일에 저장(505)한 후, DBMS 내부 상태를 Active_dual로 설정(506)한다. 모든 작업이 성공적으로 수행되면 활동 DBMS에 대한 접근 요구 메시지를 처리하기 위하여 통신 관리자, 상태 관리자, 대기 DBMS로부터 메시지를 수신(507)한다.
도 6은 본 발명의 일 실시 예에 따른 활동 DBMS가 상태 제어 및 일관성 유지 방법에 의해 대기 DBMS로 상태를 교체하는 과정을 도시한 동작 흐름도이다.
활동 DBMS의 이중화 관리자가 상태 관리자로부터 변경된 상태 메시지를 수신하거나 대기 DBMS로부터 상태 교체 메시지를 수신(601)하면 DBMS 내부 상태를 Deactivating으로 설정(602)하고, 사용자 질의 메시지 처리시 로그 레코드를 기록하지 못하게 하기 위하여 로그 관리자의 잠금을 설정(603)한다. 그리고 로그 버퍼의 내용을 안정적인 기억장치인 디스크 로그 파일에 저장(604)하고, 로그 버퍼의내용을 대기 DBMS로 전송(605)한다. 그 다음 과정으로서 현재 수행중인 트랜잭션에 대해 철회를 수행(606)하고, 사용자 질의 메시지를 더 이상 수신하지 못하도록 통신 관리자의 내용을 초기화(607)하고, 대기 DBMS에 상태 교체 메시지를 전송(609)하고, DBMS 내부 상태를 Standby_dual로 설정(609)하고, 로그 관리자의 잠금을 해제(610)한다. 모든 작업이 성공적으로 수행되면 대기 DBMS에 대한 접근 요구 메시지를 처리하기 위하여 상태 관리자, 활동 DBMS로부터 메시지를 수신(611)한다.
본 발명에 의한 이중화용 주 메모리 상주 데이터베이스 관리시스템에서 상태 제어 및 일관성을 유지하기 위한 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이타 저장장치등이 있으며, 또한 캐리어 웨이브(예를들면 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다. 또한 본 발명에 의한 폰트 롬 데이터구조도 컴퓨터로 읽을 수 있는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이타 저장장치등과 같은 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다.
위에서 양호한 실시 예에 근거하여 이 발명을 설명하였지만, 이러한 실시 예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술사상을 벗어남이 없이 위 실시 예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이며, 위와 같은 실시 예나 변경 예 또는 조절 예를 모두 포함하는 것으로 해석되어야 할 것이다.
상기와 같은 이중화용 MMDBMS에서 이중화 상태 제어 및 일관성 유지 방법에 의해 구성되는 본 발명은 다음과 같은 효과를 갖는다.
첫째, DBMS 초기 구동시 상태 관리자로부터 수신한 정보와 DBMS 내부 상태를 비교하여 DBMS 상태를 결정함으로써 모두 활동 상태나 모두 대기 상태로 구동되는 현상을 배제한다. 따라서 어느 한 시점에 구동중인 이중화 시스템은 각각 활동 DBMS, 대기 DBMS로 동작한다.
둘째, 활동 DBMS에서도 재시동과 관련된 파일들을 디스크에 저장함으로써 이중화 상태에서 활동 DBMS의 재시동시 정상적으로 재시동되며 데이터베이스에 대한 일관성을 보장한다.
셋째, 대기 DBMS의 재시동시 재수행(redo) 과정만을 수행함으로써 대기 DBMS 재시동시 활동 DBMS에서 수행중인 트랜잭션에 대해 정상적으로 처리하고 활동 및 대기 데이터베이스에 대한 일관성을 보장한다.
넷째, 활동 DBMS를 대기 DBMS로 교체하는 과정에서 로그 관리자의 잠금을 설정하고 로그 버퍼내의 로그 정보들을 대기 DBMS로 전송함으로써 활동 및 대기 데이터베이스에 대한 일관성을 제공한다.

Claims (18)

  1. 활동 DBMS와 대기 DBMS가 통신망을 통하여 연결되어 활동 혹은 대기 중 어느 하나로 운용되는 이중화 구조를 형성하고 상기 이중화상태를 유지하는 방법에 있어서,
    (a) 상기 각 DBMS의 내부상태를 구비하는 단계;
    (b) 초기 구동시 상기 DBMS를 포함하는 시스템의 상태와 상기 각 DBMS의 내부상태, 그리고 상대방 DBMS의 상태정보를 수신하여 초기상태를 설정하는 단계;
    (c) 상기 초기화가 종료된 후 정상운용시 상기 시스템의 상태와 상대방 DBMS간에 송수신되는 상태정보를 기초로 상기 각 DBMS의 내부상태를 변경하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  2. 제1항에 있어서, 상기 (a)단계는
    상기 내부상태를
    상기 활동 DBMS가 데이터베이스 변경내역들을 상기 대기 DBMS와 통신할 수 없는 제1상태, 정상적인 이중화를 유지할 수 있는 제2상태, 상기 활동 DBMS 재시동시 초기설정상태 혹은 정상적인 이중화상태에서 상기 대기 DBMS가 활동 DBMS로 상태변경중인 제3상태, 그리고 정상적인 이중화상태에서 대기 DBMS로 상태를 변경중인 제4상태를 포함하는 활동관련상태,
    상기 대기 DBMS가 재시동시 초기에 설정되는 상태인 제5상태, 상기 대기 DBMS가 정상적인 이중화 상태를 유지하고 있는 상태인 제6상태를 포함하는 대기관련상태, 그리고
    이중화를 유지할 수 없거나 자신의 데이터베이스 변경도 할 수 없는 비정상상태로 구분하여 구비하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  3. 제1항에 있어서, 상기 (b)단계는
    (b1) 상기 DBMS를 포함하는 시스템의 상태를 수신한 후 그 상태에 기초하여 상기 제1내지 제2상태 혹은 제6상태중 어느 한 상태로 설정하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  4. 제3항에 있어서, 상기 (b1)단계는
    상기 시스템의 상태가 활동이고 상기 DBMS의 내부상태가 상기 활동관련상태가 아니면 구동을 중지시키는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  5. 제3항에 있어서, 상기 (b1)단계는
    상기 시스템의 상태가 활동이고 상기 DBMS의 내부상태가 상기 활동관련상태이면 상기 DBMS의 내부상태를 상기 제3상태로 설정하는 단계;
    로그정보와 디스크 데이터베이스를 기초로 회복기능을 수행하는 단계;
    상기 대기 DBMS로 재시동 메시지를 전송하고 상기 전송이 성공하면 상기 DBMS의 내부상태를 상기 제2상태로 설정하고, 실패하면 상기 제1상태로 설정하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  6. 제3항에 있어서, 상기 (b1)단계는
    상기 시스템의 상태가 대기이면 상기 활동 DBMS로 대기 DBMS가 구동되었다는 내용을 포함하는 재시동 시작 메지시를 전송하고 상기 활동 DBMS의 상태를 전송받는 단계;
    상기 재시동 시작 메시지 전송이 성공하고 상기 활동 DBMS의 상태가 구동중이면 상기 활동 DBMS로부터 재시동에 필요한 정보를 복사하는 단계;
    상기 내부상태를 상기 제5상태로 설정하는 단계;
    상기 복사한 정보를 기초로 로그 기록에 대한 재수행과정을 실행한 후 상기 활동 DBMS로 재시동완료 메시시를 전송하고 상기 내부상태를 상기 제6상태로 설정하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  7. 제1항에 있어서, 상기 (c)단계는
    (c1) 활동 DBMS로 운용중인 경우에는 사용자, 상기 대기 DBMS, 상기 활동 DBMS를 포함하는 시스템중 적어도 하나로부터 데이터베이스 접근 요구를 수신하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  8. 제7항에 있어서, 상기 (c1)단계는
    (c11) 상기 접근 요구를 상기 대기 DBMS로부터 수신하는 경우에는 상기 사용자로부터 수신한 사용자의 질의처리를 중단하는 단계;
    (c12) 상기 대기 DBMS로 활동 DBMS가 동작중임을 알리는 단계;
    (c13) 상기 대기 DBMS로부터 재시동 종료 메시지를 수신하면 상기 내부상태를 상기 제2상태로 설정하고, 수신하지 못하면 상기 제1상태로 설정하는 단계;
    (c14) 상기 상태설정이 완료되면 로그 정보 접근을 허용하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  9. 제8항에 있어서, 상기 (c11)단계는
    상기 로그 정보 접근을 불허하고 로그 버퍼의 내용을 로그 파일에 저장하여 질의처리를 중단하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  10. 제7항에 있어서, 상기 (c1)단계는
    (c11) 상기 대기 DBMS, 혹은 상기 활동 DBMS를 포함하는 시스템으로부터 상태교체 메시지를 수신하면 활동 DBMS를 대기 DBMS로 교체하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  11. 제10항에 있어서, 상기 (c11)단계는
    상기 내부상태를 상기 제4상태로 설정하는 단계;
    상기 로그 정보의 접근을 불허하고 로그 버퍼의 내용을 저장하는 단계;
    상기 로그 버퍼의 내용을 상기 대기 DBMS로 전송하는 단계;
    현재 수행중인 트랜젝션을 철회하는 단계;
    상기 활동 DBMS를 포함하는 시스템을 초기화하는 단계;
    상기 대기 DBMS로 상태교체 메시지를 전송한 후 상기 내부상태를 상기 제6상태로 설정하는 단계;
    상기 로그 정보의 접근을 허용하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  12. 제7항에 있어서, 상기 (c1)단계는
    (c12) 사용자로부터 접근 요구를 수신하는 경우에는 그 내용에 기초하여 변경내역을 로그로 작성한 후 상기 작성된 로그 정보를 저장하는 단계;
    (c13) 상기 내부상태가 제2상태 혹은 제4상태중 어느 한 상태이면 상기 로그 정보를 대기 DBMS로 송신하는 단계;
    (c14) 상기 송신이 실패하면 상기 내부상태를 제1상태로 설정하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  13. 제12항에 있어서, 상기 (c12)단계는
    상기 로그정보를 로그 버퍼에 보관하고, 상기 로그 버퍼가 가득 차거나 트랜젝션이 완료되는 때 상기 보관된 로그정보를 로그 파일로 저장하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  14. 제1항에 있어서, 상기 (c)단계는
    (c21) 대기 DBMS로 운용중인 경우에는 활동 DBMS, 상기 대기 DBMS를 포함하는 시스템중 적어도 하나로부터 데이터베이스 접근 요구를 수신하고, 사용자의 접근 요구는 불허하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  15. 제14항에 있어서, 상기 (c21)단계는
    상기 대기 DBMS를 포함하는 시스템으로부터 상태교체 메시지를 수신하였을 때 상기 활동 DBMS와 통신이 불능이거나 상기 상기 활동 DBMS로부터 상태교체 메시지를 수신하면 활동 DBMS로 상태를 교체하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  16. 제15항에 있어서, 상기 상태를 교체하는 단계는
    상기 내부상태를 상기 제3상태로 설정하는 단계;
    현재 수행중인 트랜젝션을 철회하는 단계;
    체크포인팅을 수행하며 각 체크포인트별 로그를 기록하고 저장하는 단계;
    상기 내부상태를 상기 제2상태로 설정하는 단계;를 포함하는 것을 특징으로하는 상태제어 및 일관성 유지방법.
  17. 제14항에 있어서, 상기 (c21)단계는
    상기 활동 DBMS로부터 로그정보를 수신하는 경우에는 상기 로그정보를 로그버퍼에 저장한 후 상기 로그정보에 기초하여 데이터베이스의 내용을 변경하고, 상기 로그 버퍼의 내용을 로그 파일에 저장하는 단계;를 포함하는 것을 특징으로 하는 상태제어 및 일관성 유지방법.
  18. 제1항의 단계를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-2002-0074464A 2002-11-27 2002-11-27 이중화 dbms에서의 상태제어 및 일관성 유지 방법 KR100509946B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0074464A KR100509946B1 (ko) 2002-11-27 2002-11-27 이중화 dbms에서의 상태제어 및 일관성 유지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0074464A KR100509946B1 (ko) 2002-11-27 2002-11-27 이중화 dbms에서의 상태제어 및 일관성 유지 방법

Publications (2)

Publication Number Publication Date
KR20040046520A true KR20040046520A (ko) 2004-06-05
KR100509946B1 KR100509946B1 (ko) 2005-08-24

Family

ID=37342055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0074464A KR100509946B1 (ko) 2002-11-27 2002-11-27 이중화 dbms에서의 상태제어 및 일관성 유지 방법

Country Status (1)

Country Link
KR (1) KR100509946B1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0589072A (ja) * 1991-08-05 1993-04-09 Nippon Telegr & Teleph Corp <Ntt> 二重化時の同期化制御方式
JP3919303B2 (ja) * 1997-09-30 2007-05-23 キヤノン株式会社 データベースシステム及びその制御方法及び情報処理装置
JP2001318900A (ja) * 2000-05-11 2001-11-16 Toshiba Corp データベース切替方式
KR20020036502A (ko) * 2000-11-10 2002-05-16 오길록 이중화 구조를 가지는 데이터베이스 관리시스템 및 그의이중화 처리방법
KR100450400B1 (ko) * 2001-12-26 2004-09-30 한국전자통신연구원 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법

Also Published As

Publication number Publication date
KR100509946B1 (ko) 2005-08-24

Similar Documents

Publication Publication Date Title
US6941327B2 (en) Apparatus and method for database synchronization in a duplex system
US7543181B2 (en) Recovery from failures within data processing systems
US6421688B1 (en) Method and apparatus for database fault tolerance with instant transaction replication using off-the-shelf database servers and low bandwidth networks
US7925633B2 (en) Disaster recovery system suitable for database system
US5799322A (en) System and method for stopping updates at a specified timestamp in a remote duplicate database facility
US7565572B2 (en) Method for rolling back from snapshot with log
US5799323A (en) Remote duplicate databased facility with triple contingency protection
US6658589B1 (en) System and method for backup a parallel server data storage system
US6907543B2 (en) Data storage system
US9753954B2 (en) Data node fencing in a distributed file system
KR100450400B1 (ko) 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법
US7043504B1 (en) System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets
US6594676B1 (en) System and method for recovery of multiple shared database data sets using multiple change accumulation data sets as inputs
EP0722236B1 (en) System and method for fault tolerant key management
US20010056554A1 (en) System for clustering software applications
US20070220059A1 (en) Data processing node
US20060010180A1 (en) Disaster recovery processing method and apparatus and storage unit for the same
JP2004334574A (ja) ストレージの運用管理プログラム、運用管理方法及び管理計算機
EP1208433A1 (en) Remote mirroring system, device, and method
US7370235B1 (en) System and method for managing and scheduling recovery after a failure in a data storage environment
US6408399B1 (en) High reliability multiple processing and control system utilizing shared components
KR20020036502A (ko) 이중화 구조를 가지는 데이터베이스 관리시스템 및 그의이중화 처리방법
KR100509946B1 (ko) 이중화 dbms에서의 상태제어 및 일관성 유지 방법
CN113297134A (zh) 数据处理系统及数据处理方法、装置、电子设备
CN111324632A (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: 20080805

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee