KR20130049360A - 장애 발생시의 db 연결 관리 방법 - Google Patents

장애 발생시의 db 연결 관리 방법 Download PDF

Info

Publication number
KR20130049360A
KR20130049360A KR1020110114343A KR20110114343A KR20130049360A KR 20130049360 A KR20130049360 A KR 20130049360A KR 1020110114343 A KR1020110114343 A KR 1020110114343A KR 20110114343 A KR20110114343 A KR 20110114343A KR 20130049360 A KR20130049360 A KR 20130049360A
Authority
KR
South Korea
Prior art keywords
failure
parameter value
state parameter
application program
normal
Prior art date
Application number
KR1020110114343A
Other languages
English (en)
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 KR1020110114343A priority Critical patent/KR20130049360A/ko
Publication of KR20130049360A publication Critical patent/KR20130049360A/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 이중화 DB 장치의 사용시 메인 DB의 하드웨어 또는 네트워크 장애 등 장애가 발생할 경우 보조 DB 장치로의 능동적 절체가 가능한 장애 발생시의 DB 연결 관리 방법에 관한 것으로, 제 1 DB 장치와 제 2 DB 장치로 구성된 이중화 DB 장치의 장애 발생시 DB 연결을 관리하는 방법에 있어서, 다수의 응용 프로그램 각각이 상기 제 1 DB 장치와 제 2 DB 장치에 동시에 접속하는 1단계; 다수의 응용 프로그램 중 제 1 응용 프로그램이 DB 작업 요청 메시지를 수신하면, 공유 메모리를 검색하여 미리 저장된 제 1 DB 장치 및 제 2 DB 장치의 상태 파라미터 값을 확인하는 2단계; 확인 결과, 제 1 응용 프로그램이 상태 파라미터 값이 정상으로 확인된 DB 장치로 요청된 DB 작업을 수행하는 3단계; 및 제 1 응용 프로그램이 DB 작업을 수행한 DB 장치의 상태를 감지하고 감지 결과, 장애 발생으로 판단되면 해당 DB 장치의 상태 파라미터 값을 정상에서 장애로 변경하는 4단계;를 포함한다.

Description

장애 발생시의 DB 연결 관리 방법{Method for managing database connection in response to occurrence of fault}
본 발명은 이중화 데이터베이스(DataBase, 이하, DB라 함) 관리 기술에 관한 것으로, 더욱 상세하게는, 이중화 DB 장치의 사용시 메인 DB의 내부장애, 하드웨어 장애 및 네트워크 장애 등 장애가 발생할 경우 보조 DB 장치로의 능동적 절체가 가능한 장애 발생시의 DB 연결 관리 방법에 관한 것이다.
일반적으로 데이터베이스(DB)를 사용하는 응용 프로그램들은 DB 장애에 대비하기 위해서 DB를 이중화로 구성하여 메인 DB의 장애 발생시 보조 DB를 사용한다. 이때, 보조 DB를 사용하기 위해서는 응용 프로그램을 재기동하거나, 보조 DB와의 연결 설정을 위해 재접속해야 하는 번거로움이 있다. 이러한 재접속 시간이 장애 시간을 길어지게 하므로, 재접속 시간을 최소화하여 장애 시간을 줄일 필요가 있다.
상술한 종래 문제점을 해결하기 위해서, 본 발명은 다수의 응용 프로그램 각각은 메인 DB 장치와 적어도 하나 이상의 보조 DB 장치에 동시 접속하며, 각 DB 장치의 상태 파라미터 값을 일괄적으로 참조함으로써 메인 DB 장치의 장애 발생에 따른 장애 시간을 최소화하여 보조 DB 장치로의 능동적 절체를 수행할 수 있는 장애 발생시의 DB 연결 관리 방법을 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 실시 형태는, 제 1 DB 장치와 제 2 DB 장치로 구성된 이중화 DB 장치의 장애 발생시 DB 연결을 관리하는 방법에 있어서, 다수의 응용 프로그램 각각이 상기 제 1 DB 장치와 제 2 DB 장치에 동시에 접속하는 1단계; 다수의 응용 프로그램 중 제 1 응용 프로그램이 DB 작업 요청 메시지를 수신하면, 공유 메모리를 검색하여 미리 저장된 제 1 DB 장치 및 제 2 DB 장치의 상태 파라미터 값을 확인하는 2단계; 확인 결과, 제 1 응용 프로그램이 상태 파라미터 값이 정상으로 확인된 DB 장치로 요청된 DB 작업을 수행하는 3단계; 및 제 1 응용 프로그램이 DB 작업을 수행한 DB 장치의 상태를 감지하고 감지 결과, 장애 발생으로 판단되면 해당 DB 장치의 상태 파라미터 값을 정상에서 장애로 변경하는 4단계;를 포함하는 장애 발생시의 DB 연결 관리 방법을 포함한다.
한편, 상기와 같은 목적을 달성하기 위한 본 발명의 다른 실시 형태는, 다수의 DB 장치로 구성된 이중화 DB 장치의 장애 발생시 DB 연결을 관리하는 방법에 있어서, 다수의 응용 프로그램 각각이 상기 다수의 DB 장치에 동시 접속하는 (1)단계; 상기 다수의 응용 프로그램 중 제 1 응용 프로그램이 DB 작업 수행 요청 메시지를 수신하면, 공유 메모리의 미리 저장된 DB 장치별 상태 파라미터 값을 조회하여 상기 다수의 DB 장치 중 DB 작업을 수행할 하나의 DB 장치를 검색하는 (2)단계; 검색 결과, 제 1 응용 프로그램은 조회된 상태 파라미터 값이 정상인 상기 하나의 DB 장치로 요청된 DB 작업을 수행하는 (3)단계; 제 1 응용 프로그램이 상기 하나의 DB 장치의 상태를 감지하는 (4)단계; 감지 결과, 상기 하나의 DB 장치의 장애 발생으로 판단되면, 제 1 응용 프로그램이 상기 하나의 DB 장치의 상태 파라미터 값을 정상에서 장애로 변경하는 (5)단계;를 포함하는 장애 발생시의 DB 연결 관리 방법을 포함한다.
본 발명에 따르면, 메인 DB 장치와 적어도 하나 이상의 보조 DB 장치에 동시 접속하고, 각 DB 장치의 상태를 감지하여 실시간으로 상태 파라미터 값을 갱신함으로써 모든 응용 프로그램이 갱신된 상태 파라미터 값을 일괄적으로 참조할 수 있다. 이로써, 메인 DB 장치의 장애 발생시, 적어도 하나 이상의 보조 DB 장치로의 능동적 절체가 가능하여 장애 시간을 최소화할 수 있다.
도 1은 본 발명의 일 실시 형태에 따른 장애 발생시의 DB 연결 관리 시스템의 네트워크 관계를 도시한 구성도이다.
도 2는 도 1에 도시된 장애 발생시 DB 연결 관리 시스템에서 공유 메모리에 저장된 데이터베이스 테이블을 도시한 예시도이다.
도 3은 도 1에 도시된 장애 발생시의 DB 연결 관리 시스템에서 데이터베이스의 장애 발생시 DB 연결을 관리하는 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 다른 실시 형태에 따른 장애 발생시의 DB 연결 관리 시스템의 네트워크 관계를 도시한 구성도이다.
도 5는 도 4에 도시된 장애 발생시의 DB 연결 관리 시스템에서 데이터베이스의 장애 발생시 DB 연결을 관리하는 방법을 설명하기 위한 흐름도이다.
이하, 본 발명의 실시 예에 대해 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 또한, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 그리고, 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 부호를 붙였다. 또한, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 1은 본 발명의 일 실시 형태에 따른 장애 발생시의 DB 연결 관리 시스템의 네트워크 관계를 도시한 구성도이다.
도 1을 참조하면, 본 발명에 따른 장애 발생시 DB 연결 관리 시스템은 클라이언트(10), 제 1 DB 장치(20) 및 제 2 DB 장치(30)를 포함한다. 여기서, 클라이언트(10)는 다수의 응용 프로그램(11, 12, 13)과 공유 메모리(14)를 포함하며, 제 1 DB 장치(20)는 메인 DB 장치로써 클라이언트와의 주경로를 형성하고, 제 2 DB 장치(30)는 보조 DB 장치로써 클라이언트와의 보조 경로를 형성한다.
구체적으로, 클라이언트(10)의 각 응용 프로그램은 제 1 DB 장치(20) 및 제 2 DB 장치(30)에 동시에 접속하며, 각 DB 장치의 상태를 확인하여 정상으로 동작중인 DB 장치로 데이터의 조회, 변경, 추가 및 삭제와 같은 DB 작업을 수행한다.
그리고, 클라이언트(10)의 공유 메모리(14)에는 DB 장치별 할당된 인덱스값과, 인덱스별 상태 파라미터 값이 등록된 데이터베이스 테이블이 저장되어 있다. 예를 들어, 제 1 DB 장치(20)와 제 2 DB 장치(30) 각각의 할당된 인덱스는 dbindex[0], dbindex[1]이며, 제 1 DB 장치(20)의 상태 파라미터 값은 정상이면 1, 장애이면 0의 값을 가지며, 제 2 DB 장치(30)의 상태 파라미터 값은 정상이면 2, 장애이면 0의 값을 가진다.
즉, 각 응용 프로그램은 DB 작업을 수행하기 전에 공유 메모리(14)에 저장된 DB 장치별 상태 파라미터 값을 조회하고, 상태 파라미터 값이 정상인 DB 장치를 검색하여 DB 작업을 수행한다. 이때, 각 응용 프로그램은 주경로인 제 1 DB 장치(20)를 시작으로 제 2 DB 장치(30) 순으로 상태 파라미터 값을 조회한다. 예를 들어, 응용 프로그램1(11)이 제 1 DB 장치(20)로의 주경로에 대한 상태 파라미터 값을 조회한 후 상태 파라미터 값이 1이면 정상으로 판단하여 제 1 DB 장치(20)로 DB 작업을 수행하고, 조회결과, 제 1 DB 장치의 상태 파라미터 값이 0이면 장애로 판단하고 제 2 DB 장치(30)의 상태 파라미터 값을 조회한다. 그 결과, 제 2 DB 장치의 상태 파라미터 값이 2이면 정상으로 판단하여 제 2 DB 장치(30)로 DB 작업을 수행하고, 제 2 DB 장치(30)의 상태 파라미터 값이 0이면 장애로 판단하여 DB 작업 수행을 실패 처리한다. 여기서, 제 2 DB 장치(30)의 상태 파라미터 값이 O인 경우는, 제 1 DB 장치(20) 및 제 2 DB 장치(30)가 모두 장애인 경우이다.
이와 같이 본 시스템에서 응용 프로그램은 두 DB 장치에 동시에 접속된 상태에서 각 DB 장치의 상태 파라미터 값을 조회함으로써 정상으로 동작하는 DB 장치를 검색하여 DB 작업을 수행하는 것에 의해, 주경로인 제 1 DB 장치(20)에 대한 장애 발생시 보조 경로인 제 2 DB 장치(30)로의 능동적 절체가 가능하다.
그리고, 본 실시 예에 있어서, 각 응용 프로그램은 장애 발생시 해당 DB 장치에 대한 상태 파라미터 값을 변경한다. 즉, 다수의 응용 프로그램 중 제 1 응용 프로그램(11)이 제 1 DB 장치(20)로 DB 작업을 수행하고, 제 1 DB 장치(20)로부터 응답 메시지를 수신한다. 이때, 응답 메시지가 DB 작업 수행 실패 메시지이면, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)를 장애 발생으로 판단하고, 공유 메모리(14)의 데이터베이스 테이블에 저장된 제 1 DB 장치(20)의 상태 파라미터 값을 1에서 0으로 변경하여 저장한다. 여기서, DB 작업 수행 실패 메시지는 DB 장치의 내부 메모리 부족 및 인덱스 값의 깨짐과 같이 미리 정의된 DB 장치의 내부 장애에 의한 DB 작업 수행이 실패할 경우 전송된다.
또한, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)로부터 DB 작업 수행 완료 메시지를 수신한 후, 제 1 DB 장치(20)의 상태를 계속 감지한다. 이를 위해, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)로 타임 아웃 요청 메시지를 전송하고, 이에 대한 타임 아웃 응답 메시지의 수신을 대기한다. 이때, 제 1 DB 장치(20)로부터 타임 아웃 응답 메시지가 수신되면 정상으로 판단하고, 타임 아웃 응답 메시지가 수신되지 않으면 타임 아웃 발생이므로 장애로 판단하고 공유 메모리(14)의 데이터베이스 테이블에 저장된 제 1 DB 장치(20)의 상태 파라미터 값을 1에서 0으로 변경하여 저장한다.
그러면, 다른 응용 프로그램은 변경된 제 1 DB 장치(20)의 상태 파라미터 값을 참조하여 제 1 DB 장치(20)가 장애 발생임을 인지하고, 제 2 DB 장치(30)의 상태 파라미터 값을 조회한 후 DB 작업을 수행 여부를 결정한다.
이와 같이, 본 발명에 따른 장애 발생시의 DB 연결 관리 시스템은, 각 DB 장치에 대한 상태 파라미터 값을 설정하고, 각 응용 프로그램이 모든 DB 장치에 동시 접속된 상태에서, DB 작업을 수행하기 전에 공유 메모리에 저장된 상태 파라미터 값을 조회하여 정상인 DB 장치를 검색한 후 DB 작업을 수행한다. 이로 인해 장애 발생된 DB 장치의 접속을 끊고, 다른 DB 장치로의 재접속을 시도하는 장애 시간을 최소화할 수 있다.
또한, 본 발명에 따른 장애 발생시 DB 연결 관리 시스템은, 각 응용 프로그램에서 각 DB 장치로부터 수신되는 응답 메시지를 통해 장애 여부를 판단하고, 장애 발생시 각 DB 장치의 상태 파라미터 값을 변경하여 저장한다. 이로 인해, 다른 응용 프로그램은 변경된 상태 파라미터 값을 참조하여 정상 DB 장치를 검색하고, 검색된 정상 DB 장치로 DB 작업을 수행할 수 있어 장애 시간을 최소화할 수 있다.
도 2는 도 1에 도시된 장애 발생시의 DB 연결 관리 시스템에서 공유 메모리에 저장된 데이터베이스 테이블을 도시한 예시도이다.
도 2를 참조하면, 본 데이터베이스 테이블에서 DB Connection은 제 1 DB 장치와 제 2 DB 장치로 구성되며, 인덱스는 제 1 DB 장치에 dbindex[0], 제 2 DB 장치에 dbindex[1]로 할당된다. 제 1 DB 장치의 상태 파라미터 값은 정상일 때 1이며, 제 2 DB 장치의 상태 파라미터 값은 정상일 때 2로 설정된다. 그리고, 제 1 DB 장치 및 제 2 DB 장치가 장애 발생이면 0으로 상태 파라미터 값이 설정된다.
도 3은 도 1에 도시된 장애 발생시의 DB 연결 관리 시스템에서 장애 발생에 따른 DB 연결을 관리하는 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 먼저, 각 DB 장치에 대한 상태 파라미터 값이 정의된다(S311). 예를 들어, 제 1 DB 장치의 경우 정상은 1로, 장애는 0으로 설정하고, 제 2 DB 장치의 경우 정상은 2로, 장애는 0으로 설정한다.
그리고, 각 DB 장치의 상태를 감지하여 상태 파라미터 값을 공유 메모리의 데이터베이스 테이블에 미리 저장하는 것을 전제로 한다(S311).
그런 다음, 클라이언트의 다수의 응용 프로그램 각각은 각 DB 장치에 동시 접속하고, DB 작업을 수행한다. 여기서, 본 실시 예에서는, 다수의 응용 프로그램 중 제 1 응용 프로그램(11)에 한하여 DB 작업 수행 과정을 상세하게 설명하도록 하고, 모든 응용 프로그램은 동일하게 동작한다.
구체적으로, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)와 제 2 DB 장치(30)에 동시 접속한다(S312).
이어서, 제 1 응용 프로그램(11)은 DB 작업 요청 메시지가 수신되면(S313), 공유 메모리(14)의 데이터베이스 테이블을 조회하여 제 1 DB 장치(20)의 상태 파라미터 값을 확인한다(S314).
확인 결과, 제 1 DB 장치(20)의 상태 파라미터 값이 1이면 정상으로 판단하여(S315, Y) 제 1 DB 장치(20)로 DB 작업을 수행한다(S316).
그런 다음, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)의 상태를 감지한다(S317). 구체적으로, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)로부터 응답 메시지를 수신하고, 응답 메시지가 DB 작업 수행 완료 메시지이면 제 1 DB 장치(20)가 정상적으로 동작하고 있다고 판단하고(S318, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S313).
한편, 제 1 응용 프로그램(11)은 수신된 응답 메시지가 DB 작업 수행 실패 메시지이면 제 1 DB 장치(20)의 장애 발생으로 판단하고(S318, Y), 공유 메모리(14)에 저장된 제 1 DB 장치(20)의 상태 파라미터 값을 1에서 0으로 변경하여 저장한다(S319). 여기서, DB 작업 수행 실패 메시지는 DB 장치의 내부 메모리 부족 및 인덱스 값의 깨짐과 같이 미리 정의된 DB 장치의 내부 장애에 의한 DB 작업 수행이 실패할 경우 전송된다.
또한, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)의 상태를 감지하기 위해 제 1 DB 장치(20)로 타임 아웃 요청 메시지를 전송한다(S317). 이후, 제 1 DB 장치(20)로부터 타임 아웃 응답 메시지가 수신되면, 응용 프로그램1(11)은 제 1 DB 장치(20)가 정상적으로 동작하고 있다고 판단하고(S318, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S313).
한편, 제 1 DB 장치(20)로부터 타임 아웃 응답 메시지가 수신되지 않으면, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)의 장애 발생으로 판단하고(S318, Y), 공유 메모리(14)의 데이터베이스 테이블에 저장된 제 1 DB 장치(20)의 상태 파라미터 값을 1에서 0으로 변경하여 저장한다(S319).
그리고, 단계 S315에서, 제 1 DB 장치(20)의 상태 파라미터 값의 확인 결과, 제 1 DB 장치(20)의 상태 파라미터 값이 0이면 장애로 판단하고(S315, N) 제 2 DB 장치(30)의 상태 파라미터 값을 확인한다(S321).
이때, 제 2 DB 장치(30)의 상태 파라미터 값이 2이면 정상으로 판단하여(S321, Y) 제 2 DB 장치(30)로 DB 작업을 수행한다(S322).
그런 다음, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)의 상태를 감지한다(S323). 구체적으로, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)로부터 응답 메시지를 수신하고, 응답 메시지가 DB 작업 수행 완료 메시지이면 제 2 DB 장치(30)가 정상적으로 동작하고 있다고 판단하고(S324, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S313).
한편, 제 1 응용 프로그램(11)은 수신된 응답 메시지가 DB 작업 수행 실패 메시지이면 제 2 DB 장치(30)의 장애 발생으로 판단하고(S324, Y), 공유 메모리(14)에 저장된 제 2 DB 장치(30)의 상태 파라미터 값을 2에서 0으로 변경하여 저장한다(S325).
또한, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)의 상태를 감지하기 위해 제 2 DB 장치(30)로 타임 아웃 요청 메시지를 전송한다(S323). 이후, 제 2 DB 장치(30)로부터 타임 아웃 응답 메시지가 수신되면, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)가 정상적으로 동작하고 있다고 판단하고(S324, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S313).
한편, 제 2 DB 장치(30)로부터 타임 아웃 응답 메시지가 수신되지 않으면, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)의 장애 발생으로 판단하고(S324, Y), 공유 메모리(14)의 데이터베이스 테이블에 저장된 제 2 DB 장치(30)의 상태 파라미터 값을 2에서 0으로 변경하여 저장한다(S325).
여기서, 단계 S319 및 S325에서 변경된 상태 파라미터 값은 공유 메모리(14)의 데이터베이스 테이블에 저장되고, 다른 응용 프로그램에서 이를 참조하여 정상 DB 장치를 검색하게 되고, 검색된 정상 DB 장치로 DB 작업을 수행하게 된다.
그리고, 단계 S321에서, 제 2 DB 장치(30)의 상태 파라미터 값의 확인 결과, 제 2 DB 장치(30)의 상태 파라미터 값이 O이면 장애로 판단하고(S321, N), DB 작업의 수행을 실패로 처리한다(S326). 여기서, 제 2 DB 장치(30)의 상태 파라미터 값이 0인 경우는 모든 DB 장치가 장애 발생인 경우이다.
이와 같이, 본 발명에 따른 장애 발생시의 DB 연결 관리 방법은, 모든 응용 프로그램이 각 DB 장치의 상태를 확인할 수 있는 파라미터 값을 정의하고, DB 장치들의 상태를 감지하여 데이터베이스 테이블에 저장한다. 이후, 응용 프로그램들은 모든 DB 장치에 동시 접속한 상태에서, 각 DB 장치의 상태 파라미터 값을 조회하여 정상인 DB 장치를 찾아 DB 작업을 수행할 수 있어 장애 시간을 최소화할 수 있다.
또한, 본 발명에 따른 장애 발생시의 DB 연결 관리 방법은, 주경로인 제 1 DB 장치의 장애 발생시 이의 상태 파라미터 값을 정상에서 장애로 변경함으로써 다른 응용 프로그램이 변경된 주경로의 상태 파라미터 값을 참조하여 보조 경로인 제 2 DB 장치를 이용해 DB 작업을 수행할 수 있도록 한다.
도 4는 본 발명의 다른 실시 형태에 따른 장애 발생시의 DB 연결 관리 시스템의 네트워크 관계를 나타낸 구성도이다. 여기서, 도 4에 도시된 장애 발생시의 DB 연결 관리 시스템은 DB 장치가 M 개 구비된 것을 제외하면 도 1에 도시된 장애 발생시 DB 연결 관리 시스템과 동일하므로, 동일한 구성에 대한 설명은 생략하도록 한다.
도 4를 참조하면, 본 시스템에서 DB 장치는 M(M≥2, 자연수)개 구비되며, 제 1 DB 장치(20), 제 2 DB 장치(30),..., 제 M DB 장치(40)를 포함한다. 이때, 주경로는 제 1 DB 장치(20)이며, 보조 경로는 제 2 DB 장치(30),..., 제 M DB 장치(40)이다.
공유 메모리(14)에는 M 개의 DB 장치 각각에 할당된 인덱스 값과 이에 대한 상태 파라미터 값이 데이터베이스 테이블에 등록되어 있다. 예를 들어, 제 1 DB 장치(20), 제 2 DB 장치(30),..., 제 M DB 장치(40) 각각의 할당된 인덱스 값은 index[0], index[1],..., index[M-1]이며, 각 인덱스 값에 설정된 상태 파라미터 값은 정상일 경우, 1, 2,..., M이고, 장애인 경우 0이다.
따라서, 모든 응용 프로그램은 공유 메모리(14)에 저장된 DB 장치의 상태 파라미터 값을 주경로에서 보조경로 순서로 순차 확인하여 정상인 DB 장치를 검색하고, 검색된 정상 DB 장치로 DB 작업을 수행한다. 그리고, DB 작업 수행 후 해당 DB 장치의 상태를 감지한다. 이때, 해당 DB 장치가 장애 발생으로 판단되면, 공유 메모리의 상태 파라미터 값을 정상에서 장애로 변경하여 저장한다. 이로써, 다음 DB 작업을 수행하는 응용 프로그램에서 해당 DB 장치의 장애 발생을 인지하게 되고, 다른 DB 장치로 DB 작업을 수행하게 된다.
도 5는 도 4에 도시된 장애 발생시의 DB 연결 관리 시스템에서 장애 발생시에 따른 DB 연결을 관리하는 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 먼저, M개의 DB 장치 각각에 대한 상태 파라미터 값 정의한다(S511). 예를 들어, 제 1 DB 장치의 정상은 1, 제 2 DB 장치의 정상은 2,..., 제 M 장치의 정상은 M으로 각각 설정하고, 모든 DB 장치의 장애는 0으로 설정한다.
그런 다음, 모든 응용 프로그램은 M개의 DB 장치 각각에 동시 접속한다(S512).
이후, 제 1 응용 프로그램(11)이 DB 작업 요청 메시지를 수신하면(S513), 공유 메모리(14)의 데이터베이스 테이블을 조회하여 저장된 각 DB 장치의 상태 파라미터 값을 확인한다(S514). 이때, 제 1 응용 프로그램(11)은 주경로인 제 1 DB 장치(20)부터 인덱스 값의 내림차순에 따라 순차적으로 제 M DB 장치(40)까지 상태 파라미터 값을 조회하되, 정상인 DB 장치가 조회되면 더 이상의 상태 파라미터 값 조회를 진행하지 않고, 정상인 DB 장치로 DB 작업을 수행한다. 즉, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)의 상태 파라미터 값이 1이면 정상으로 판단하고, 다른 DB 장치에 대한 상태 파라미터 값은 조회하지 않는다.
제 1 DB 장치(20)의 상태 파라미터 값의 확인 결과, 제 1 DB 장치(20)의 상태 파라미터 값이 1이면(S515, Y), 제 1 응용 프로그램(11)은 제 1 DB 장치(20)를 정상으로 판단하여 제 1 DB 장치(20)로 DB 작업을 수행한다(S516).
그런 다음, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)의 상태를 감지한다(S517). 구체적으로, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)로부터 응답 메시지를 수신하고, 응답 메시지가 DB 작업 수행 완료 메시지이면 제 1 DB 장치(20)가 정상적으로 동작하고 있다고 판단하고(S518, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S513).
한편, 제 1 응용 프로그램(11)은 수신된 응답 메시지가 DB 작업 수행 실패 메시지이면 제 1 DB 장치(20)의 장애 발생으로 판단하고(S518, Y), 공유 메모리(14)에 저장된 제 1 DB 장치(20)의 상태 파라미터 값을 1에서 0으로 변경하여 저장한다(S519). 여기서, DB 작업 수행 실패 메시지는 DB 장치의 내부 메모리 부족 및 인덱스 값의 깨짐과 같이 미리 정의된 DB 장치의 내부 장애에 의한 DB 작업 수행이 실패할 경우 전송된다.
또한, 제 1 응용 프로그램(11)은 DB 작업 수행 후의 제 1 DB 장치(20)의 상태를 감지하기 위해, 제 1 DB 장치(20)로 타임 아웃 요청 메시지를 전송한다(S517). 이후, 제 1 DB 장치(20)로부터 타임 아웃 응답 메시지가 수신되면, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)가 정상적으로 동작하고 있다고 판단하고(S518, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S513).
한편, 제 1 DB 장치(20)로부터 타임 아웃 응답 메시지가 수신되지 않으면, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)의 장애 발생으로 판단하고(S518, Y), 공유 메모리(14)의 데이터베이스 테이블에 저장된 제 1 DB 장치(20)의 상태 파라미터 값을 1에서 0으로 변경하여 저장한다(S519).
그리고, 단계 S515에서, 제 1 DB 장치(20)의 상태 파라미터 값의 확인 결과, 제 1 DB 장치(20)의 상태 파라미터 값이 0이면, 제 1 응용 프로그램(11)은 제 1 DB 장치(20)를 장애로 판단하고 보조 경로에 대한 상태 파라미터 값을 확인한다(S521). 즉, 제 1 응용 프로그램(11)은 M(M≥2) 개의 DB 장치에 대한 상태 파라미터 값을 순차적으로 확인한다(S521).
이때, 제 1 응용 프로그램(11)은 공유 메모리(14)의 데이터베이스 테이블을 조회하여 M 개의 DB 장치에 대한 상태 파라미터 값을 확인하고, M 개의 DB 장치 중 상태 파라미터 값이 정상으로 판단되는 하나의 DB 장치(A)가 검색되면(S521, 하하나의 DB 장치(A)로 DB 작업을 수행한다(S522).
그런 다음, 제 1 응용 프로그램(11)은 하나의 DB 장치(A)의 상태를 감지한다(S523). 구체적으로, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)로부터 응답 메시지를 수신하고, 응답 메시지가 DB 작업 수행 완료 메시지이면 제 2 DB 장치(30)가 정상적으로 동작하고 있다고 판단하고(S524, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S513).
한편, 제 1 응용 프로그램(11)은 수신된 응답 메시지가 DB 작업 수행 실패 메시지이면 제 2 DB 장치(30)의 장애 발생으로 판단하고(S524, Y), 공유 메모리(14)에 저장된 제 2 DB 장치(30)의 상태 파라미터 값을 2에서 0으로 변경하여 저장한다(S525).
또한, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)의 상태를 감지하기 위해 제 2 DB 장치(30)로 타임 아웃 요청 메시지를 전송한다(S523). 이후, 제 2 DB 장치(30)로부터 타임 아웃 응답 메시지가 수신되면, 제 1 응용 프로그램(11)은 제 2 DB 장치(30)가 정상적으로 동작하고 있다고 판단하고(S524, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S513).
한편, 제 1 응용 프로그램(11)은 하나의 DB 장치(A)로 타임 아웃 요청 메시지를 전송하고, 이후, 하나의 DB 장치(A)로부터 타임 아웃 응답 메시지가 수신되면, 하나의 DB 장치(A)가 정상적으로 동작하고 있다고 판단하고(S524, N), 다음 DB 작업 요청 메시지의 수신을 대기한다(S513).
한편, 하나의 DB 장치(A)로부터 타임 아웃 응답 메시지가 수신되지 않으면, 제 1 응용 프로그램(11)은 하나의 DB 장치(A)의 장애 발생으로 판단하고(S524, Y), 공유 메모리(14)의 데이터베이스 테이블에 저장된 하나의 DB 장치(A)의 상태 파라미터 값을 0으로 변경하여 저장한다(S525).
여기서, 단계 S519 및 S525에서 변경된 상태 파라미터 값은 공유 메모리(14)의 데이터베이스 테이블에 저장되고, 다른 응용 프로그램에서 이를 참조하여 DB 작업을 수행하게 된다.
그리고, 단계 S521에서, 보조 경로인 M 개의 DB 장치에 대한 상태 파라미터 값의 확인 결과(S521, N), M 개의 DB 장치의 상태 파라미터 값이 모두 O이면 모든 DB 장치가 장애인 것으로 판단하고 DB 작업의 수행을 실패로 처리한다.
이와 같이, 본 발명에 따른 장애 발생시 DB 연결 관리 방법은, M(M≥2) 개의 DB 장치를 구비하고, 각 응용 프로그램이 M 개의 DB 장치에 동시 접속된 상태에서, M 개의 DB 장치에 대한 미리 정의된 상태 파라미터 값을 조회함으로써 정상인 DB 장치로의 DB 작업을 용이하게 수행할 수 있으며, 또한, DB 작업을 수행한 DB 장치의 상태를 감지하여 장애 발생시 해당 DB 장치의 상태 파라미터 값을 변경함으로써 다른 응용 프로그램이 변경된 상태 파라미터 값을 참조하여 다른 DB 경로를 통해 DB 작업을 수행하도록 할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들을 한정적인 관점이 아니라 설명적인 관점에서 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 한다.
또한, 본 발명에 따른 장치 및 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
10. 클라이언트 20. 제 1 DB 장치
30. 제 2 DB 장치 40. 제 M DB 장치

Claims (13)

  1. 제 1 DB 장치와 제 2 DB 장치로 구성된 이중화 DB 장치의 장애 발생시 DB 연결을 관리하는 방법에 있어서,
    다수의 응용 프로그램 각각이 상기 제 1 DB 장치와 제 2 DB 장치에 동시에 접속하는 1단계;
    다수의 응용 프로그램 중 제 1 응용 프로그램이 DB 작업 요청 메시지를 수신하면, 공유 메모리를 검색하여 미리 저장된 제 1 DB 장치 및 제 2 DB 장치의 상태 파라미터 값을 확인하는 2단계;
    확인 결과, 제 1 응용 프로그램이 상태 파라미터 값이 정상으로 확인된 제 1 DB 장치 또는 제 2 DB 장치로 요청된 DB 작업을 수행하는 3단계; 및
    제 1 응용 프로그램이 DB 작업을 수행한 DB 장치의 상태를 감지하고 감지 결과, 장애 발생으로 판단되면 해당 DB 장치의 상태 파라미터 값을 정상에서 장애로 변경하는 4단계;를 포함하는 장애 발생시의 DB 연결 관리 방법.
  2. 제1항에 있어서,
    상기 1단계 전에, 제 1 DB 장치와 제 2 DB 장치의 상태 파라미터 값을 정의하고, 각 DB 장치의 상태를 감지하여 공유 메모리에 저장하는 단계;를 더 포함하는 것을 특징으로 하는 장애 발생시의 DB 연결 관리 방법.
  3. 제1항에 있어서,
    상기 2단계는, 제 1 응용 프로그램이 DB 작업 요청 메시지를 수신하면, 공유 메모리의 데이터베이스 테이블을 검색하여 제 1 DB 장치의 상태 파라미터 값을 조회하는 단계;
    조회 결과, 제 1 DB 장치의 상태 파라미터 값이 정상이면, 상기 제 1 DB 장치로 요청된 DB 작업을 수행하고, 제 1 DB 장치의 상태 파라미터 값이 장애이면, 공유 메모리의 데이터베이스 테이블을 재검색하여 제 2 DB 장치의 상태 파라미터 값을 조회하는 단계; 및
    조회 결과, 제 2 DB 장치의 상태 파라미터 값이 정상이면, 상기 제 2 DB 장치로 요청된 DB 작업을 수행하고, 제 2 DB 장치의 상태 파라미터 값이 장애이면, 요청된 DB 작업의 수행을 실패 처리하는 단계;를 포함하는 것을 특징으로 하는 장애 발생시의 DB 연결 관리 방법.
  4. 제1항에 있어서,
    상기 4단계는, 상기 제 1 응용 프로그램이 상기 DB 작업을 수행한 DB 장치로부터 DB 작업 수행에 대한 응답 메시지를 수신하는 단계;
    상기 응답 메시지가 DB 작업 수행 실패이면, 상기 DB 작업을 수행한 DB 장치의 장애 발생으로 판단하여 해당 DB 장치의 상태 파라미터 값을 정상에서 장애로 변경하는 단계;
    상기 응답 메시지가 DB 작업 수행 완료이면, 상기 DB 작업을 수행한 DB 장치로 타임 아웃 요청 메시지를 전송하고, 상기 타임 아웃 요청 메시지에 대한 타임 아웃 응답 메시지가 상기 DB 작업을 수행한 DB 장치로부터 수신되지 않으면, 상기 DB 작업을 수행한 DB 장치의 장애 발생으로 판단하여 해당 DB 장치의 상태 파라미터 값을 정상에서 장애로 변경하는 단계;를 더 포함하는 것을 특징으로 하는 장애 발생시 DB 연결 관리 방법.
  5. 제1항 또는 제4항에 있어서,
    다른 응용 프로그램이 변경된 DB 장치의 상태 파라미터 값이 장애임을 확인한 후 다른 DB 장치로 DB 작업을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 장애 발생시의 DB 연결 관리 방법.
  6. 다수의 DB 장치로 구성된 이중화 DB 장치의 장애 발생시 DB 연결을 관리하는 방법에 있어서,
    다수의 응용 프로그램 각각이 상기 다수의 DB 장치에 동시 접속하는 (1)단계;
    상기 다수의 응용 프로그램 중 제 1 응용 프로그램이 DB 작업 수행 요청 메시지를 수신하면, 공유 메모리의 미리 저장된 DB 장치별 상태 파라미터 값을 조회하여 상기 다수의 DB 장치 중 DB 작업을 수행할 하나의 DB 장치를 검색하는 (2)단계;
    검색 결과, 제 1 응용 프로그램은 조회된 상태 파라미터 값이 정상인 상기 하나의 DB 장치로 요청된 DB 작업을 수행하는 (3)단계;
    제 1 응용 프로그램이 상기 하나의 DB 장치의 상태를 감지하는 (4)단계;
    감지 결과, 상기 하나의 DB 장치의 장애 발생으로 판단되면, 제 1 응용 프로그램이 상기 하나의 DB 장치의 상태 파라미터 값을 정상에서 장애로 변경하는 (5)단계;를 포함하는 장애 발생시의 DB 연결 관리 방법.
  7. 제6항에 있어서,
    상기 (1)단계 전에, 상기 다수의 DB 장치 각각에 대한 상태 파라미터 값을 정의하고, 각 DB 장치의 상태를 감지하여 공유 메모리에 저장하는 단계;를 더 포함하는 것을 특징으로 하는 장애 발생시의 DB 연결 관리 방법.
  8. 제6항에 있어서,
    상기 (2)단계는, 제 1 응용 프로그램이 공유 메모리에 미리 저장된 DB 장치별 상태 파라미터 값을 확인하는 단계;
    다수의 DB 장치 중 하나의 DB 장치의 상태 파라미터 값이 정상이면, 상기 다수의 DB 장치의 상태 파라미터 값의 조회를 종료하는 단계; 및
    상기 다수의 DB 장치 중 하나의 DB 장치의 상태 파라미터 값이 장애이면, 상기 하나의 DB 장치를 제외한 다른 DB 장치의 상태 파라미터 값을 확인하는 단계; 및
    확인 결과, 모든 DB 장치의 상태 파라미터 값이 장애이면, 요청된 DB 작업의 수행을 실패 처리하는 단계;를 포함하는 것을 특징으로 하는 장애 발생시 DB 연결 관리 방법.
  9. 제6항에 있어서,
    상기 (4)단계는, 상기 하나의 DB 장치에서 DB 작업 수행에 대한 응답 메시지가 DB 작업 수행 실패이면, 상기 하나의 DB 장치의 장애 발생으로 판단하는 단계인 것을 특징으로 하는 장애 발생시 DB 연결 관리 방법.
  10. 제6항에 있어서,
    상기 (4)단계는, 상기 하나의 DB 장치에서 DB 작업 수행에 대한 응답 메시지가 DB 작업 수행 완료이면, 상기 하나의 DB 장치로 타임 아웃 요청 메시지를 전송하는 단계; 및
    상기 타임 아웃 요청 메시지에 대한 타임 아웃 응답 메시지가 상기 하나의 DB 장치로부터 수신되지 않으면, 상기 하나의 DB 장치의 장애 발생으로 판단하는 단계;를 더 포함하는 것을 특징으로 하는 장애 발생시 DB 연결 관리 방법.
  11. 제6항에 있어서,
    다른 응용 프로그램이 변경된 상기 하나의 DB 장치의 상태 파라미터 값이 장애임을 확인한 후 다른 DB 장치로 DB 작업을 수행하는 (6)단계;를 더 포함하는 것을 특징으로 하는 장애 발생시의 DB 연결 관리 방법.
  12. 제8항에 있어서,
    상기 각 응용 프로그램이 공유 메모리에 미리 저장된 DB 장치별 상태 파라미터 값을 확인하는 단계는, 주경로인 제 1 DB 장치의 상태 파라미터 값을 조회한 후, 제 1 DB 장치의 상태 파라미터 값이 장애이면, (M-1)개의 DB 장치(M≥2, M은 자연수)의 상태 파라미터 값을 순차적으로 공유 메모리에서 조회하는 단계인 것을 특징으로 하는 장애 발생시의 DB 연결 관리 방법.
  13. 제1항 내지 제12항 중 어느 한 항의 장애 발생시 DB 연결 관리 방법을 구현하는 프로그램이 기록된 기록매체.
KR1020110114343A 2011-11-04 2011-11-04 장애 발생시의 db 연결 관리 방법 KR20130049360A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110114343A KR20130049360A (ko) 2011-11-04 2011-11-04 장애 발생시의 db 연결 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110114343A KR20130049360A (ko) 2011-11-04 2011-11-04 장애 발생시의 db 연결 관리 방법

Publications (1)

Publication Number Publication Date
KR20130049360A true KR20130049360A (ko) 2013-05-14

Family

ID=48660125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110114343A KR20130049360A (ko) 2011-11-04 2011-11-04 장애 발생시의 db 연결 관리 방법

Country Status (1)

Country Link
KR (1) KR20130049360A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160082040A (ko) * 2014-12-30 2016-07-08 주식회사 포스코아이씨티 에너지 및 공정 제어를 위한 이중화된 산업용 제어 시스템 및 그 제어 방법
KR20180125734A (ko) * 2017-05-16 2018-11-26 한국전자통신연구원 파라미터 공유 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160082040A (ko) * 2014-12-30 2016-07-08 주식회사 포스코아이씨티 에너지 및 공정 제어를 위한 이중화된 산업용 제어 시스템 및 그 제어 방법
KR20180125734A (ko) * 2017-05-16 2018-11-26 한국전자통신연구원 파라미터 공유 장치 및 방법

Similar Documents

Publication Publication Date Title
US8484510B2 (en) Enhanced cluster failover management
US7293194B2 (en) Method and device for switching database access part from for-standby to currently in use
JP6028850B2 (ja) データ多重化システム
JP2007025785A (ja) データベース処理方法、システム及びプログラム
US20120303761A1 (en) Breakpoint continuous transmission method
US20090055444A1 (en) Method and System for High-Availability Database
EP3319258B1 (en) Service take-over method and storage device, and service take-over apparatus
US8732356B2 (en) Storage system, and access path state update method
CN113300953B (zh) 一种多路径故障转移组的管理方法、系统及相关装置
JP2010271952A (ja) 分散型制御システムのデータ管理装置
KR20130049360A (ko) 장애 발생시의 db 연결 관리 방법
JP4572581B2 (ja) データベース処理方法およびシステム並びにその処理プログラム
US20100235549A1 (en) Computer and input/output control method
KR102665749B1 (ko) 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치
JP2005128781A (ja) 系切り替え方法及び情報処理システム
US10896103B2 (en) Information processing system
KR101696911B1 (ko) 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
JP2015095015A (ja) データ配置方法、データ配置プログラムおよび情報処理システム
US20120233317A1 (en) Computer system management method and management apparatus
US7509302B2 (en) Device, method and program for providing a high-performance storage access environment while issuing a volume access request including an address of a volume to access
US9300738B2 (en) Virtual state machine for managing operation requests in a client server environment
JP6289214B2 (ja) 情報処理システム及びその方法
JP2005135125A (ja) フェイルオーバ処理方法
JP6044363B2 (ja) コンピュータ、nasアクセス方法およびnasアクセスプログラム
JP4256912B2 (ja) ストレージ装置を有するネットワークにおける、ボリューム及び障害管理方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment