KR101265388B1 - 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법 - Google Patents

고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법 Download PDF

Info

Publication number
KR101265388B1
KR101265388B1 KR1020090060314A KR20090060314A KR101265388B1 KR 101265388 B1 KR101265388 B1 KR 101265388B1 KR 1020090060314 A KR1020090060314 A KR 1020090060314A KR 20090060314 A KR20090060314 A KR 20090060314A KR 101265388 B1 KR101265388 B1 KR 101265388B1
Authority
KR
South Korea
Prior art keywords
node
server node
database
broker
primary
Prior art date
Application number
KR1020090060314A
Other languages
English (en)
Other versions
KR20110002708A (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 KR1020090060314A priority Critical patent/KR101265388B1/ko
Priority to US13/381,853 priority patent/US9189348B2/en
Priority to PCT/KR2010/003995 priority patent/WO2011002169A2/ko
Priority to JP2012518485A priority patent/JP5529962B2/ja
Publication of KR20110002708A publication Critical patent/KR20110002708A/ko
Application granted granted Critical
Publication of KR101265388B1 publication Critical patent/KR101265388B1/ko
Priority to JP2014084462A priority patent/JP5901682B2/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

DBMS의 장애가 발생하더라도 지속적으로 서비스를 제공할 수 있는 본 발명에 따른 고가용성(High Availability) 데이터베이스 관리 시스템을 이용한 데이터베이스 관리 방법은 복수개의 브로커 노드와 복수개의 서버 노드를 포함하는 고가용성 데이터베이스 관리 시스템에서의 데이터베이스 관리 방법으로서, (a) 응용서버로부터 데이터베이스의 변경 요청이 수신되면, 상기 복수개의 브로커 노드 중 어느 하나의 브로커 노드를 상기 복수개의 서버 노드들 중 주 서버 노드에 접속시키는 단계; 및 (b) 상기 브로커 노드가 상기 주 서버 노드의 접속에 성공하면 상기 데이터베이스의 변경 요청을 상기 주 서버 노드가 처리하도록 하고, 상기 주 서버 노드의 장애로 상기 브로커 노드가 상기 주 서버 노드의 접속에 실패하면 상기 브로커 노드를 부 서버 노드들 중 어느 하나에 접속시킴으로써 상기 데이터베이스의 변경 요청을 상기 부 서버 노드가 처리하도록 하는 단계를 포함하는 것을 특징으로 한다.
DBMS, 고가용, 복제

Description

고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법{High Availability Data Base Management System and Method for Managing Database Using High Availability Data Base Management System}
본 발명은 데이터베이스 관리 시스템에 관한 것으로서 보다 상세하게는 고가용성 데이터베이스 관리 시스템에 관한 것이다.
데이터베이스 관리 시스템(Database Management System: DBMS, 이하 'DBMS'라 함)은 방대한 양의 데이터가 저장되어 있는 데이터베이스를 관리하기 위한 시스템으로서, 대량의 정보들이 쉴새 없이 생성되고 있는 현 시대에 있어서 없어서는 안될 중요한 요소로 인식되고 있으며, 이러한 DBMS는 온라인 서비스 제공을 위해 폭넓은 분야에서 다양하게 사용되고 있다.
이러한 DBMS를 운영하는 과정에서 DBMS 운영자의 실수나 시스템 하드웨어의 장애가 발생할 수 있는데, 이러한 장애가 발생하는 경우 막대한 손실로 이어질 수 있다. 특히, 24시간 동안 지속적으로 제공되는 포털 서비스의 경우 상술한 바와 같은 DBMS의 장애는 더욱 치명적일 수 있다.
따라서, DBMS의 장애 발생에도 불구하고 DBMS를 이용하는 서비스가 지속적으 로 제공될 수 있도록 하는 것과 DBMS의 장애 복구 시 데이터의 유실을 방지하는 것, 즉 DBMS의 장애에 대한 대비책이 DBMS의 운영에 있어서 가장 중요한 이슈라고 할 수 있다.
이러한 DBMS의 장애에 대한 대비책 중 하나로 운영 데이터베이스를 일정 시간 주기로 별도의 저장 장치에 백업하는 방식이 제안된 바 있다. 이러한 경우 DBMS의 장애 발생 시에 백업 데이터베이스를 기반으로 운영 데이터베이스를 복구하여 서비스를 재개할 수 있다. 그러나, 데이터베이스 백업 방식의 경우 일정 시간을 주기로 데이터베이스를 백업하기 때문에 백업 데이터베이스로 운영 데이터베이스를 복구한다 하더라도 백업 이후에 생성된 데이터는 유실될 수 있다는 문제가 있고, 데이터 유실의 범위를 줄이기 위해 백업 주기를 감소시키는 경우에는 시스템의 부하가 가중된다는 문제점이 있다.
이외에도 원본 데이터베이스의 비동기적으로 복제를 통해 대기(Standby) DBMS를 구성하는 방법이 제안된 바 있다. 이는 원본 데이터베이스의 내용을 대기 DBMS에 지속적으로 복제함으로써 원본 데이터베이스에 장애가 발생하는 경우 대기 DBMS를 이용하여 서비스를 제공하는 방식이다. 그러나, 비동기식 복제 방법의 경우 복제된 데이터베이스와 원본 데이터베이스가 정확하게 일치하지 않을 수가 있어 DBMS의 장애 발생시 데이터의 유실이 발생될 수 있다는 문제점이 있다.
예컨대, 원본 데이터베이스에 기본 키(Primary Key)가 1에서 100까지인 데이터가 순차적으로 저장되는 과정 중 기본 키가 1부터 99까지 반영된 상태에서 장애가 발생되었다고 가정하는 경우, 복제 데이터베이스로 서비스 제공은 가능하지만 복제 데이터베이스에는 기본 키가 100인 데이터가 없으므로 기본 키가 100인 새로운 데이터를 추가하게 되는데, 이는 원본 데이터베이스에 있던 기본 키 100의 데이터와는 다른 것이므로 동일한 기본 키를 가지는 두 개의 다른 데이터가 원본 데이터베이스와 복제 데이터베이스에 존재하게 되어 결과적으로 데이터의 유실이 발생하게 되는 것이다.
상술한 데이터베이스의 백업 및 복제 방법의 경우 상술한 문제점 이외에도, DBMS에 장애가 발생하면 백업 데이터베이스를 이용하여 복구된 운영 데이터베이스의 사용 및 복제 데이터베이스의 사용 여부가 수동으로 결정될 수 밖에 없어 실질적으로 서비스의 중단이 발생될 수 있다는 문제점이 있다.
또한, 상술한 데이터베이스의 백업 및 복제 방법의 경우, DBMS에 장애가 발생하면 DBMS에 접속하는 응용 프로그램이 직접 데이터베이스에 대한 접속 메커니즘을 변경하여야 한다는 문제점도 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, DBMS의 장애가 발생하더라도 지속적으로 서비스를 제공할 수 있는 고가용성(High Availability) 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법을 제공하는 것을 기술적 과제로 한다.
또한, 본 발명은 DBMS의 장애가 발생하는 경우 데이터의 유실 없이 지속적으로 서비스를 제공할 수 있는 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법을 제공하는 것을 다른 기술적 과제로 한다.
또한, 본 발명은 주 서버 노드와 부 서버 노드 간의 절체(Fail-Over) 및 복귀(Fail-Back)가 자동으로 수행될 수 있는 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법을 제공하는 것을 또 다른 기술적 과제로 한다.
또한, 본 발명은 DBMS의 장애가 발생하더라도 응용 프로그램의 수정이나 변경 없이 지속적으로 서비스를 제공할 수 있는 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법을 제공하는 것을 또 다른 기술적 과제로 한다.
또한, 본 발명은 디스크 기반의 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법을 제공하는 것을 또 다른 기술적 과제로 한다.
상술한 목적을 달성하기 위한 본 발명의 일 측면에 따른 고가용성 데이터베이스 관리 시스템을 이용한 데이터베이스 관리 방법은, 복수개의 브로커 노드와 복수개의 서버 노드를 포함하는 고가용성 데이터베이스 관리 시스템에서의 데이터베이스 관리 방법으로서, (a) 응용서버로부터 데이터베이스의 변경 요청이 수신되면, 상기 복수개의 브로커 노드 중 어느 하나의 브로커 노드를 상기 복수개의 서버 노드들 중 주 서버 노드에 접속시키는 단계; 및 (b) 상기 브로커 노드가 상기 주 서버 노드의 접속에 성공하면 상기 데이터베이스의 변경 요청을 상기 주 서버 노드가 처리하도록 하고, 상기 주 서버 노드의 장애로 상기 브로커 노드가 상기 주 서버 노드의 접속에 실패하면 상기 브로커 노드를 부 서버 노드들 중 어느 하나에 접속시킴으로써 상기 데이터베이스의 변경 요청을 상기 부 서버 노드가 처리하도록 하는 단계를 포함하는 것을 특징으로 한다.
상기 (b) 단계에서, 상기 브로커 노드가 상기 주 서버 노드의 접속에 실패하면, 상기 브로커 노드를 미리 정해진 순서에 따라 상기 부 서버 노드들에 순차적으로 접속시키는 것을 특징으로 한다.
또한, 상기 (b) 단계에서, 상기 주 서버 노드의 장애가 감지되면 상기 브로커 노드가 접속될 부 서버 노드를 스탠바이 상태에서 액티브 상태로 변경함으로써 상기 브로커 노드가 상기 부 서버 노드에 접속 가능하도록 하는 것을 특징으로 한다.
일 실시예에 있어서, 상기 (b) 단계에서 상기 브로커 노드가 상기 부 서버 노드에 접속된 경우, (c) 상기 주 서버 노드의 장애 복구가 감지되면 상기 부 서버 노드를 액티브 상태에서 스탠바이 상태로 변경하여 상기 부 서버 노드에 대한 상기 브로커 노드의 접속을 차단함으로써 상기 브로커 노드를 상기 주 서버 노드에 접속시키는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 (b) 단계에서 상기 브로커 노드가 상기 부 서버 노드에 접속된 경우, (c) 상기 주 서버 노드의 장애 발생 후 상기 주 서버 노드의 장애가 복구되면, 상기 주 서버 노드를 스탠바이 상태로 설정하여 상기 부 서버 노드에 의한 데이터베이스 변경 요청 처리에 따른 트랜잭션 로그를 상기 주 서버 노드의 데이터베이스에 반영한 후, 상기 주 서버 노드를 스탠바이 상태에서 액티브 상태로 변경함으로써 상기 브로커 노드를 상기 주 서버 노드에 다시 접속시키는 단계를 더 포함하는 것을 특징으로 한다.
다른 실시예에 있어서, 상기 (b) 단계에서 상기 데이터베이스의 변경 요청을 상기 주 서버 노드가 처리하는 경우 상기 (b) 단계는, (b1) 상기 주 서버 노드가 상기 데이터베이스 변경 요청에 따라 상기 주 서버 노드의 데이터베이스를 변경하고 상기 데이터베이스 변경에 따른 트랜잭션 로그를 생성하는 단계; 및 (b2) 상기 주 서버 노드의 데이터베이스 복제를 위해 상기 트랜잭션 로그를 상기 부 서버 노드들에게 전송 하는 단계를 포함하는 것을 특징으로 한다.
한편, 상기 부 서버 노드는 상기 주 서버 노드로부터 상기 주 서버 노드의 트랜잭션 로그가 전송되면, 상기 부 서버 노드의 데이터베이스에 상기 주 서버 노드의 트랜잭션 로그를 반영함으로써 상기 주 서버 노드의 데이터베이스와 상기 부 서버 노드의 데이터베이스를 동기시키는 것을 특징으로 한다.
또한, 상기 (b) 단계에서 상기 데이터베이스 변경 요청을 상기 부 서버 노드가 처리하는 경우 상기 (b) 단계는, (b1) 상기 부 서버 노드가 상기 데이터베이스 변경 요청에 따라 상기 부 서버 노드의 데이터베이스를 변경하고 상기 데이터베이스 변경에 따른 트랜잭션 로그를 생성하는 단계; 및 (b2) 상기 부 서버 노드의 데이터베이스 복제를 위해 상기 트랜잭션 로그를 상기 주 서버 노드 또는 다른 부 서버 노드들에게 전송 하는 단계를 포함하는 것을 특징으로 한다.
이때, 상기 주 서버 노드 또는 다른 부 서버 노드들은 상기 부 서버 노드로부터 상기 부 서버 노드의 트랜잭션 로그가 전송되면, 상기 주 서버 노드 또는 다른 부 서버 노드의 데이터베이스에 상기 부 서버 노드의 트랜잭션 로그를 반영함으로써 상기 부 서버 노드의 데이터베이스와 상기 주 서버 노드 또는 다른 서버 노드들의 데이터베이스를 동기시키는 것을 특징으로 한다.
상술한 복수개의 서버 노드들은 디스크 기반으로 운영되는 것을 특징으로 한다.
한편, (a) 단계는 상기 브로커 노드의 장애 여부를 판단하는 단계를 더 포함하고, 상기 (a) 단계에서 상기 브로커 노드에 장애가 발생된 것으로 판단되면, 상기 복수개의 브로커 노드들 중 미리 정해진 순서에 따른 다른 브로커 노드가 상기 데이터베이스의 변경 요청을 수신하도록 함으로써 상기 다른 브로커 노드를 상기 주 서버 노드에 접속시키는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 다른 측면에 따른 고가용성 데이터베이스 관리 시스템은, 응용서버로부터 데이터베이스의 변경 요청을 수신하고, 주 서버 노드에 접속을 시도하여 접속이 성공하면 상기 주 서버 노드로 상기 데이터베이스 변경 요청을 전송하고, 상기 주 서버 노드의 장애로 상기 주 서버 노드에 대한 접속이 실패하면 미리 정해진 순서에 따라 하나 이상의 부 서버 노드에 순차적으로 접속을 시도하여 접속이 성공하는 부 서버 노드에 상기 데이터베이스의 변경 요청을 전송하는 브로커 노드; 상기 브로커 노드가 접속되면 상기 브로커 노드로부터 전송되는 상기 데이터베이스의 변경 요청을 수신하여 처리하는 주 서버 노드; 및 상기 주 서버 노드의 장애로 상기 브로커 노드가 접속되면 상기 브로커 노드로부터 전송되는 상기 데이터베이스의 변경 요청을 수신하여 처리하는 하나 이상의 부 서버 노드를 포함하는 것을 특징으로 한다.
본 발명에 따르면, DBMS의 장애가 발생하더라도 지속적으로 서비스를 제공할 수 있으므로, 서비스 제공의 신뢰도를 향상시킬 수 있다는 효과가 있다.
또한, 본 발명은 동기식 방법을 이용하여 데이터베이스를 복제할 수 있기 때문에, DBMS의 장애가 발생하는 경우 데이터의 유실을 방지할 수 있다는 효과가 있다.
또한, 본 발명은 주 서버 노드와 부 서버 노드간의 절체 및 복귀가 자동으로 수행되게 함으로써 활동서버와 대기서버간의 절체 및 복귀 시간을 단축시킬 수 있다는 효과가 있다.
또한, 본 발명은 DBMS의 장애가 발생하더라도 DBMS의 접속을 담당하는 브로커에 의해 서비스 가능한 데이터베이스에 대한 접속이 자동으로 결정되기 때문에 응용 프로그램의 수정이나 변경 없이 서비스를 제공할 수 있다는 효과가 있다.
또한, 본 발명은 디스크 기반으로 운영되기 때문에 대용량의 데이터를 용이하게 처리할 수 있다는 효과가 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 고가용성 데이터베이스 관리 시스템이 적용된 개략적인 네트워크 구성도를 보여준다. 도 1에 도시된 고가용성 데이터베이스 관리 시스템(100)은 응용 서버(110)로부터 전송되는 데이터베이스 변경 요청을 처리하는 것으로서, 도시된 바와 같이 데이터베이스 관리 시스템(100)은 주 브로커 노드(120a)와 복수개의 부 브로커 노드(120b~120m)로 구성되는 복수개의 브로커 노드(120a~120m)와 주 서버 노드(130a)와 복수개의 부 서버 노드(130b~130n)로 구성되는 복수개의 서버 노드(130a~130n)를 포함한다.
먼저, 복수개의 브로커 노드(120a~120m)는 주 브로커 노드(120a)와 복수개의 부 브로커 노드(120b~120m)로 구성된다. 본 실시예에 있어서, 브로커 노드(120a~120m)를 복수개로 구현하는 이유는 주 브로커 노드(120a)에 장애가 발생하는 경우, 부 브로커 노드(120b~120m)가 정상적으로 서비스를 제공할 수 있도록 하기 위함이다.
구체적으로, 주 브로커 노드(120a)는 응용 서버(110)로부터 데이터베이스 변경 요청을 수신하고, 먼저 주 서버 노드(130a)에 접속을 시도하여 접속이 성공하면 상기 주 서버 노드(130a)로 데이터베이스 변경 요청을 전송한다.
만약, 주 서버 노드(130a)에 장애가 발생하여 주 서버 노드(130a)에 대한 접속이 실패하면 주 브로커 노드(120a)는 주 브로커 노드(120a)에 포함된 서버 접속 리스트 상에서 미리 정해진 순서에 따라 부 서버 노드(130b~130n)에 순차적으로 접속을 시도하고, 접속이 성공하는 부 서버 노드에 데이터베이스의 변경 요청을 전송한다.
이와 같이, 본 발명은 주 서버 노드(130a)에 장애가 발생하더라도 주 브로커 노드(120a)가 자동으로 부 서버 노드(130b~130n)에 데이터베이스 변경 요청을 전송하여 부 서버 노드(130a~130n)에 의해 데이터베이스 변경 요청이 처리되게 함으로써 응용 서버(110)의 수정이나 변경 없이도 지속적인 서비스 제공이 가능하게 된다.
한편, 주 브로커 노드(120a)에 장애가 발생되면 부 브로커 노드들(120b~120m) 중 미리 정해진 순서에 따른 어느 하나의 부 브로커 노드가 응용 서버(110)로부터 데이터베이스의 변경 요청을 수신하고, 수신된 데이터베이스 변경 요청을 주 서버 노드(130a) 또는 부 서버 노드(130b~130n) 중 어느 하나로 전송한다.
구체적으로, 주 브로커 노드(120a)에 장애가 발생하면 제1 부 브로커 노드(120b)가 주 브로커 노드(120a)에서 처리되던 서버 노드 중계 작업을 처리하고, 연속된 장애로 제1 부 브로커 노드(120b)에 장애가 발생하면 제2 부 브로커 노드(120c)가 서버 노드 중계 작업을 인계 받아 처리 한다.
따라서, 본 발명에서는 모든 브로커 노드가 주 브로커 노드 역할을 수행함과 동시에 다른 브로커 노드들의 백업 역할을 수행할 수 있는 액티브(Active)-액티브(Active) 구조이기 때문에 브로커 노드들에 중첩적으로 발생될 수 있는 장애에도 대비할 수 있다.
다음으로, 복수개의 서버 노드(130a~130n)는 상술한 바와 같이 주 서버 노드(130a)와 복수개의 부 서버 노드(130b~130m)들로 구성된다. 이때, 모든 서버 노드들은 동일한 IDC(Internet Data Center) 내에 포함될 수 있지만 변형된 실시예에 있어서는 일부 부 서버 노드들은 주 서버 노드(130a)와 다른 IDC 내에 포함될 수도 있다.
본 실시예에 있어서, 서버 노드를 브로커 노드와 같이 복수개로 구현하는 이유는 주 서버 노드(130a)에 장애가 발생하는 경우, 부 서버 노드(130b~130m)가 정상적으로 서비스를 제공할 수 있도록 하기 위함이다.
도 1에 도시된 바와 같이, 주 서버 노드(130a)는 브로커 노드(120a)가 접속되면 브로커 노드(120a)로부터 전송되는 데이터베이스의 변경 요청을 수신하여 처리하는 기능을 수행하고, 부 서버 노드(130b~130m)는 주 서버 노드(130a)에 발생된 장애로 인해 브로커 노드(120a)가 주 서버 노드(130a)에 접속될 수 없는 경우, 브로커 노드(120a)로부터 전송되는 데이터베이스의 변경 요청을 수신하여 처리하는 기능을 수행한다.
이때, 복수개의 부 서버 노드들(130b~130n)중 브로커 노드(120a~120m)가 접속될 부 서버 노드는 상술한 바와 같이, 브로커 노드(120a~120m)가 보유하고 있는 서버 접속 리스트 상에서의 순서에 따라 결정된다.
이하에서는, 도 2를 참조하여 상술한 서버 노드의 세부 구성에 대해 구체적으로 설명하기로 한다.
도 2는 서버 노드의 세부 구성을 개략적으로 보여주는 도면이다. 도시된 바와 같이, 서버 노드(130)는 서버(131), 로그 기록부(132), 로그 반영부(133), 트랜잭션 로그 저장부(134), 데이터베이스(135), 장애 감지부(136)을 포함한다. 이하에서는 설명의 편의를 위해 도 2에 도시된 서버 노드는 주 서버 노드인 것으로 가정하여 설명하기로 한다.
먼저, 서버(131)는 브로커 노드(120a~120m)가 주 서버 노드(130a)로 접속하면 브로커 노드(120a~120m)로부터 데이터베이스 변경 요청을 수신하고, 수신된 데이터베이스 변경 요청에 따라 데이터베이스(135)를 변경한다.
또한, 서버(131)는 데이터베이스 변경 요청에 따라 데이터베이스(135)를 변경함과 동시에 데이터베이스(135)의 변경에 따른 트랜잭션 로그를 생성하여 트랜잭션 로그 저장부(134)에 저장하고, 생성된 트랜잭션 데이터 로그를 복제하여 복수개의 부 서버 노드(130b~130n)들 중 적어도 하나로 전송한다.
여기서, 서버(131)가 자신의 트랜잭션 로그를 복제하여 부 서버 노드(130b~130m)들 중 적어도 하나로 전송하는 것은, 부 서버 노드(130b~130n)가 주 서버 노드(130a)의 트랜잭션 로그를 부 서버 노드(130b~130n)의 데이터베이스에 반영함으로써 주 서버 노드(130a)의 데이터베이스를 복제하고, 이를 통해 주 서버 노드(130a)에 장애가 발생하는 경우 부 서버 노드(130b~130n)가 정상적으로 서비스를 제공할 수 있도록 하기 위함이다.
로그 기록부(132)는 부 서버 노드(130b~130n)들의 데이터베이스의 변경 사항을 주 서버 노드(130a)의 데이터베이스에 반영하기 위해 부 서버 노드(130b~130n)로부터 부 서버 노드(130b~130n)의 트랜잭션 로그를 수신하여 트랜잭션 로그 저장부(134)에 기록한다.
로그 기록부(132)가 부 서버 노드(130b~130n)의 트랜잭션 로그를 수신하여 트랜잭션 로그 저장부(134)에 기록하는 이유는 주 서버 노드(130a)의 장애 중 부 서버 노드(130b~130n)에 의해 처리된 데이터베이스 변경 요청 사항을 주 서버 노드(130a)의 데이터베이스에도 동일하게 반영하기 위한 것이다.
로그 반영부(133)는 로그 기록부(132)에 의해 수신된 부 서버 노드(130b~130n)의 트랜잭션 로그를 분석하여 서버(131)를 통해 데이터베이스(135)에 반영함으로써 서버 노드들의 데이터베이스가 동기화되도록 한다.
한편, 장애 감지부(136)는 일정 주기로 자신 또는 부 서브 노드의 장애 또는 장애 복구 여부를 모니터링하고, 그 결과를 서버(131)로 전송함으로써 서버(131)가 자신의 상태를 변경하도록 한다.
일 실시예에 있어서, 장애 감지부(136)는 주 서버 노드(130a)에 장애가 발생하면, 장애 발생 사실을 부 서버 노드(130b~130n)로 전송함으로써 부 서버 노드(130b~130n)중 어느 하나의 서버 노드의 상태가 스탠바이 상태에서 액티브 상태로 변경될 수 있도록 함으로써 서비스를 제공하는 서버 노드가 자동으로 부 서버 노드로 절체(Fail-Over)될 수 있도록 한다.
또한, 장애 감지부(136)는 주 서버 노드(130a)에 발생된 장애의 복구가 감지 되면, 이를 서버(131) 및 서비스를 담당하고 있던 부 서버 노드로 통지한다. 이를 통해, 주 서버 노드(130a)는 스탠바이 상태를 경유하여 액티브 상태로 변경되도록 하고, 서비스를 담당하고 있던 부 서버 노드는 투비 스탠바이 상태를 경유하여 스탠바이 상태가 되도록 한다.
구체적으로, 주 서버 노드(130a)의 서버(131)는 장애 복구가 통지되면 주 서버 노드(130a)의 상태를 스탠바이 상태로 설정하고, 주 서버 노드(130a)의 장애 발생 시간 동안 발생된 부 서버 노드(130b~130n)의 데이터베이스(미도시) 변경 사항에 대한 트랜잭션 로그가 데이터베이스(135)에 반영되면 주 서버 노드(130a)의 상태가 스탠바이 상태에서 액티브 상태로 변경될 수 있도록 함으로써 서비스를 제공하는 서버 노드가 자동으로 부 서버 노드에서 주 서버 노드로 복귀(Fail-Back) 될 수 있도록 한다.
상술한 장애 감지부(136)가 부 서버 노드(130a~130n)에 포함되는 경우, 장애 감지부(136)는, 주 서버 노드(130a)의 장애가 감지되면 부 서버 노드(130b~130n)의 모드가 스탠바이 상태에서 액티브 상태로 변경될 수 있도록 하고, 주 서버 노드(130a)의 장애 복구가 감지되면 부 서버 노드(130b~130n)의 모드를 액티브 상태에서 스탠바이 상태로 변경한다.
상술한 장애 감지부(136)는 Heartbeat 프로세스를 이용하여 구현될 수 있다.
한편, 상술한 바와 같은 복수개의 서버 노드(130a~130n)들은 대용량의 데이터를 처리하기 위해 디스크 기반으로 운영될 수 있다.
이하에서는 도 3을 참조하여, 서버 노드의 상태 변경과정을 설명하기로 하되 설명의 편의를 위해, 부 서버 노드의 도번은 130b로 표기하기로 한다.
서버 노드의 상태 변경 과정을 설명하기에 앞서 각 서버 노드의 상태에 대해 간략하게 설명한다. 서버 노드의 상태는 크게 아이들(Idle) 상태, 액티브 상태, 스탠바이 상태, 투비 액티브(To-be-active)상태, 투비 스탠바이(To-be-standby) 상태, 및 데드(Dead) 상태로 구분된다.
먼저, 아이들 상태는 서버 노드가 실행되지 않은 상태로써 실제 서버 노드에 있어서는 없는 상태일 수 있다.
다음으로, 액티브 상태는 데이터베이스 변경 요청, 특히 데이터베이스 업데이트(Update) 요청을 처리할 수 있는 상태를 의미한다.
다음으로, 스탠바이 상태는 액티브 상태인 서버 노드의 트랜잭션 로그를 복제하며 대기하는 상태를 의미하는 것으로서, 주 서버 노드(130a)는 장애가 발생하였다가 장애가 복구되면 스탠바이 상태로 설정되고, 부 서버 노드(130b)는 최초에 스탠바이 상태로 설정된다. 서버 노드가 스탠바이 상태일 때에 서버 노드는 데이터베이스의 선택 요청(Select)은 처리할 수 있으나 업데이트 요청은 처리할 수 없다.
다음으로, 투비 액티브 상태는 스탠바이 상태인 서버 노드가 액티브 상태로 되기 이전의 상태를 의미하는 것으로서, 주 서버 노드(130a)의 경우 장애 복구 후 스탠바이 상태에서 액티브 상태로 천이하는 과정 중에 거치게 되는 상태이고, 부 서버 노드(130b)의 경우 주 서버 노드(130a)의 장애 발생 시 스탠바이 상태에서 액티브 상태로 천이하는 과정 중에 거치게 되는 상태이다. 서버 노드가 투비 액티브 상태일 경우, 브로커 노드(120a~120m)의 접속은 허용이 되나 해당 서버 노드가 액티브 상태가 될 때까지는 모든 데이터베이스 변경 요청은 서스펜드(Suspend)된다.
다음으로, 투비 스탠바이 상태는 액티브 상태인 서버 노드가 스탠바이 상태가 되기 이전의 상태를 의미하는 것으로서, 주 서버 노드(130a)의 장애가 복구되면 부 서버 노드(130b)가 액티브 상태에서 다시 스탠바이 상태로 천이하는 과정 중에 거치게 되는 상태이다. 서버 노드가 투비 스탠바이 상태일 경우, 해당 서버 노드에서 실행되고 있던 트랜잭션들은 계속 실행이 되나 새로운 브로커 노드(120a~120m)의 접속은 차단된다.
마지막으로, 데드 상태는 해당 서버 노드에 장애가 발생된 것을 의미하는 것으로서, 아이들 상태와 같이 실제 서버 노드에서는 없는 상태이다. 해당 서버 노드가 데드 상태일 경우 해당 서버 노드는 스탠바이 상태로만 천이할 수 있다.
상술한 서버 노드의 상태 천이 과정을 도 3을 참조하여 구체적으로 설명하면, 먼저, 도 3a에 도시된 바와 같이, 데이터베이스 변경 요청이 수신되면 주 서버 노드(130a)는 자신의 상태를 아이들 상태에서 액티브 상태로 천이시키고, 부 서버 노드(130b)는 자신의 상태를 아이들 상태에서 스탠바이 상태로 천이시킨다. 이러한 상태에서 주 서버 노드(130a)는 데이터베이스 변경 요청을 처리하면서 발생되는 트랜잭션 로그를 부 서버 노드(130b)로 전송함으로써 부 서버 노드(130b)가 주 서버 노드(130a)의 데이터베이스를 복제할 수 있도록 한다.
이후, 도 3b에 도시된 바와 같이, 주 서버 노드(130a)에 장애가 발생하면 주 서버 노드(130a)는 액티브 상태에서 데드 상태로 천이하고, 부 서버 노드(130b)는 스탠바이 상태에서 투비 액티브 상태로 천이한다. 이러한 경우, 브로커 노드(120a~120m)는 주 서버 노드(130a)로의 접속이 차단되기 때문에 자동으로 부 서버 노드(130b)로 접속하여 부 서버 노드(130b)로 데이터베이스 변경 요청을 전달하지만 부 서버 노드(130b)가 투비 액티브 상태이기 때문에 데이터베이스 변경 요청은 서스펜드 된다.
이후, 도 3c에 도시된 바와 같이, 부 서버 노드(130b)는 주 서버 노드(130a)의 모든 트랜잭션 로그가 데이터베이스에 반영된 것으로 판단되면, 투비 액티브 상태에서 액티브 상태로 천이하게 되고, 서스펜드 되어 있던 모든 데이터베이스 변경요청을 처리하게 된다.
이후, 도 3d에 도시된 바와 같이 주 서버 노드(130a)의 장애가 복구되면 주 서버 노드(130a)는 데드 상태에서 스탠바이 상태로 천이하고, 부 서버 노드(130b)는 액티브 상태에서 투비 스탠바이 상태로 천이한다. 이러한 경우, 부 서버 노드(130b)로의 데이터베이스 변경 요청의 전송은 차단되지만, 부 서버 노드(130b)에서 실행중이던 트랜잭션은 계속해서 실행된다.
이후, 도 3e에 도시된 바와 같이 주 서버 노드(130a)는 부 서버 노드(130b)의 트랜잭션 로그를 주 서버 노드(130a)의 데이터베이스에 반영하고 자신의 상태를 스탠바이 상태에서 투비 액티브 상태로 천이시키고, 부 서버 노드(130b)는 자신의 상태를 투비 스탠바이 상태에서 스탠바이 상태로 천이시킨다. 이러한 경우, 브로커 노드(120a~120m)은 주 서버 노드(130a)로 데이터베이스 변경 요청을 전달하지만 주 서버 노드(130a)가 투비 액티브 상태이기 때문에 데이터베이스 변경 요청은 서 스펜드 된다.
마지막으로, 도 3f에 도시된 바와 같이 주 서버 노드(130a)는 부 서버 노드(130b)의 모든 트랜잭션 로그가 주 서버 노드(130a)에 반영된 것으로 판단되면, 자신의 상태를 투비 액티브 상태에서 액티브 상태로 천이시킴으로써 서스펜드 되어 있던 데이터베이스 변경 요청을 처리하고, 부 서버 노드(130b)는 자신의 상태를 투비 스탠바이 상태에서 스탠바이 상태로 천이시킨다.
이하에서는 도 4를 참조하여 주 서버 노드에 장애가 발생하는 경우 서버 노드의 절체 및 복귀 과정을 예를 들어 설명하기로 한다. 이하에서는 설명의 편의를 위해 브로커 노드의 도번을 120으로 표기하기로 한다.
먼저, 브로커 노드(120)가 제1 데이터베이스 변경 요청을 주 서버 노드(130a)로 전송하면, 주 서버 노드(130a)는 제1 데이터베이스 변경 요청을 처리한 후 제1 복제 로그를 생성하여 제1 부 서버 노드(130b) 및 제2 부 서버 노드(130c)로 전송하고 브로커 노드(120)로 제1 데이터베이스 변경 요청의 처리 성공을 통지한다.
이후, 주 서버 노드(130a)에 장애가 발생한 경우, 제1 부 서버 노드(130b)는 주 서버 노드(130a)의 장애 발생을 감지하고 제1 부 서버 노드(130b)의 상태를 스탠바이 상태에서 투비 액티브 상태로 변경하고, 주 서버 노드(130a)의 모든 트랜잭션 로그를 데이터베이스에 반영한다.
한편, 브로커 노드(120)는 주 서버 노드(130a)로 접속할 수 없기 때문에 제2 데이터베이스 변경 요청을 제1 부 서버 노드(130b)로 전송하지만, 제1 부 서버 노 드(130b)는 투비 액티브 상태이기 때문에 제2 데이터베이스 변경 요청은 서스펜드 된다.
이후, 제1 부 서버 노드(130b)에 의해 주 서버 노드(130a)의 모든 트랜잭션 로그의 반영이 완료되면 제1 부 서버 노드(130b)는 자신의 상태를 투비 액티브 상태에서 액티브 상태로 천이시킨다. 이때, 제1 부 서버 노드(130b)는 서스펜드 되어 있던 제2 데이터베이스 변경 요청을 처리한 후 제2 복제 로그를 생성하여 제2 부 서버 노드(130c)로 전송하고, 브로커 노드(120)로 제2 데이터베이스 변경 요청의 처리 성공을 통지한다.
이후, 제1 부 서버 노드(130b)는 브로커 노드(120)로부터 제3 데이터베이스 변경 요청을 수신하고, 제3 데이터베이스 변경 요청의 처리 과정 중에 주 서버 노드(130a)의 장애가 복구가 감지되면, 자신의 상태를 액티브 상태에서 투비 스탠바이 상태로 변경한다. 이때, 제1 부 서버 노드(130b)는 현재 처리 중인 제3 데이터베이스 변경 요청은 계속 처리 함으로써 제3 복제 로그를 생성하지만 브로커 노드의 접속은 차단하게 된다.
한편, 주 서버 노드(130a)는 자신의 상태를 스탠바이 상태로 설정한 후 스탠바이 상태를 투비 액티브 상태로 변경하고, 제1 부 서버 노드(130b)로 접속하여 장애 발생 시간 동안 발생된 제2 복제 로그 및 제3 복제 로그를 요청하고, 제1 부 서 노드(130b)는 제2 및 제3 복제로그를 주 서버 노드(130a)로 전송하고, 브로커 노드(120)로 제3 데이터베이스 변경 요청의 성공을 통지한다.
이후, 브로커 노드(120)는 제1 부 서버 노드(130b)로의 접속이 차단되었기 때문에 다시 주 서버 노드(130a)로 제4 데이터베이스 변경 요청을 전송하지만 제1 부 서버 노드(130b)가 투비 액티브 상태이기 때문에 제4 데이터베이스 변경 요청은 서스펜드 된다.
이후, 주 서버 노드(130a)가 제2 및 제3 복제 로그를 데이터베이스에 반영한 후 자신의 상태를 액티브 상태로 변경시키고, 서스펜드 되어 있던 제4 데이터베이스 변경 요청을 처리함으로써 제4 복제 로그를 생성하여 제1 및 제2 부 서버 노드(130b, 130c)로 전송한다.
이하에서는 도 5를 참조하여 IDC 장애가 발생하였을 때 서버 노드의 절체 과정을 예를 들어 설명하기로 한다.
먼저, 브로커 노드(120)가 제1 데이터베이스 변경 요청을 주 서버 노드(130a)로 전송하면, 주 서버 노드(130a)는 제1 데이터베이스 변경 요청을 처리한 후 제1 복제 로그를 생성하여 제1 부 서버 노드(130b) 및 제2 부 서버 노드(130c)로 전송하고 브로커 노드(120)로 제1 데이터베이스 변경 요청의 처리 성공을 통지한다.
이후, IDC 장애 발생으로 인해 동일한 IDC에 포함된 주 서버 노드(130a) 및 제1 부 서버 노드(130b) 모두에 장애가 발생한 경우, 제2 부 서버 노드(130c)는 IDC 장애 발생을 감지하고 제2 부 서버 노드(130c)의 상태를 스탠바이 상태에서 투비 액티브 상태로 변경하고, 주 서버 노드(130a)의 모든 트랜잭션 로그를 데이터베이스에 반영한다.
한편, 브로커 노드(120)는 주 서버 노드(130a) 및 제1 부 서버 노드(130b) 모두에 대해 접속할 수 없기 때문에 제2 데이터베이스 변경 요청을 제2 부 서버 노드(130c)로 전송하지만, 제2 부 서버 노드(130c)는 투비 액티브 상태이기 때문에 제2 데이터베이스 변경 요청은 서스펜드 된다.
이후, 제2 부 서버 노드(130c)에 의해 주 서버 노드(130a)의 모든 트랜잭션 로그의 반영이 완료되면 제2 부 서버 노드(130c)는 자신의 상태를 투비 액티브 상태에서 액티브 상태로 천이시킨다. 이때, 제2 부 서버 노드(130c)는 서스펜드 되어 있던 제2 데이터베이스 변경 요청을 처리한 후 제2 복제 로그를 생성한 후, 브로커 노드(120)로 제2 데이터베이스 변경 요청의 처리 성공을 통지한다.
이하에서는 도 6을 참조하여 브로커 노드에 장애가 발생하였을 때 브로커 노드의 절체 및 복귀 과정을 예를 들어 설명하기로 한다.
먼저, 응용 서버(110)로부터 제1 데이터베이스 변경 요청이 주 브로커 노드(120a)로 수신되면, 주 브로커 노드(120a)는 제1 데이터베이스 변경 요청을 주 서버 노드(130a)로 전송하고, 주 브로커 노드(120a)로부터 제1 데이터베이스 변경 요청의 처리 성공이 통지되면 이를 응용 서버로 전달한다.
이후, 주 브로커 노드(120a)에 장애가 발생되면, 응용 서버(110)는 주 브로커 노드(120a)에 접속할 수 없기 때문에 부 브로커 노드(120b)로 제2 데이터베이스 변경 요청을 전송한다.
부 브로커 노드(120b)는 응용 서버(110)로부터 전송되는 제2 데이터베이스 변경 요청을 수신하여 주 서버 노드(130a)로 전송하고, 주 서버 노드(130a)로부터 제2 데이터베이스 변경 요청의 처리 성공이 통지되면 이를 응용 서버로 전달한다.
이후, 응용 서버(110)는 여전히 주 브로커 노드(120a)가 장애 상태이기 때문에 제3 데이터베이스 변경 요청을 부 브로커 노드(120b)로 전송하게 되고, 부 브로커 노드(120b)로부터 제3 데이터베이스 변경 요청의 처리 성공을 통지 받는다.
이후, 주 브로커 노드(120a)의 장애가 복구되면, 응용 서버(110)는 주 브로커 노드(120a)로의 접속이 가능하기 때문에 제4데이터베이스 변경 요청을 주 브로커 노드(120a)로 전송할 수 있게 되고, 이에 따라 제4 데이터베이스 변경 요청의 처리 성공을 주 브로커 노드(120a)로부터 통지 받게 된다.
이하에서는 도 7을 참조하여 본 발명에 따른 고가용성 데이터베이스 관리 시스템을 이용하여 데이터베이스를 관리하는 방법을 설명하기로 한다.
먼저, 응용서버로부터 데이터베이스의 변경 요청이 수신되면(S700), 주 브로커 노드로 접속이 가능한지 여부를 판단한다(S700).
판단결과 주 브로커 노드로 접속이 가능하면 주 브로커 노드로 데이터베이스 변경 요청을 전송하고(S710), 주 브로커 노드로 접속이 불가능하면 미리 정해진 접속 순서에 따라 부 브로커 노드들에 접속을 시도함으로써 접속이 가능한 부 브로커 노드로 데이터베이스 변경 요청을 전송한다(S720).
이후, 주 브로커 노드 또는 부 브로커 노드는 주 서버 노드로 접속이 가능한지 여부를 판단한다(S730). 판단결과 주 서버 노드로 접속이 가능하면 주 서버 노드로 데이터베이스 변경 요청을 전송하고(S740), 주 서버 노드로 접속이 불가능하면 미리 정해진 서버 노드 접속 순서에 따라 부 서버 노드들에 접속을 시도함으로써 접속이 가능한 부 서버 노드로 데이터베이스 변경 요청을 전송한다(S750).
이후, 데이터베이스 변경 요청을 전송 받은 주 서버 노드 또는 부 서버 노드는 데이터베이스 변경 요청을 처리함으로써 각자의 데이터베이스를 변경하고(S760), 그 처리 결과를 주 브로커 노드 또는 부 브로커 노드를 경유하여 응용서버로 전달한다(S770).
상술한 바와 같이, 본 발명에서는 모든 브로커 노드가 주 브로커 노드 역할을 수행함과 동시에 다른 브로커 노드들의 백업 역할을 수행할 수 있는 액티브(Active)-액티브(Active) 구조이기 때문에 브로커 노드들에 중첩적으로 발생될 수 있는 장애에도 대비할 수 있다.
또한, 본 발명에서는 서버 노드를 복수개로 구현함으로써 주 서버 노드에 장애가 발생하더라도 브로커 노드가 자동으로 부 서버 노드에 접속할 수 있기 때문에 응용 서버의 수정이나 변경 없이도 지속적인 서비스 제공이 가능하게 된다.
한편, 연속적인 서비스 제공을 위해서는 주 서버 노드와 부 서버 노드 간에 데이터베이스의 복제가 수행되어야 하는데, 이하에서는 도 8를 참조하여 주 서버 노드와 부 서버 노드간의 데이터베이스 복제 과정에 대해 설명하기로 한다.
먼저, 주 서버 노드가 브로커 노드로부터 데이터베이스 변경 요청을 수신한다(S800). 이후, 주 서버 노드는 데이터베이스 변경 요청을 처리하고(S810), 데이터베이스 변경에 따른 트랜잭션 로그를 생성하여 기록한다(S820).
이후, 주 서버 노드는 자신에게 접속된 부 서버 노드가 존재하는지 여부를 판단하여(S830), 존재하는 경우 접속된 부 서버 노드들에게 생성된 트랜잭션 로그를 전송한다(S840).
이후, 주 서버 노드는 데이터베이스 변경에 대한 종료 요청이 수신되면 데이터베이스 변경 완료를 통지한다(S850).
한편, S840을 통해 주 서버 노드로부터 전송되는 주 서버 노드의 트랜잭션 로그를 수신한 부 서버 노드는 수신된 주 서버 노드의 트랜잭션 로그를 기록한 후 (S860), 기록된 트랜잭션 로그를 분석한다(S870). 이후, 부 서버 노드는 분석된 주 서버 노드의 트랜잭션 로그를 자신의 데이터베이스에 반영함으로써 주 서버 노드의 데이터베이스 변경 사항이 부 서버 노드의 데이터베이스에도 반영되도록 한다(S880).
상술한 바와 같이 주 서버 노드와 부 서버 노드는 서로의 트랜잭션 로그를 송수신함으로써 데이터베이스를 복제하고, 주 서버 노드가 장애가 발생하는 경우 부 서버 노드가 자신의 데이터베이스를 이용하여 서비스를 연속적으로 제공하게 된다. 이후, 주 서버 노드의 장애가 복구되면 주 서버 노드가 다시 부 서버 노드의 트랜잭션 로그를 수신하여 자신의 데이터베이스에 반영함으로써 반영이 완료되면 다시 주 서버 노드가 서비스의 데이터베이스를 이용하여 서비스를 연속적으로 제공하게 된다.
연속적인 서비스 제공을 위한 주 서버 노드와 부 서버 노드간의 절체 및 복귀 과정에서 발생되는 각 서버 노드의 상태들을 상술한 도 3에서 상세히 설명하였으므로 구체적인 설명은 생략하기로 한다.
상술한 데이터베이스 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 판독 가능한 기록매체에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 한편, 이러한 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다.
또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
한편, 본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적 인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명의 일 실시예에 따른 고가용성 데이터베이스 관리 시스템이 적용된 네트워크 구성도를 보여주는 도면.
도 2는 본 발명의 일 실시예에 따른 서버 노드의 개략적인 구성을 보여주는 도면.
도 3은 서버 노드의 상태 천이 과정을 개략적으로 보여주는 도면.
도 4는 서버 노드의 절체 및 복귀 과정을 보여주는 도면.
도 5는 IDC 장애 발생시 서버 노드의 절체 과정을 보여주는 도면.
도 6는 브로커 노드의 절체 및 복귀 과정을 보여주는 도면.
도 7은 본 발명의 일 실시예에 따른 데이터베이스 관리 방법을 보여주는 플로우차트.
도 8은 서버 노드간의 데이터베이스 복제 과정을 보여주는 플로우차트.

Claims (22)

  1. 복수개의 브로커 노드와 복수개의 서버 노드를 포함하는 고가용성 데이터베이스 관리 시스템이 수행하는 데이터베이스 관리 방법으로서,
    (a) 응용서버로부터 데이터베이스의 변경 요청이 수신되면, 상기 복수개의 브로커 노드 중 어느 하나의 브로커 노드를 상기 복수개의 서버 노드들 중 주 서버 노드에 접속시키는 단계; 및
    (b) 상기 브로커 노드가 상기 주 서버 노드의 접속에 성공하면 상기 데이터베이스의 변경 요청을 상기 주 서버 노드가 처리하도록 하고, 상기 주 서버 노드의 장애로 상기 브로커 노드가 상기 주 서버 노드의 접속에 실패하면 상기 브로커 노드를 미리 정해진 순서에 따라 부 서버 노드들 중 어느 하나에 순차적으로 접속시킴으로써 상기 데이터베이스의 변경 요청을 상기 부 서버 노드가 처리하도록 하는 단계를 포함하고,
    상기 (b) 단계에서 상기 데이터베이스의 변경 요청을 상기 주 서버 노드가 처리하는 경우 상기 (b) 단계는,
    (b1) 상기 주 서버 노드가 상기 데이터베이스 변경 요청에 따라 상기 주 서버 노드의 데이터베이스를 변경하고 상기 데이터베이스 변경에 따른 트랜잭션 로그를 생성하는 단계; 및
    (b2) 상기 주 서버 노드의 데이터베이스 복제를 위해 상기 트랜잭션 로그를 상기 부 서버 노드들에게 전송 하는 단계 -상기 부 서버 노드는, 자신의 데이터베이스에 상기 주 서버 노드의 트랜잭션 로그를 반영함-
    를 포함하고,
    상기 (b) 단계에서 상기 데이터베이스 변경 요청을 상기 부 서버 노드가 처리하는 경우 상기 (b) 단계는,
    (b1) 상기 부 서버 노드가 상기 데이터베이스 변경 요청에 따라 상기 부 서버 노드의 데이터베이스를 변경하고 상기 데이터베이스 변경에 따른 트랜잭션 로그를 생성하는 단계; 및
    (b2) 상기 부 서버 노드의 데이터베이스 복제를 위해 상기 트랜잭션 로그를 상기 주 서버 노드 또는 다른 부 서버 노드들에게 전송하는 단계 -상기 주 서버 노드 또는 다른 부 서버 노드는, 자신의 데이터베이스에 상기 부 서버 노드의 트랜잭션 로그를 반영함-
    를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 (b) 단계에서,
    상기 주 서버 노드의 장애가 감지되면 상기 브로커 노드가 접속될 부 서버 노드를 스탠바이 상태에서 액티브 상태로 변경함으로써 상기 브로커 노드가 상기 부 서버 노드에 접속 가능하도록 하는 것을 특징으로 하는 데이터베이스 관리 방법.
  4. 제1항에 있어서, 상기 (b) 단계에서 상기 브로커 노드가 상기 부 서버 노드에 접속된 경우,
    (c) 상기 주 서버 노드의 장애 복구가 감지되면 상기 부 서버 노드를 액티브 상태에서 스탠바이 상태로 변경하여 상기 부 서버 노드에 대한 상기 브로커 노드의 접속을 차단함으로써 상기 브로커 노드를 상기 주 서버 노드에 접속시키는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  5. 제1항에 있어서, 상기 (b) 단계에서 상기 브로커 노드가 상기 부 서버 노드에 접속된 경우,
    (c) 상기 주 서버 노드의 장애 발생 후 상기 주 서버 노드의 장애가 복구되면, 상기 주 서버 노드를 스탠바이 상태로 설정하여 상기 부 서버 노드에 의한 데이터베이스 변경 요청 처리에 따른 트랜잭션 로그를 상기 주 서버 노드의 데이터베이스에 반영한 후, 상기 주 서버 노드를 스탠바이 상태에서 액티브 상태로 변경함으로써 상기 브로커 노드를 상기 주 서버 노드에 다시 접속시키는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 부 서버 노드는 상기 주 서버 노드로부터 상기 주 서버 노드의 트랜잭션 로그가 전송되면, 상기 부 서버 노드의 데이터베이스에 상기 주 서버 노드의 트랜잭션 로그를 반영함으로써 상기 주 서버 노드의 데이터베이스와 상기 부 서버 노드의 데이터베이스를 동기시키는 것을 특징으로 하는 데이터베이스 관리 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 주 서버 노드 또는 다른 부 서버 노드들은 상기 부 서버 노드로부터 상기 부 서버 노드의 트랜잭션 로그가 전송되면, 상기 주 서버 노드 또는 다른 부 서버 노드의 데이터베이스에 상기 부 서버 노드의 트랜잭션 로그를 반영함으로써 상기 부 서버 노드의 데이터베이스와 상기 주 서버 노드 또는 다른 서버 노드들의 데이터베이스를 동기시키는 것을 특징으로 하는 데이터베이스 관리 방법.
  10. 제1항에 있어서,
    상기 복수개의 서버 노드들은 디스크 기반으로 운영되는 것을 특징으로 하는 데이터베이스 관리 방법.
  11. 제1항에 있어서,
    상기 (a) 단계는 상기 브로커 노드의 장애 여부를 판단하는 단계를 더 포함하고,
    상기 (a) 단계에서 상기 브로커 노드에 장애가 발생된 것으로 판단되면, 상 기 복수개의 브로커 노드들 중 미리 정해진 순서에 따른 다른 브로커 노드가 상기 데이터베이스의 변경 요청을 수신하도록 함으로써 상기 다른 브로커 노드를 상기 주 서버 노드에 접속시키는 것을 특징으로 하는 데이터베이스 관리 방법.
  12. 제1항, 제3항 내지 제5항, 제7항 및 제9항 내지 제11항 중 어느 하나의 항에 기재된 방법을 수행하기 위한 컴퓨터로 판독 가능한 기록매체.
  13. 응용서버로부터 데이터베이스의 변경 요청을 수신하고, 주 서버 노드에 접속을 시도하여 접속이 성공하면 상기 주 서버 노드로 상기 데이터베이스 변경 요청을 전송하고, 상기 주 서버 노드의 장애로 상기 주 서버 노드에 대한 접속이 실패하면 미리 정해진 순서에 따라 하나 이상의 부 서버 노드에 순차적으로 접속을 시도하여 접속이 성공하는 부 서버 노드에 상기 데이터베이스의 변경 요청을 전송하는 브로커 노드;
    상기 브로커 노드가 접속되면 상기 브로커 노드로부터 전송되는 상기 데이터베이스의 변경 요청을 수신하여 처리하는 주 서버 노드; 및
    상기 주 서버 노드의 장애로 상기 브로커 노드가 접속되면 상기 브로커 노드로부터 전송되는 상기 데이터베이스의 변경 요청을 수신하여 처리하는 하나 이상의 부 서버 노드를 포함하고,
    상기 주 서버 노드 및 하나 이상의 부 서버 노드는,
    상기 브로커 노드로부터 수신되는 데이터베이스 변경 요청에 따라 자신의 데이터베이스를 변경하고, 상기 데이터베이스의 변경에 따른 트랜잭션 로그를 생성하여 상기 데이터베이스의 복제를 위해 다른 서버 노드로 전송하는 서버;
    자신의 장애에 대비하여 상기 다른 서버 노드로부터 전송되는 상기 다른 서버 노드의 트랜잭션 로그를 수신하여 기록하는 로그 기록부; 및
    자신의 장애에 대비하여 상기 로그 기록부에 의해 수신된 상기 다른 서버 노드의 트랜잭션 로그를 상기 응용 서버를 통해 상기 데이터베이스에 반영하는 로그 적용부
    를 포함하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  14. 제13항에 있어서,
    상기 브로커 노드는 하나의 주 브로커 노드와 하나 이상의 부 브로커 노드로 구현되는 것을 특징으로 하는 데이터베이스 관리 시스템.
  15. 제14항에 있어서,
    상기 주 브로커 노드가 상기 응용서버로부터 상기 데이터베이스 변경 요청을 수신하고, 상기 주 브로커 노드에 장애가 발생되면 상기 하나 이상의 부 브로커 노드들 중 미리 정해진 순서에 따른 부 브로커 노드가 상기 데이터베이스의 변경 요청을 수신하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  16. 삭제
  17. 제13항에 있어서, 상기 주 서버 노드 및 하나 이상의 부 서버 노드는,
    일정 주기로 자신 또는 다른 서브 노드의 장애 또는 장애 복구 여부를 모니터링하고, 그 결과를 상기 서버로 전송함으로써 자신의 상태를 변경하는 장애 감지부를 더 포함하는 것을 특징으로 데이터베이스 관리 시스템.
  18. 제17항에 있어서, 상기 부 서버 노드의 장애 감지부는,
    상기 주 서버 노드의 장애가 감지되면 상기 부 서버 노드가 스탠바이 상태에서 액티브 상태로 변경되도록 함으로써 상기 브로커 노드가 상기 부 서버 노드에 접속 가능하도록 하고,
    상기 주 서버 노드의 장애 복구가 감지되면 상기 부 서버 노드가 액티브 상태에서 스탠바이 상태로 변경되도록 하여 상기 부 서버 노드에 대한 상기 브로커 노드의 접속을 차단함으로써 상기 브로커 노드가 상기 주 서버 노드에 접속 가능하도록 하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  19. 제17항에 있어서, 상기 주 서버 노드의 장애 감지부는,
    상기 주 서버 노드의 장애 복구가 감지되면 상기 주 서버 노드가 스탠바이 상태로 설정되도록 하고, 상기 부 서버 노드에 의한 데이터베이스 변경 요청 처리에 따른 트랜잭션 로그가 상기 주 서버 노드의 데이터베이스에 반영되면 상기 주 서버 노드가 스탠바이 상태에서 액티브 상태로 변경되도록 함으로써 상기 브로커 노드가 상기 주 서버 노드에 다시 접속 가능하도록 하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  20. 제13항에 있어서, 상기 주 서버 노드 및 하나 이상의 부 서버 노드는,
    서비스 제공을 위한 데이터가 저장되는 데이터베이스; 및
    자신의 트랜잭션 로그 및 다른 서버 노드의 트랜잭션 로그가 기록되는 트랜잭션 로그 저장부를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  21. 제13항에 있어서,
    상기 주 서버 노드 및 상기 하나 이상의 부 서버 노드들은 디스크 기반으로 운영되는 것을 특징으로 하는 데이터베이스 관리 시스템.
  22. 제13항에 있어서,
    상기 하나 이상의 부 서버 노드들 중 일부는 상기 주 서버 노드와 다른 IDC(Internet Data Center) 내에 포함되는 것을 특징으로 하는 데이터베이스 관리 시스템.
KR1020090060314A 2009-07-02 2009-07-02 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법 KR101265388B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020090060314A KR101265388B1 (ko) 2009-07-02 2009-07-02 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법
US13/381,853 US9189348B2 (en) 2009-07-02 2010-06-21 High availability database management system and database management method using same
PCT/KR2010/003995 WO2011002169A2 (ko) 2009-07-02 2010-06-21 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법
JP2012518485A JP5529962B2 (ja) 2009-07-02 2010-06-21 高可用性データベース管理システム、およびこれを用いたデータベース管理方法
JP2014084462A JP5901682B2 (ja) 2009-07-02 2014-04-16 高可用性データベース管理システム、およびこれを用いたデータベース管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090060314A KR101265388B1 (ko) 2009-07-02 2009-07-02 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법

Publications (2)

Publication Number Publication Date
KR20110002708A KR20110002708A (ko) 2011-01-10
KR101265388B1 true KR101265388B1 (ko) 2013-05-20

Family

ID=43411558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090060314A KR101265388B1 (ko) 2009-07-02 2009-07-02 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법

Country Status (4)

Country Link
US (1) US9189348B2 (ko)
JP (2) JP5529962B2 (ko)
KR (1) KR101265388B1 (ko)
WO (1) WO2011002169A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128903B2 (en) * 2010-03-08 2015-09-08 Nec Corporation Computer system, active system computer, and standby system computer
JP5640767B2 (ja) * 2011-01-25 2014-12-17 富士通株式会社 情報処理装置、データ管理方法およびデータベースシステム
FR2984053B1 (fr) * 2011-12-13 2014-01-10 Bull Sas Procede et programme d'ordinateur de gestion de pannes multiples dans une infrastructure informatique comprenant des equipements a haute disponibilite.
KR101450101B1 (ko) * 2012-12-28 2014-10-14 (주) 더존비즈온 Erp 용 db 유지 방법 및 장치
US9983962B2 (en) 2013-05-08 2018-05-29 Hitachi, Ltd. Storage system and data management method of journaling and storing remote copies
US9424301B2 (en) * 2013-11-22 2016-08-23 Netapp, Inc. System and method for negotiated takeover of storage objects
US10455041B2 (en) * 2014-02-20 2019-10-22 Rovio Entertainment Stateful service with partial replication
KR102161211B1 (ko) * 2014-02-28 2020-09-29 한화테크윈 주식회사 고가용성 시스템
JP6257748B2 (ja) 2014-03-25 2018-01-10 株式会社Murakumo データベースシステム、情報処理装置、方法およびプログラム
WO2015145587A1 (ja) 2014-03-25 2015-10-01 株式会社Murakumo データベースシステム、情報処理装置、方法およびプログラム
KR101662212B1 (ko) * 2014-05-30 2016-10-04 주식회사 알티베이스 부분동기화 지원 데이터베이스 관리 시스템 및 데이터베이스 관리 시스템에서 부분동기화 방법
KR102038529B1 (ko) * 2017-11-30 2019-10-30 주식회사 리얼타임테크 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템
CN108845916B (zh) * 2018-07-03 2022-02-22 中国联合网络通信集团有限公司 平台监控与告警方法、装置、设备与计算机可读存储介质
US11507545B2 (en) * 2020-07-30 2022-11-22 EMC IP Holding Company LLC System and method for mirroring a file system journal
US11669501B2 (en) 2020-10-29 2023-06-06 EMC IP Holding Company LLC Address mirroring of a file system journal
KR102428587B1 (ko) * 2022-04-13 2022-08-03 주식회사 비투엔 마이크로 서비스 아키텍처 기반의 트랜잭션 가용성과 성능 보장 처리 장치 및 방법
CN115065715A (zh) * 2022-05-11 2022-09-16 厦门立林科技有限公司 服务监控和自动重启方法、介质、设备及系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131937A (ja) 1989-10-18 1991-06-05 Hitachi Ltd 負荷の分散方法
JP4267094B2 (ja) 1998-08-11 2009-05-27 株式会社野村総合研究所 2重更新を行うデータベースを有するクライアントサーバーシステム
KR100363523B1 (ko) * 1999-12-23 2002-12-05 주식회사 아라기술 클러스터링 서버에서의 분산 처리 제어 방법
JP2002108640A (ja) 2000-10-03 2002-04-12 Shinjo Keiei Kenkyusho:Kk デュープレックスシステム、シングルプロセッサシステム、及びサブボード
KR100404906B1 (ko) * 2001-12-20 2003-11-07 한국전자통신연구원 클러스터 시스템의 고 가용성 구현장치 및 방법
JP2003296211A (ja) 2002-04-05 2003-10-17 Nec Corp Wwwサーバ自動切替システムおよびプログラム
JP4083049B2 (ja) 2003-03-27 2008-04-30 株式会社野村総合研究所 分散処理システム、リクエストの振り分け装置および方法
US20040205048A1 (en) * 2003-03-28 2004-10-14 Pizzo Michael J. Systems and methods for requesting and receiving database change notifications
JP2005018463A (ja) 2003-06-26 2005-01-20 Nec Software Chubu Ltd 簡易バックアップシステム
JP2005234755A (ja) 2004-02-18 2005-09-02 Nec Fielding Ltd サーバ業務継続システム、サーバ業務継続方法、監視サーバおよびプログラム
KR20070074867A (ko) * 2006-01-10 2007-07-18 에스케이 텔레콤주식회사 분산환경의 망 감시 장치 및 시스템
JP2007264770A (ja) 2006-03-27 2007-10-11 Fujitsu Ltd データベースアクセス方法及び装置
JP2008059529A (ja) 2006-09-04 2008-03-13 Hitachi Ltd コンピュータシステムおよびそのコンピュータ運用方法
JP5235292B2 (ja) 2006-09-29 2013-07-10 富士通株式会社 コンピュータシステム、バックアップシステムへの移行方法、バックアップシステムへの移行プログラム、監視装置、端末装置及びバックアップシステム
US20080222111A1 (en) * 2007-03-07 2008-09-11 Oracle International Corporation Database system with dynamic database caching
KR100956638B1 (ko) * 2007-12-11 2010-05-11 한국전자통신연구원 대규모 클러스터 모니터링 시스템과 그의 자동 구축 및복구 방법

Also Published As

Publication number Publication date
KR20110002708A (ko) 2011-01-10
JP2012532376A (ja) 2012-12-13
WO2011002169A2 (ko) 2011-01-06
JP5529962B2 (ja) 2014-06-25
US20120109919A1 (en) 2012-05-03
US9189348B2 (en) 2015-11-17
JP5901682B2 (ja) 2016-04-13
JP2014149862A (ja) 2014-08-21
WO2011002169A3 (ko) 2011-04-14

Similar Documents

Publication Publication Date Title
KR101265388B1 (ko) 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법
WO2019085875A1 (zh) 存储集群的配置修改方法、存储集群及计算机系统
US9274906B2 (en) Implementing failover processes between storage stamps
KR101662212B1 (ko) 부분동기화 지원 데이터베이스 관리 시스템 및 데이터베이스 관리 시스템에서 부분동기화 방법
US7793060B2 (en) System method and circuit for differential mirroring of data
US7587627B2 (en) System and method for disaster recovery of data
JP4668763B2 (ja) ストレージ装置のリストア方法及びストレージ装置
CN103226502B (zh) 一种数据灾备控制系统及数据恢复方法
US8850144B1 (en) Active replication switch
US7694177B2 (en) Method and system for resynchronizing data between a primary and mirror data storage system
US7779291B2 (en) Four site triangular asynchronous replication
US9576040B1 (en) N-site asynchronous replication
KR100450400B1 (ko) 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법
US20060085610A1 (en) Computer system
US20040260899A1 (en) Method, system, and program for handling a failover to a remote storage location
US20050283504A1 (en) Disaster recovery system suitable for database system
US20020059279A1 (en) Apparatus and method for database synchronization in a duplex system
CN108958984B (zh) 基于ceph的双活同步在线热备方法
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
US20110197040A1 (en) Storage system and storage control method
US20090063486A1 (en) Data replication using a shared resource
US9367413B2 (en) Detecting data loss during site switchover
WO2018157605A1 (zh) 一种集群文件系统中消息传输的方法及装置
CN110121694A (zh) 一种日志管理方法、服务器和数据库系统
US20070179929A1 (en) System and method for producing data replica

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
N231 Notification of change of applicant
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120117

Effective date: 20130328

Free format text: TRIAL NUMBER: 2012101000478; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120117

Effective date: 20130328

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160329

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 5