KR20130107612A - 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버 - Google Patents

데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버 Download PDF

Info

Publication number
KR20130107612A
KR20130107612A KR1020120029530A KR20120029530A KR20130107612A KR 20130107612 A KR20130107612 A KR 20130107612A KR 1020120029530 A KR1020120029530 A KR 1020120029530A KR 20120029530 A KR20120029530 A KR 20120029530A KR 20130107612 A KR20130107612 A KR 20130107612A
Authority
KR
South Korea
Prior art keywords
database system
script
database
diagnostic
diagnosis
Prior art date
Application number
KR1020120029530A
Other languages
English (en)
Other versions
KR101331452B1 (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 KR1020120029530A priority Critical patent/KR101331452B1/ko
Priority to US13/831,253 priority patent/US20130304695A1/en
Priority to CN201310091604.7A priority patent/CN103324656B/zh
Publication of KR20130107612A publication Critical patent/KR20130107612A/ko
Application granted granted Critical
Publication of KR101331452B1 publication Critical patent/KR101331452B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

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

Abstract

본 발명은 데이터베이스 관리 기술에 관한 것으로, 본 발명의 일 실시예에 따른 데이터베이스 관리 방법은 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 수행된다. 상기 데이터베이스 관리 방법은 (a) 상기 데이터베이스 시스템에서 관리하는 적어도 하나의 데이터베이스에 대한 리스트를 생성하는 단계, (b) 상기 리스트 중에서 선택된 적어도 하나의 데이터베이스에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 단계 및 (c) 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트-상기 적어도 하나의 스크립트는 상기 데이터베이스 시스템의 상태에 따라 다르게 설정된 실행 시간을 가짐-를 상기 데이터베이스 시스템에 제공하여 진단을 수행하는 단계를 포함한다. 본 발명에 따르면, 특정 데이터베이스 시스템에 원격 접속하여 다양한 진단 항목을 제공하고, 해당 진단의 결과에 대하여 정량적인 분석을 제공함으로써 보다 심층적이고 편리하게 데이터베이스 시스템을 관리할 수 있는 수 있는 효과가 있다.

Description

데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버 {METHOD FOR PROVIDING DATABASE MANAGEMENT AND THE DATABASE MANAGEMENT SERVER THERE OF}
본 발명은 데이터베이스 관리 기술에 관한 것으로, 보다 상세하게는, 원격 접속한 데이터베이스 시스템에 대한 다양한 평가 항목을 이용하여 데이터베이스 시스템을 평가할 수 있는 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버에 관한 것이다.
컴퓨팅 환경의 급속한 발전에 따라 데이터베이스 시스템은 점점 더 고용량 및 다양화를 만족하며 개발되어지고 있다. 이러한 발전에 따라, 데이터베이스 시스템과 물리적으로 이격된 원격지에서 데이터베이스 시스템을 관리할 수 있는 기술에 대한 요구가 발생하고 있다.
따라서, 데이터베이스 시스템에 원격으로 접속하여 해당 데이터베이스 시스템을 진단 또는 평가할 수 있는 데이터베이스 관리 기술에 대한 다양한 니즈가 발생하고 있다.
그러나, 종래의 데이터베이스 관리 기술은 데이터플로우, 가용 용량 정보 또는 실행 중인 프로세스 개수 등과 같이 특정 성능에 대한 결과만을 제공할 수 있을 뿐, 시스템 현 상태에 대한 정확한 상태를 파악 할 수 있는 정량적 기준을 제공하지 못하는 한계성을 가지고 있다.
또한, 종래의 데이터베이스 관리 기술은 데이터베이스 시스템에 대한 진단 또는 평가를 수행할 때, 그러한 진단 또는 평가에 의하여 해당 데이터베이스 시스템에 부하가 유발되어도 이를 방지할 수 있는 어떠한 수단을 가지지 못한 한계가 있었다. 즉, 진단 또는 평가를 위한 소정의 프로세스를 구동함에 있어서 대상 데이터베이스 시스템의 상태를 확인하거나, 그러한 상태에 따라 해당 프로세스의 구동을 제어하는 등의 기능을 수행하지 못하는 한계성을 가지고 있었다.
본 발명은 특정 데이터베이스 시스템에 원격 접속하여 다양한 진단 항목을 제공하고, 해당 진단의 결과에 대하여 정량적인 분석을 제공함으로써 보다 심층적이고 편리하게 데이터베이스 시스템을 관리할 수 있는 수 있는 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버를 제공하고자 한다.
또한, 본 발명은 원격 접속한 데이터베이스 시스템에 대하여 스크립트를 이용하여 진단을 수행함으로써 보다 빠르고 간단하게 진단을 수행할 수 있는 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버를 제공하고자 한다.
또한, 본 발명은 스크립트에 대하여 시간 제한 등의 제한을 두어 진단을 수행하고, 원격 접속한 데이터베이스 시스템에 부하가 발생하면 수행 중인 진단을 중지함으로써 대상 데이터베이스 시스템의 성능 안정성을 보장할 수 있는 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버를 제공하고자 한다.
또한, 본 발명은 대상 데이터베이스 시스템에 대한 진단 결과를 가공하여 다차원적인 보고서를 제공하며, 또한 해당 데이터베이스 시스템의 과거 평가 기록 또는 타 데이터베이스 시스템과의 비교 평가를 제공함으로써 다양한 각도에 대한 자동으로 구성된 보고서를 제공할 수 있는 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버를 제공하고자 한다.
실시예들 중에서, 데이터베이스 관리 방법은 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 수행된다. 상기 데이터베이스 관리 방법은 (a) 상기 데이터베이스 시스템에서 관리하는 적어도 하나의 데이터베이스에 대한 리스트를 생성하는 단계, (b) 상기 리스트 중에서 선택된 적어도 하나의 데이터베이스에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 단계 및 (c) 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트-상기 적어도 하나의 스크립트는 상기 데이터베이스 시스템의 상태에 따라 다르게 설정된 실행 시간을 가짐-를 상기 데이터베이스 시스템에 제공하여 진단을 수행하는 단계를 포함한다.
일 실시예에서, 상기 (b) 단계는 데이터베이스 매니지먼트 시스템(DBMS) 또는 그에 대한 버전 정보를 기초로 표준화된 복수의 진단 스크립트를 생성하는 단계 및 상기 복수의 진단 스크립트를 상기 진단 항목별로 구분하여 상기 진단 항목 리스트를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (b) 단계는 상기 데이터베이스 시스템에 대한 과거의 진단 히스토리를 확인하는 단계 및 상기 확인된 진단 히스토리를 이용하여 적어도 하나의 진단 항목에 대한 추천을 포함하여 상기 진단 항목 리스트를 제공하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 데이터베이스 시스템의 현재 상태를 확인하는 단계 및 상기 확인된 현재 상태를 반영하여 상기 적어도 하나의 스트립트의 실행 시간을 설정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 실행 시간이 설정된 적어도 하나의 스크립트를 제공하는 단계 및 상기 제공된 적어도 하나의 스크립트가 수행 중인 상태에서 상기 데이터베이스 시스템의 부하가 기 설정된 수치 이상으로 증가되면, 상기 제공된 적어도 하나의 스크립트를 중단시키도록 제어하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터베이스 관리 방법은 (d) 데이터베이스 시스템으로부터 제공받은 상기 스크립트의 실행 결과에 따라 생성된 로우 데이터(Row Data)에 대하여 기 설정된 소정의 정량적 기준에 따라 데이터를 가공하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (d) 단계는 상기 로우 데이터를 담을 수 있는 임시 테이블을 생성하는 단계, 상기 스크립트의 실행 결과에 따른 데이터 또는 그에 대한 확장 프로시저에 의한 확장 데이터 중 적어도 하나를 상기 임시 테이블에 저장하는 단계 및 상기 데이터베이스 시스템의 오퍼레이팅 시스템 상의 정보를 이용하여 상기 임시 테이블에 저장된 데이터의 적어도 일부를 분리 또는 합병 작업을 수행하여 상기 로우 데이터를 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터베이스 관리 방법은 (e) 상기 가공된 데이터를 이용하여 상기 평가 항목에 의한 평가 결과를 산출하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (e) 단계는 상기 각 평가 항목 별로 상기 데이터베이스 시스템에 설정된 기준 데이터에 대한 상기 가공된 데이터를 비교하여 평가하는 단계 및 상기 비교 평가한 결과를 정량적 점수 데이터로서 변환 산출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터베이스 관리 방법은 (f) 상기 적어도 하나의 평가 결과를 포함하는 진단 보고서를 생성하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (f) 단계는 상기 데이터베이스 시스템에 대하여 기 생성되어 저장된 진단 보고서에 대한 히스토리를 확인하는 단계 및 상기 기 생성되어 저장된 진단 보고서를 상기 생성된 진단 보고서와 비교하여 제공하는 단계를 포함할 수 있다.
실시예들 중에서, 데이터베이스 관리 방법은 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 수행된다. 상기 데이터베이스 관리 방법은 (a) 상기 데이터베이스 시스템에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 단계, (b) 상기 진단을 수행하기 위한 적어도 하나의 스크립트를 생성하여 상기 진단 항목과 연관하는 단계 및 (c) 상기 데이터베이스 시스템의 상태를 반영하여 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트를 조정하고, 조정된 상기 적어도 하나의 스크립트를 상기 데이터베이스 시스템에서 실행시켜 진단을 수행하는 단계를 포함한다.
일 실시예에서, 상기 적어도 하나의 스크립트는 수행 시간을 개별적으로 설정할 수 있으며, 설정된 수행 시간 동안 상기 데이터베이스 시스템 상에서 구동되어 해당 데이터베이스 시스템에 대한 진단 데이터를 생성할 수 있다.
일 실시예에서, 상기 적어도 하나의 스크립트는 상기 데이터베이스 시스템에 대한 시스템 정보를 취득할 수 있는 소정의 쿼리를 포함하고, 상기 데이터베이스 시스템에서의 상기 쿼리에 대한 응답 부하가 기 설정된 부하를 초과하면, 해당 스크립트의 구동을 중지할 수 있다.
일 실시예에서, 상기 진단 항목은 상기 데이터베이스 시스템에 대한 기본 정보, 구성 관리, 장애 관리, 용량 관리, 성능 관리, 가용성 관리 및 보안 관리 중 적어도 하나를 포함하고, 상기 적어도 하나의 진단 항목은 각각 해당 진단을 위한 적어도 하나의 스크립트와 연관될 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 조정된 상기 적어도 하나의 스크립트가 상기 데이터베이스 시스템에서 실행되는 동안 상기 데이터베이스 시스템의 시스템 정보를 확인하는 단계 및 상기 데이터베이스 시스템이 기 설정된 부하를 초과하면, 상기 실행 중인 적어도 하나의 스크립트를 중지하도록 제어하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 데이터베이스 시스템의 상태를 반영하여 상기 적어도 하나의 스크립트에 대한 최대 실행 시간을 설정하는 단계 및 상기 적어도 하나의 스크립트들 각각에 대하여 차등적으로 구분될 수 있는 우선 순위-상기 우선 순위는 상기 최대 실행 시간보다 우선적으로 고려됨-를 설정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터베이스 관리 방법은 (d) 상기 (c) 단계에 의하여 생성된 상기 적어도 하나의 스크립트의 실행 결과를 해당 데이터베이스 시스템의 기준 데이터와 비교하여 산출된 평가 데이터를 제공하는 단계를 더 포함할 수 있다.
실시예들 중에서, 데이터베이스 관리 서버는 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있다. 상기 데이터베이스 관리 서버는 평가 항목 관리부, 스크립트 관리부 및 제어부를 포함할 수 있다. 상기 평가 항목 관리부는 상기 데이터베이스 시스템에 대하여 수행 가능한 복수의 진단 항목들을 관리할 수 있다. 상기 스크립트 관리부는 상기 복수의 진단 항목과 각각 연관되어 소정의 진단을 수행하기 위한 복수의 스크립트들을 관리할 수 있다. 상기 제어부는 상기 복수의 진단 항목들 중에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트들을 선택하고, 선택된 적어도 하나의 스크립트들에 대하여 수행 제한 요건을 설정하여 상기 데이터베이스 시스템에 제공할 수 있다.
일 실시예에서, 상기 제어부는 상기 데이터베이스 시스템의 상태에 따라 상기 적어도 하나의 스크립트들 각각에 최대 수행 시간을 설정하여 제공할 수 있다.
일 실시예에서, 상기 제어부는 상기 적어도 하나의 스트립트에 의하여 발생하는 데이터베이스 시스템의 부하를 확인하고, 만일 기 서정된 부하를 초과하면 해당 적어도 하나의 스크립트를 중지하도록 제어할 수 있다.
일 실시예에서, 상기 데이터베이스 관리 서버는 상기 적어도 하나의 스크립트의 실행 결과에 따라 생성된 로우 데이터(Row Data)를 기 설정된 소정의 정량적 기준에 따라 가공하고, 가공된 데이터를 상기 데이터베이스 시스템에 대하여 기 설정된 기준 데이터와 비교하여 평가하는 리포트 관리부를 더 포함할 수 있다.
실시예들 중에서, 기록매체는 데이터베이스 관리 방법을 실행시키기 위한 프로그램을 기록하고, 상기 프로그램은 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 구동될 수 있는 프로그램으로서, (a) 상기 데이터베이스 시스템에서 관리하는 적어도 하나의 데이터베이스에 대한 리스트를 생성하는 기능, (b) 상기 리스트 중에서 선택된 적어도 하나의 데이터베이스에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 기능 및 (c) 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트-상기 적어도 하나의 스크립트는 상기 데이터베이스 시스템의 상태에 따라 다르게 설정된 실행 시간을 가짐-를 상기 데이터베이스 시스템에 제공하여 진단을 수행하는 기능을 포함한다.
실시예들 중에서, 기록매체는 데이터베이스 관리 방법을 실행시키기 위한 프로그램을 기록하고, 상기 프로그램은 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 구동될 수 있는 프로그램으로서, (a) 상기 데이터베이스 시스템에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 기능, (b) 상기 진단을 수행하기 위한 적어도 하나의 스크립트를 생성하여 상기 진단 항목과 연관하는 기능 및 (c) 상기 데이터베이스 시스템의 상태를 반영하여 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트를 조정하고, 조정된 상기 적어도 하나의 스크립트를 상기 데이터베이스 시스템에서 실행시켜 진단을 수행하는 기능을 포함한다.
본 발명에 따르면, 특정 데이터베이스 시스템에 원격 접속하여 다양한 진단 항목을 제공하고, 해당 진단의 결과에 대하여 정량적인 분석을 제공함으로써 보다 심층적이고 편리하게 데이터베이스 시스템을 관리할 수 있는 수 있는 효과가 있다.
또한 본 발명에 따르면, 원격 접속한 데이터베이스 시스템에 대하여 스크립트를 이용하여 진단을 수행함으로써 보다 빠르고 간단하게 진단을 수행할 수 있는 효과가 있다.
또한 본 발명에 따르면, 스크립트에 대하여 시간 제한 등의 제한을 두어 진단을 수행하고, 원격 접속한 데이터베이스 시스템에 부하가 발생하면 수행 중인 진단을 중지함으로써 대상 데이터베이스 시스템의 성능 안정성을 보장할 수 있는 효과가 있다.
또한 본 발명에 따르면, 대상 데이터베이스 시스템에 대한 진단 결과를 가공하여 다차원적인 보고서를 제공하며, 또한 해당 데이터베이스 시스템의 과거 평가 기록 또는 타 데이터베이스 시스템과의 비교 평가를 제공함으로써 다양한 각도에 대한 자동으로 구성된 보고서를 제공할 수 있는 효과가 있다.
도 1은 본 발명에 따른 데이터베이스 관리 서버와 데이터베이스 시스템을 설명하기 위한 참고도이다.
도 2는 본 발명에 따른 데이터베이스 관리 서버의 일 실시예를 도시하는 구성도이다.
도 3은 본 발명에 따른 데이터베이스 관리 방법의 일 실시예를 설명하기 위한 순서도이다.
도 4는 본 발명에 따른 데이터베이스 관리 방법의 다른 일 실시예를 설명하기 위한 순서도이다.
도 5 내지 도 12는 본 발명에 따라 제공되는 스크립트의 일 예를 설명하기 위한 참고도들이다.
도 13 내지 도 18은 본 발명에 따라 사용자에게 제공될 수 있는 다양한 리포트들의 예시를 보여주는 참고도들이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명에 따른 데이터베이스 관리 서버와 데이터베이스 시스템을 설명하기 위한 참고도이다.
데이터베이스 시스템(100)은 평가의 대상이 되는 데이터베이스 시스템을 의미한다.
데이터베이스 시스템(100)은 데이터베이스 관리 서버(200)에 대하여 소정의 접근 권한 및 접근 경로를 설정할 수 있다. 예를 들어, 쿼리를 수행할 수 있는 권한 또는 특정 포트에 대한 접근 권한 등을 제공할 수 있다.
데이터베이스 시스템(100)은 데이터베이스, 데이터베이스 관리 시스템(DBMS) 등을 포함할 수 있으며, 실시예에 따라 복수의 데이터베이스를 관리할 수 있다.
데이터베이스 관리 서버(200)는 네트워크를 통하여 데이터베이스 시스템(100)에 연결되어 해당 데이터베이스 시스템(100)의 데이터베이스에 대하여 분석을 수행할 수 있다.
일 실시예에서, 데이터베이스 관리 서버(200)는 소정의 사용자 단말에 대한 접근 권한을 부여하여 생성한 보고서를 제공하거나, 사용자 단말을 통한 제어를 기초로 데이터베이스 시스템(100)에 대한 평가를 수행할 수 있다.
이러한 데이터베이스 관리 서버(200)에 대해서는 도 2를 참조하여 이하에서 보다 상세히 설명한다.
도 2는 본 발명에 따른 데이터베이스 관리 서버의 일 실시예를 도시하는 구성도이다.
도 2를 참조하여 더 상세히 설명하면, 데이터베이스 관리 서버(200)는 평가 항목 관리부(210), 스크립트 관리부(220) 및 제어부(230)를 포함할 수 있다. 일 실시예에서, 데이터베이스 관리 서버(200)는 평가 데이터 DB(240) 또는 리포트 관리부(250)를 더 포함할 수 있다.
평가 항목 관리부(210)는 데이터베이스 시스템(100)에 대하여 수행 가능한 복수의 진단 항목들을 관리할 수 있다.
일 실시예에서, 평가 항목 관리부(210)는 계층적 구조로서 진단 항목을 관리하고, 그에 대한 진단 항목 리스트를 제공할 수 있다.
일 실시예에서, 평가 항목 관리부(210)는 특정 데이터베이스에서 적용 가능한 진단 항목을 식별하고, 적용 가능한 진단 항목만을 이용하여 해당 데이터베이스에 대한 진단 항목 리스트를 생성할 수 있다.
일 실시예에서, 평가 항목 관리부(210)는 특정 데이터베이스 시스템(100)에서 관리하는 데이터베이스를 확인하여 리스트를 생성하고, 각 데이터베이스에 대하여 적용할 수 있는 진단 항목을 포함하는 진단 항목 리스트를 제공할 수 있다.
일 실시예에서, 평가 항목 관리부(210)는 과거의 진단 히스토리를 기초로 진단 항목을 결정할 수 있다. 예를 들어, 평가 항목 관리부(210)는 데이터베이스 시스템(100)에 대한 과거의 진단 히스토리를 확인하고, 확인된 진단 히스토리를 이용하여 적어도 하나의 진단 항목에 대한 추천을 포함하여 진단 항목 리스트를 제공할 수 있다.
일 실시에에서, 진단 항목은 데이터베이스 시스템(100)에 대한 기본 정보, 구성 관리, 장애 관리, 용량 관리, 성능 관리, 가용성 관리 및 보안 관리 중 적어도 하나를 포함할 수 있고, 적어도 하나의 진단 항목은 각각 해당 진단을 위한 적어도 하나의 스크립트와 연관될 수 있다.
스크립트 관리부(220)는 복수의 진단 항목과 각각 연관되어 소정의 진단을 수행하기 위한 복수의 스크립트들을 관리할 수 있다.
일 실시예에서, 스크립트는 수행 시간을 개별적으로 설정할 수 있으며, 설정된 수행 시간 동안 데이터베이스 시스템(100) 상에서 구동되어 해당 데이터베이스 시스템에 대한 진단 데이터를 생성할 수 있다.
일 실시예에서, 스크립트는 데이터베이스 시스템(100)에 대한 시스템 정보를 취득할 수 있는 소정의 쿼리를 포함하고, 데이터베이스 시스템(100)에서의 쿼리에 대한 응답 부하가 기 설정된 부하를 초과하면, 해당 스크립트의 구동을 중지할 수 있다.
일 실시예에서, 스크립트 관리부(220)는 표준화된 스크립트를 제공하여 진단을 수행하도록 할 수 있다. 예를 들어, 스크립트 관리부(220)는 데이터베이스 매니지먼트 시스템(DBMS) 또는 그에 대한 버전 정보를 기초로 표준화된 복수의 진단 스크립트를 생성하고, 생성된 복수의 진단 스크립트를 진단 항목별로 구분하여 제공하여, 평가 항목 관리부(210)가 그에 대한 진단 항목 리스트를 생성하도록 할 수 있다.
제어부(230)는 데이터베이스 관리 서버(200)의 다른 구성 요소들을 제어하여 데이터베이스 시스템(100)에 대한 관리를 제공할 수 있다.
제어부(230)는 스크립트에 대하여 소정의 요건(수행 제한 요건)을 설정하여 제공함으로써, 데이터베이스 시스템(100)의 안정적인 성능을 보장하며 데이터베이스 시스템(100)에 대한 관리를 제공할 수 있다. 예를 들어, 제어부(230)는 복수의 진단 항목들 중에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트들을 선택하고, 선택된 적어도 하나의 스크립트들에 대하여 수행 제한 요건을 설정하여 데이터베이스 시스템(100)에 제공할 수 있다. 여기에서, 수행 제한 요건은, 예를 들어, 최대 수행 시간일 수 있다. 즉, 스크립트의 쿼리 수행 시간을 한정함으로써 시스템의 과부하를 방지하도록 할 수 있다.
일 실시예에서, 제어부(230)는 데이터베이스 시스템(100)의 현재 상태를 확인하고, 확인된 현재 상태를 반영하여 적어도 하나의 스트립트의 실행 시간(최대 시간)을 설정할 수 있다.
일 실시예에서, 제어부(230)는 실행 시간이 설정된 적어도 하나의 스크립트를 데이터베이스 시스템(100)에 제공하고, 제공된 적어도 하나의 스크립트가 수행 중인 상태에서 데이터베이스 시스템(100)의 부하가 기 설정된 수치 이상으로 증가되면, 제공된 적어도 하나의 스크립트를 중단시키도록 제어할 수 있다.
일 실시예에서, 제어부(230)는 조정된 적어도 하나의 스크립트가 데이터베이스 시스템(100)에서 실행되는 동안 데이터베이스 시스템(100)의 시스템 정보를 확인하고, 데이터베이스 시스템(100)이 기 설정된 부하를 초과하면 실행 중인 적어도 하나의 스크립트를 중지하도록 제어할 수 있다.
일 실시예에서, 제어부(230)는 여러 스크립트에 대하여 별도의 우선 순위를 더 부여함으로써, 수행 시간의 한계 외에도 우선 순위를 더 반영하여 데이터베이스 시스템(100)의 운영 안정성을 보장하면서도 질 높은 평가를 수행하도록 할 수 있다. 예를 들어, 제어부(230)는 데이터베이스 시스템(100)의 상태를 반영하여 적어도 하나의 스크립트에 대한 최대 실행 시간을 설정하고, 적어도 하나의 스크립트들 각각에 대하여 차등적으로 구분될 수 있는 우선 순위를 설정할 수 있다. 여기에서, 우선 순위는 최대 실행 시간보다 우선적으로 고려되도록 설정된다.
일 실시예에서, 우선 순위가 부여된 스크립트(항목)는 다른 일반적인 스크립트 보다 우선하여 데이터베이스 시스템(100)에서 수행될 수 있다. 예를 들어, 우선 순위가 높은 스크립트에 의하여 수행되는 쿼리는, 데이터베이스 시스템(100)에서 수행 중인 일반적인 쿼리보다 높은 우선순위를 가질 수 있으며 따라서 먼저 처리될 수 있다.
일 실시예에서, 제어부(230)는 데이터베이스 시스템(100)에 발생한 부하가 기 설정된 부하를 초과하더라도, 소정의 우선 순위를 가지는 스크립트는 중지되지 않도록 설정할 수 있다. 예를 들어, 데이터베이스 시스템(100)의 현재 부하를 진단할 수 있는 소정의 스크립트는 데이터베이스 시스템(100)이 부하 초과 상태에서도 수행될 수 있다. 이는 데이터베이스 시스템(100)에 대한 진단을 우선적으로 수행하여 해당 데이터베이스 시스템(100)의 문제 상황을 파악할 수 있도록 하기 위함이다.
평가 데이터 DB(240)는 각 데이터베이스 시스템(100)에 대하여 수행된 평가에 대한 데이터를 저장할 수 있다.
리포트 관리부(250)는 적어도 하나의 스크립트의 실행 결과에 따라 생성된 로우 데이터(Row Data)를 기 설정된 소정의 정량적 기준에 따라 가공하고, 가공된 데이터를 데이터베이스 시스템(100)에 대하여 기 설정된 기준 데이터와 비교하여 평가할 수 있다. 리포트 관리부(250)는 평가한 결과를 이용하여 리포트를 생성할 수 있다.
일 실시예에서, 리포트 관리부(250)는 스크립트의 실행 결과에 따라 생성된 로우 데이터(Row Data)를 데이터베이스 시스템(100)으로부터 제공받고, 그에 대하여 기 설정된 소정의 정량적 기준에 따라 데이터를 가공할 수 있다.
일 실시예에서, 리포트 관리부(250)는 로우 데이터를 담을 수 있는 임시 테이블을 생성하고, 스크립트의 실행 결과에 따른 데이터 또는 그에 대한 확장 프로시저에 의한 확장 데이터 중 적어도 하나를 상기 임시 테이블에 저장할 수 있다. 리포트 관리부(250)는 데이터베이스 시스템(100)의 오퍼레이팅 시스템 상의 정보를 이용하여 임시 테이블에 저장된 데이터의 적어도 일부를 분리 또는 합병 작업을 수행하여 로우 데이터를 결정할 수 있다.
일 실시예에서, 리포트 관리부(250)는 가공된 데이터를 이용하여 평가 항목에 의한 평가 결과를 산출할 수 있다. 예를 들어, 리포트 관리부(250)는 각 평가 항목 별로 데이터베이스 시스템(100)에 설정된 기준 데이터에 대한 가공된 데이터를 비교하여 평가하고, 비교 평가한 결과를 정량적 점수 데이터로서 변환 산출함으로써 평가 결과를 산출할 수 있다.
일 실시예에서, 리포트 관리부(250)는 기준 데이터를 이용하여 평가 데이터를 생성할 수 있다. 예를 들어, 리포트 관리부(250)는 적어도 하나의 스크립트의 실행 결과를 해당 데이터베이스 시스템의 기준 데이터와 상호 비교하고, 그러한 비교에 따라 평가된 평가 데이터를 제공할 수 있다.
일 실시예에서, 리포트 관리부(250)는 적어도 하나의 평가 결과를 포함하는 진단 보고서를 생성할 수 있다. 진단 보고서에 대해서는 도 13 내지 도 18을 참조하여 이하에서 보다 상세히 설명한다.
일 실시예에서, 리포트 관리부(250)는 진단 보고서를 비교하여 제공할 수 있다. 예를 들어, 리포트 관리부(250)는 데이터베이스 시스템(100)에 대하여 기 생성되어 저장된 진단 보고서에 대한 히스토리를 확인하고, 기 생성되어 저장된 진단 보고서를 현재 생성된 진단 보고서와 비교하여 제공하도록 할 수 있다.
일 실시예에서, 리포트 관리부(250)는 소정의 진단 항목들에 대한 템플릿을 구성하고 이를 이용할 수 있다. 에를 들어, 진단 항목들에 대해서 원하는 템플릿을 설정하여 저장하고, 그 저장된 템플릿을 이용하여 진단 항목을 구성할 수 있다. 다른 예를 들어, 특정 항목에 대하여 설정된 템플릿을 다른 항목에 대하여 차용하도록 하여 재활용이 가능하도록 할 수 있다.
일 실시예에서, 리포트 관리부(250)는 생성된 진단 보고서를 소정 양식의 문서로서 재구성하여 제공할 수 있다. 예를 들어, 리포트 관리부(250)는 소정의 진단 보고서를 엑셀 문서 파일 형식으로 재구성하고, 이를 사용자 단말로 제공하도록 할 수 있다.
이하에서는, 도 3 내지 도 4를 참조하여 데이터베이스 관리 방법의 다양한 실시예들에 대하여 설명한다. 이하에서 설명 할 실시예들은 전술한 데이터베이스 관리 서버(200)에서 수행되므로, 서로 상응하는 내용에 대해서는 중복하여 설명하지 않으나, 당업자는 전술한 기재로부터 후술할 데이터베이스 관리 방법의 실시예들을 보다 명확하게 이해할 수 있을 것이다.
도 3은 본 발명에 따른 데이터베이스 관리 방법의 일 실시예를 설명하기 위한 순서도이다.
도 3을 참조하여 데이터베이스 관리 방법의 일 실시예에 대하여 더 상세히 설명하면, 데이터베이스 관리 서버(200)는 데이터베이스 시스템에서 관리하는 적어도 하나의 데이터베이스에 대한 리스트를 생성할 수 있다(단계 S310).
데이터베이스 관리 서버(200)는 리스트 중에서 선택된 적어도 하나의 데이터베이스에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하고(단계 S320), 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트를 데이터베이스 시스템(100)에 제공하여 진단을 수행할 수 있다(단계 S330). 여기에서, 적어도 하나의 스크립트는 데이터베이스 시스템(100)의 상태에 따라 다르게 설정된 실행 시간을 가질 수 있다.
단계 S320에 대한 일 실시예에서, 데이터베이스 관리 서버(200)는 데이터베이스 매니지먼트 시스템(DBMS) 또는 그에 대한 버전 정보를 기초로 표준화된 복수의 진단 스크립트를 생성하고, 복수의 진단 스크립트를 진단 항목별로 구분하여 진단 항목 리스트를 생성할 수 있다.
단계 S320에 대한 일 실시예에서, 데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)에 대한 과거의 진단 히스토리를 확인하고, 확인된 진단 히스토리를 이용하여 적어도 하나의 진단 항목에 대한 추천을 포함하여 진단 항목 리스트를 제공할 수 있다.
단계 S330에 대한 일 실시예에서, 데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)의 현재 상태를 확인하고, 확인된 현재 상태를 반영하여 적어도 하나의 스트립트의 실행 시간을 설정할 수 있다.
단계 S330에 대한 일 실시예에서, 데이터베이스 관리 서버(200)는 실행 시간이 설정된 적어도 하나의 스크립트를 제공하고, 제공된 적어도 하나의 스크립트가 수행 중인 상태에서 데이터베이스 시스템(100)의 부하가 기 설정된 수치 이상으로 증가되면, 제공된 적어도 하나의 스크립트를 중단시키도록 제어할 수 있다.
일 실시예에서, 데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)으로부터 제공받은 스크립트의 실행 결과에 따라 생성된 로우 데이터(Row Data)에 대하여 기 설정된 소정의 정량적 기준에 따라 데이터를 가공할 수 있다. 예를 들어, 데이터베이스 관리 서버(200)는 로우 데이터를 담을 수 있는 임시 테이블을 생성하고, 스크립트의 실행 결과에 따른 데이터 또는 그에 대한 확장 프로시저에 의한 확장 데이터 중 적어도 하나를 임시 테이블에 저장할 수 있다. 데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)의 오퍼레이팅 시스템(Operation System, OS) 상의 정보를 이용하여 임시 테이블에 저장된 데이터의 적어도 일부를 분리 또는 합병 작업을 수행하여 로우 데이터를 결정할 수 있다.
일 실시예에서, 데이터베이스 관리 서버(200)는 가공된 데이터를 이용하여 평가 항목에 의한 평가 결과를 산출할 수 있다. 예를 들어, 데이터베이스 관리 서버(200)는 각 평가 항목 별로 데이터베이스 시스템(100)에 설정된 기준 데이터에 대한 가공된 데이터를 비교하여 평가하고, 비교 평가한 결과를 정량적 점수 데이터로서 변환 산출함으로써 평가 결과를 산출할 수 있다.
일 실시예에서, 데이터베이스 관리 서버(200)는 적어도 하나의 평가 결과를 포함하는 진단 보고서를 생성할 수있다. 예를 들어, 데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)에 대하여 기 생성되어 저장된 진단 보고서에 대한 히스토리를 확인하고, 기 생성되어 저장된 진단 보고서를 현재 생성된 진단 보고서와 비교하여 제공할 수 있다.
도 4는 본 발명에 따른 데이터베이스 관리 방법의 다른 일 실시예를 설명하기 위한 순서도이다. 도 4에 도시된 다른 일 실시예는 데이터베이스 시스템(100)의 상태에 따라 다르게 스크립트를 조정하여 보다 안정적으로 데이터베이스를 관리할 수 있는 방법에 관한 것이다.
도 4를 참조하여 데이터베이스 관리 방법의 다른 일 실시예에 대하여 더 상세히 설명하면, 데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공할 수 있다(단계 S310).
데이터베이스 관리 서버(200)는 진단을 수행하기 위한 적어도 하나의 스크립트를 생성하여 진단 항목과 연관할 수 있다(단계 S320).
데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)의 상태를 반영하여 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트를 조정하고, 조정된 적어도 하나의 스크립트를 데이터베이스 시스템(100)에서 실행시켜 진단을 수행할 수 있다.
일 실시예에서, 적어도 하나의 스크립트는 수행 시간을 개별적으로 설정할 수 있으며, 설정된 수행 시간 동안 데이터베이스 시스템(100) 상에서 구동되어 해당 데이터베이스 시스템(100)에 대한 진단 데이터를 생성할 수 있다.
일 실시예에서, 적어도 하나의 스크립트는 데이터베이스 시스템(100)에 대한 시스템 정보를 취득할 수 있는 소정의 쿼리를 포함하고, 데이터베이스 시스템(100)이 기 설정된 부하를 초과하면 자신의 구동을 중지할 수 있다.
일 실시예에서, 진단 항목은 데이터베이스 시스템(100)에 대한 기본 정보, 구성 관리, 장애 관리, 용량 관리, 성능 관리, 가용성 관리 및 보안 관리 중 적어도 하나를 포함할 수 있고, 적어도 하나의 진단 항목은 각각 해당 진단을 위한 적어도 하나의 스크립트와 연관될 수 있다.
단계 S430에 대한 일 실시예에서, 데이터베이스 관리 서버(200)는 상기 조정된 상기 적어도 하나의 스크립트가 데이터베이스 시스템(100)에서 실행되는 동안 데이터베이스 시스템(100)의 시스템 정보를 확인하는 단계; 및
데이터베이스 시스템(100)이 기 설정된 부하를 초과하면, 상기 실행 중인 적어도 하나의 스크립트를 중지하도록 제어하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
단계 S430에 대한 일 실시예에서, 데이터베이스 관리 서버(200)는 데이터베이스 시스템(100)의 상태를 반영하여 적어도 하나의 스크립트에 대한 최대 실행 시간을 설정하고, 적어도 하나의 스크립트들 각각에 대하여 차등적으로 구분될 수 있는 우선 순위를 설정할 수 있다. 여기에서, 우선 순위는 최대 실행 시간보다 우선적으로 고려되도록 설정될 수 있다.
일 실시예에서, 데이터베이스 관리 서버(200)는 적어도 하나의 스크립트의 실행에 따라 생성된 실행 결과를, 해당 데이터베이스 시스템(100)의 기준 데이터와 비교하여 평가 데이터를 산출하고 이를 제공할 수 있다.
도 5 내지 도 12는 본 발명에 따라 제공되는 스크립트의 일 예를 설명하기 위한 참고도들이다.
도 5는 본 발명에서 적용되는 스크립트의 일 실시예를 도시하고 있다. 도시된 바와 같이, 본 발명은 비교적 작은 용량을 가지며 적은 리소스로 수행 가능한 스크립트를 이용하여 데이터베이스 시스템(100)의 상태를 평가할 수 있음을 알 수 있다.
도 6은 로우 데이터를 담을 수 있는 임시 테이블을 생성하기 위한 스크립트의 일 예를 도시하고 있고, 도 7은 카달로그 뷰를 통해 원하는 데이타를 임시 테이블에 넣을 수 있는 스크립트의 일 예를 도시하고 있다. 예를 들어, 도 7에 도시된 스크립트는 현재 MS SQL Server 상에 있는 여러 DB들의 실제 물리 파일의 용량을 계산하여 정리할 수 있다.
도 8은 확장 프로시져를 통해 원하는 데이타를 템프테이블에 넣을 수 있는 스크립트의 일 예를 도시하고 있고, 도 9는 데이터베이스 시스템(100)의 OS 상의 정보를 읽어올 수 있는 소정의 스크립트의 일 예를 도시하고 있다. 도 9에 도시된 예는 해당 오페레이팅 시스템에서 제공하는 API를 이용하여 보다 손쉽게 해당 OS의 정보를 획득할 수 있는 스크립트를 나타내고 있다.
도 10은 도 7 내지 도 8에 따라 취합된 데이터를 합병(merge)하여 최종적으로 사용자에게 보여질 로우 데이터를 완성하는 스크립트를 나타내고 있고, 도 11은 이러한 로우 데이터에 대하여 1차 가공된 로우 데이터를 선택하기 위한 스크립트를 나타내고 있다. 도 12에 도시된 스크립트는 가공된 로우 데이터를 이용하여 정량화된 점수를 산출해낼 수 있는 스크립트를 도시하고 있다.
도 13 내지 도 18은 본 발명에 따라 사용자에게 제공될 수 있는 다양한 리포트들의 예시를 보여주는 참고도들이다.
도 13은 본 발명에 따라 진단할 항목을 제공하고 있는 인터페이스의 일 예를 도시하고 있다. 도 13에서, 구성관리, 장애관리, 용량 관리 등과 같은 다양한 평가 항목이 있고 그에 대한 세부적인 항목들이 존재함을 알 수 있다.
도 14는 특정 데이터베이스 시스템(Diag List1) 에 대한 전체 진단 보드(진단 대시 보드)의 인터페이스의 일 예를 도시하고 있다. 도시된 바와 같이, 특정 시스템에 대한 진단의 이력이 관리되고 있음을 알 수 있다.
도 15는 진단에 의하여 제공되는 요약 레포트의 일 예를 도시하고 있다. 리포트 별로 하나의 객체로서 관리됨을 알 수 있고, 도시된 예에서는 하나의 리포트가 제공되고 있음을 알 수 있다.
도 16에서는 복수의 진단 레포트가 제공되고 있음을 알 수 있다. 또한, 화면 아래 부분에 해당 리포트에 대한 수치화된 평가 정보가 제공되고 있음을 알 수 있다. 이를 통하여 데이터베이스 관리자는 손쉽게 해당 데이터베이스 시스템의 상태를 직관적으로 이해할 수 있다.
도 17은 상세 레포트 화면에 대한 예시를, 도 18은 로우 데이터 및 항목에 대한 정보를 제공하는 예시를 제공하고 있다. 도 17에서, 각 진단 항목에 대한 평가 등급별 그래프, 해당 항목에 대한 설명, 그에 대한 진단 결과(점수)가 제공됨을 알 수 있고, 도 18에서 직접 로우 데이터에 대한 내용 및 그에 대한 평가 정보가 함께 제공되고 있음을 알 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 데이터베이스 시스템
200 : 데이터베이스 관리 서버
210 : 평가 항목 관리부 220 : 스크립트 관리부
230 : 제어부 240 : 평가 데이터 DB
250 : 리포트 관리부

Claims (24)

  1. 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 수행되는 데이터베이스 관리 방법에 있어서,
    (a) 상기 데이터베이스 시스템에서 관리하는 적어도 하나의 데이터베이스에 대한 리스트를 생성하는 단계;
    (b) 상기 리스트 중에서 선택된 적어도 하나의 데이터베이스에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 단계; 및
    (c) 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트-상기 적어도 하나의 스크립트는 상기 데이터베이스 시스템의 상태에 따라 다르게 설정된 실행 시간을 가짐-를 상기 데이터베이스 시스템에 제공하여 진단을 수행하는 단계를 포함하는 데이터베이스 관리 방법.
  2. 제1항에 있어서, 상기 (c) 단계는
    상기 데이터베이스 시스템의 현재 상태를 확인하는 단계; 및
    상기 확인된 현재 상태를 반영하여 상기 적어도 하나의 스트립트의 실행 시간을 설정하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  3. 제2항에 있어서, 상기 (c) 단계는
    상기 실행 시간이 설정된 적어도 하나의 스크립트를 제공하는 단계; 및
    상기 제공된 적어도 하나의 스크립트가 수행 중인 상태에서 상기 데이터베이스 시스템의 부하가 기 설정된 수치 이상으로 증가되면, 상기 제공된 적어도 하나의 스크립트를 중단시키도록 제어하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  4. 제1항에 있어서, 상기 (b) 단계는
    데이터베이스 매니지먼트 시스템(DBMS) 또는 그에 대한 버전 정보를 기초로 표준화된 복수의 진단 스크립트를 생성하는 단계; 및
    상기 복수의 진단 스크립트를 상기 진단 항목별로 구분하여 상기 진단 항목 리스트를 생성하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  5. 제1항에 있어서, 상기 (b) 단계는
    상기 데이터베이스 시스템에 대한 과거의 진단 히스토리를 확인하는 단계; 및
    상기 확인된 진단 히스토리를 이용하여 적어도 하나의 진단 항목에 대한 추천을 포함하여 상기 진단 항목 리스트를 제공하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  6. 제1항에 있어서, 상기 데이터베이스 관리 방법은
    (d) 데이터베이스 시스템으로부터 제공받은 상기 스크립트의 실행 결과에 따라 생성된 로우 데이터(Row Data)에 대하여 기 설정된 소정의 정량적 기준에 따라 데이터를 가공하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  7. 제6항에 있어서, 상기 (d) 단계는
    상기 로우 데이터를 담을 수 있는 임시 테이블을 생성하는 단계;
    상기 스크립트의 실행 결과에 따른 데이터 또는 그에 대한 확장 프로시저에 의한 확장 데이터 중 적어도 하나를 상기 임시 테이블에 저장하는 단계;및
    상기 데이터베이스 시스템의 오퍼레이팅 시스템 상의 정보를 이용하여 상기 임시 테이블에 저장된 데이터의 적어도 일부를 분리 또는 합병 작업을 수행하여 상기 로우 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  8. 제6항에 있어서, 상기 데이터베이스 관리 방법은
    (e) 상기 가공된 데이터를 이용하여 상기 적어도 하나의 진단 항목에 대한 적어도 하나의 평가 결과를 산출하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  9. 제8항에 있어서, 상기 (e) 단계는
    상기 적어도 하나의 진단 항목 별로, 상기 데이터베이스 시스템에 기 설정된 기준 데이터와 상기 가공된 데이터를 비교하여 평가하는 단계; 및
    상기 비교 평가한 결과를 정량적 점수 데이터로서 변환 산출하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  10. 제8항에 있어서, 상기 데이터베이스 관리 방법은
    (f) 상기 적어도 하나의 평가 결과를 포함하는 진단 보고서를 생성하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  11. 제10항에 있어서, 상기 (f) 단계는
    상기 데이터베이스 시스템에 대하여 기 생성되어 저장된 진단 보고서에 대한 히스토리를 확인하는 단계; 및
    상기 기 생성되어 저장된 진단 보고서를 상기 생성된 진단 보고서와 비교하여 제공하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  12. 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 수행되는 데이터베이스 관리 방법에 있어서,
    (a) 상기 데이터베이스 시스템에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 단계;
    (b) 상기 진단을 수행하기 위한 적어도 하나의 스크립트를 생성하여 상기 진단 항목과 연관하는 단계; 및
    (c) 상기 데이터베이스 시스템의 상태를 반영하여 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트를 조정하고, 조정된 상기 적어도 하나의 스크립트를 상기 데이터베이스 시스템에서 실행시켜 진단을 수행하는 단계를 포함하는 데이터베이스 관리 방법.
  13. 제12항에 있어서, 상기 적어도 하나의 스크립트는
    수행 시간을 개별적으로 설정할 수 있으며, 설정된 수행 시간 동안 상기 데이터베이스 시스템 상에서 구동되어 해당 데이터베이스 시스템에 대한 진단 데이터를 생성하는 것을 특징으로 하는 데이터베이스 관리 방법.
  14. 제13항에 있어서, 상기 적어도 하나의 스크립트는
    상기 데이터베이스 시스템에 대한 시스템 정보를 취득할 수 있는 소정의 쿼리를 포함하고, 상기 데이터베이스 시스템에서의 상기 쿼리에 대한 응답 부하가 기 설정된 부하를 초과하면, 해당 스크립트의 구동을 중지하는 것을 특징으로 하는 데이터베이스 관리 방법.
  15. 제12항에 있어서, 상기 진단 항목은
    상기 데이터베이스 시스템에 대한 기본 정보, 구성 관리, 장애 관리, 용량 관리, 성능 관리, 가용성 관리 및 보안 관리 중 적어도 하나를 포함하고,
    상기 적어도 하나의 진단 항목은 각각 해당 진단을 위한 적어도 하나의 스크립트와 연관되는 것을 특징으로 하는 데이터베이스 관리 방법.
  16. 제12항에 있어서, 상기 (c) 단계는
    상기 조정된 상기 적어도 하나의 스크립트가 상기 데이터베이스 시스템에서 실행되는 동안 상기 데이터베이스 시스템의 시스템 정보를 확인하는 단계; 및
    상기 데이터베이스 시스템이 기 설정된 부하를 초과하면, 상기 실행 중인 적어도 하나의 스크립트를 중지하도록 제어하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  17. 제12항에 있어서, 상기 (c) 단계는
    상기 데이터베이스 시스템의 상태를 반영하여 상기 적어도 하나의 스크립트에 대한 최대 실행 시간을 설정하는 단계; 및
    상기 적어도 하나의 스크립트들 각각에 대하여 차등적으로 구분될 수 있는 우선 순위-상기 우선 순위는 상기 최대 실행 시간보다 우선적으로 고려됨-를 설정하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  18. 제12항에 있어서, 상기 데이터베이스 관리 방법은
    (d) 상기 (c) 단계에 의하여 생성된 상기 적어도 하나의 스크립트의 실행 결과를 해당 데이터베이스 시스템의 기준 데이터와 비교하여 산출된 평가 데이터를 제공하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  19. 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에 있어서,
    상기 데이터베이스 시스템에 대하여 수행 가능한 복수의 진단 항목들을 관리하는 평가 항목 관리부;
    상기 복수의 진단 항목과 각각 연관되어 소정의 진단을 수행하기 위한 복수의 스크립트들을 관리하는 스크립트 관리부; 및
    상기 복수의 진단 항목들 중에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트들을 선택하고, 선택된 적어도 하나의 스크립트들에 대하여 수행 제한 요건을 설정하여 상기 데이터베이스 시스템에 제공하는 제어부를 포함하는 데이터베이스 관리 서버.
  20. 제19항에 있어서, 상기 제어부는
    상기 데이터베이스 시스템의 상태에 따라 상기 적어도 하나의 스크립트들 각각에 최대 수행 시간을 설정하여 제공하는 것을 특징으로 하는 데이터베이스 관리 서버.
  21. 제19항에 있어서, 상기 제어부는
    상기 적어도 하나의 스트립트에 의하여 발생하는 데이터베이스 시스템의 부하를 확인하고, 만일 기 서정된 부하를 초과하면 해당 적어도 하나의 스크립트를 중지하도록 제어하는 것을 특징으로 하는 데이터베이스 관리 서버.
  22. 제19항에 있어서, 상기 데이터베이스 관리 서버는
    상기 적어도 하나의 스크립트의 실행 결과에 따라 생성된 로우 데이터(Row Data)를 기 설정된 소정의 정량적 기준에 따라 가공하고, 가공된 데이터를 상기 데이터베이스 시스템에 대하여 기 설정된 기준 데이터와 비교하여 평가하는 리포트 관리부를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 서버.
  23. 데이터베이스 관리 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    상기 프로그램은 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 구동될 수 있는 프로그램으로서,
    (a) 상기 데이터베이스 시스템에서 관리하는 적어도 하나의 데이터베이스에 대한 리스트를 생성하는 기능;
    (b) 상기 리스트 중에서 선택된 적어도 하나의 데이터베이스에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 기능; 및
    (c) 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트-상기 적어도 하나의 스크립트는 상기 데이터베이스 시스템의 상태에 따라 다르게 설정된 실행 시간을 가짐-를 상기 데이터베이스 시스템에 제공하여 진단을 수행하는 기능을 포함하는 것을 특징으로 하는 기록 매체.
  24. 데이터베이스 관리 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    상기 프로그램은 네트워크를 통하여 소정의 데이터베이스 시스템에 접속할 수 있고, 접속한 데이터베이스 시스템에 대한 분석을 제공할 수 있는 데이터베이스 관리 서버에서 구동될 수 있는 프로그램으로서,
    (a) 상기 데이터베이스 시스템에 대하여 수행 가능한 복수의 진단 항목을 포함하는 진단 항목 리스트를 제공하는 기능;
    (b) 상기 진단을 수행하기 위한 적어도 하나의 스크립트를 생성하여 상기 진단 항목과 연관하는 기능; 및
    (c) 상기 데이터베이스 시스템의 상태를 반영하여 상기 진단 항목 리스트에서 선택된 적어도 하나의 진단 항목과 연관된 적어도 하나의 스크립트를 조정하고, 조정된 상기 적어도 하나의 스크립트를 상기 데이터베이스 시스템에서 실행시켜 진단을 수행하는 기능을 포함하는 것을 특징으로 하는 기록 매체.
KR1020120029530A 2012-03-22 2012-03-22 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버 KR101331452B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120029530A KR101331452B1 (ko) 2012-03-22 2012-03-22 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버
US13/831,253 US20130304695A1 (en) 2012-03-22 2013-03-14 Method for providing database management and the database management server thereof
CN201310091604.7A CN103324656B (zh) 2012-03-22 2013-03-21 数据库管理方法及其数据库管理服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120029530A KR101331452B1 (ko) 2012-03-22 2012-03-22 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버

Publications (2)

Publication Number Publication Date
KR20130107612A true KR20130107612A (ko) 2013-10-02
KR101331452B1 KR101331452B1 (ko) 2013-11-21

Family

ID=49193403

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120029530A KR101331452B1 (ko) 2012-03-22 2012-03-22 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버

Country Status (3)

Country Link
US (1) US20130304695A1 (ko)
KR (1) KR101331452B1 (ko)
CN (1) CN103324656B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101505858B1 (ko) * 2014-04-10 2015-03-26 (주)비아이매트릭스 대용량 데이터를 용이하게 분석하기 위하여 테이블 관계 및 참조의 템플릿을 검색하여 제공하는 템플릿 기반 온라인 분석보고서 작성 지원 시스템

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10343943B2 (en) * 2014-04-24 2019-07-09 Corning Incorporated Glass manufacturing apparatus and methods
US9900211B1 (en) * 2014-10-01 2018-02-20 Crimson Corporation Systems and methods for network management
CN106250381B (zh) 2015-06-04 2020-11-17 微软技术许可有限责任公司 用于确定表格式存储的列布局的系统和方法
CN107291672B (zh) * 2016-03-31 2020-11-20 阿里巴巴集团控股有限公司 数据表的处理方法和装置
CN111414351A (zh) * 2020-03-20 2020-07-14 中国建设银行股份有限公司 一种MySQL数据库的性能诊断方法及装置
CN114664398A (zh) * 2022-02-28 2022-06-24 上海深至信息科技有限公司 一种医疗数据库系统
CN118093252A (zh) * 2024-04-28 2024-05-28 浪潮云信息技术股份公司 一种云平台的数据库诊断方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3452308B2 (ja) * 1999-06-04 2003-09-29 株式会社日立製作所 データ分析装置
US20040117387A1 (en) * 2000-02-25 2004-06-17 Vincent Civetta Database sizing and diagnostic utility
JP4393762B2 (ja) * 2002-12-19 2010-01-06 株式会社日立製作所 データベース処理方法及び装置並びにその処理プログラム
KR20040027270A (ko) * 2003-03-22 2004-04-01 (주)오알솔루션즈코리아 데이터베이스 시스템 모니터링 방법
JP4301849B2 (ja) * 2003-03-31 2009-07-22 株式会社日立製作所 情報処理方法及びその実施システム並びにその処理プログラム並びにディザスタリカバリ方法およびシステム並びにその処理を実施する記憶装置およびその制御処理方法
US7673291B2 (en) * 2003-09-05 2010-03-02 Oracle International Corporation Automatic database diagnostic monitor architecture
JP2005208953A (ja) * 2004-01-23 2005-08-04 Hitachi Ltd データベース再編成時期予測装置およびその方法
JP4476655B2 (ja) * 2004-03-18 2010-06-09 大日本印刷株式会社 データベース診断システム
JP2005267194A (ja) * 2004-03-18 2005-09-29 Dainippon Printing Co Ltd データベース診断レポート管理システム
US7203624B2 (en) * 2004-11-23 2007-04-10 Dba Infopower, Inc. Real-time database performance and availability change root cause analysis method and system
US7809694B2 (en) * 2005-03-15 2010-10-05 International Business Machines Corporation Analysis of performance data from a relational database system for applications using stored procedures or SQL
WO2007036932A2 (en) * 2005-09-27 2007-04-05 Zetapoint Ltd. Data table management system and methods useful therefor
US7668879B2 (en) * 2005-11-30 2010-02-23 Oracle International Corporation Database system configured for automatic failover with no data loss
CN100401299C (zh) * 2006-01-10 2008-07-09 英业达股份有限公司 数据处理系统及方法
US7685092B2 (en) * 2006-01-26 2010-03-23 International Business Machines Corporation Automatic problem-oriented transformation of database performance data
US8555288B2 (en) * 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency
US7904756B2 (en) * 2007-10-19 2011-03-08 Oracle International Corporation Repair planning engine for data corruptions
JP5239075B2 (ja) * 2008-02-25 2013-07-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のサービスステップを含むサービスプロセスを管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
CN101430688A (zh) * 2008-11-18 2009-05-13 中国移动通信集团福建有限公司 一种数据库自动化探测系统及其运行方法
US9116802B2 (en) * 2010-02-26 2015-08-25 Red Hat, Inc. Diagnostic notification via package update manager
US9256642B2 (en) * 2010-06-30 2016-02-09 Oracle International Corporation Techniques for recommending parallel execution of SQL statements
JP2012043133A (ja) * 2010-08-18 2012-03-01 Renesas Electronics Corp 評価システム、評価方法及び評価プログラム
US9747334B2 (en) * 2011-09-30 2017-08-29 Teradata Us, Inc. Managing excess capacity of database systems in a capacity controlled computing environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101505858B1 (ko) * 2014-04-10 2015-03-26 (주)비아이매트릭스 대용량 데이터를 용이하게 분석하기 위하여 테이블 관계 및 참조의 템플릿을 검색하여 제공하는 템플릿 기반 온라인 분석보고서 작성 지원 시스템

Also Published As

Publication number Publication date
KR101331452B1 (ko) 2013-11-21
CN103324656A (zh) 2013-09-25
CN103324656B (zh) 2018-09-25
US20130304695A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
KR101331452B1 (ko) 데이터베이스 관리 방법 및 그를 위한 데이터베이스 관리 서버
US10158670B1 (en) Automatic privilege determination
US8881113B2 (en) Contextual exception management in multi-tenant systems
US10476878B2 (en) Access permissions management system and method
US20120167095A1 (en) Utilizing user-defined workflow policies to automate changes made to composite workflows
US20120116984A1 (en) Automated evaluation of compliance data from heterogeneous it systems
US8839247B2 (en) Managing requests to initiate tasks within an organization
EP1674960A1 (en) Reverse engineering access control
US20140149568A1 (en) Monitoring alerts in a computer landscape environment
CN109543891B (zh) 容量预测模型的建立方法、设备及计算机可读存储介质
US9292280B2 (en) Systems and methods for multi-tiered format registration for applications
US10467590B2 (en) Business process optimization and problem resolution
US20120254416A1 (en) Mainframe Event Correlation
US20170149800A1 (en) System and method for information security management based on application level log analysis
CN113872991B (zh) 一种云平台接口权限控制方法、装置、设备及介质
US11769067B2 (en) Topology-based migration assessment
US20180331924A1 (en) System monitoring device
WO2014054230A1 (ja) 情報システム構築装置、情報システム構築方法および記憶媒体
US7490095B2 (en) Scope and distribution of knowledge in an autonomic computing system
US8090994B2 (en) System, method, and computer readable media for identifying a log file record in a log file
US20110010754A1 (en) Access control system, access control method, and recording medium
CN111435327B (zh) 一种日志记录的处理方法、装置及系统
US10255128B2 (en) Root cause candidate determination in multiple process systems
KR101415528B1 (ko) 분산된 시스템을 위한 데이터 오류 처리 장치 및 방법
CN116881880B (zh) 时空数据管理系统及时空数据服务化资源协同调度方法

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
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee