데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

DB리부팅과 프로세스 Kill 기술이면 충분한 DBA이다!

데이터 이야기
작성자
dataonair
작성일
2012-04-16 00:00
조회
5500


4월 12일(목)에 여의도 꽃을 보러 갔는데 꽃망울 만 있고 차가운 바람에 꽃들이 다 숨어
있어서,,, 찬 바람만 즐기고 왔는데요, 불과 2일 후엔 4월 14일(토) 꽃들이 답답안 곳을
삐지고 나와서 활짝 피었더군요,, 참, 짧은 시간동안 이렇게 만개한 꽃을 보면서 자연의
위치는항상 법칙이있으면서일정한 규칙을 제공하고 있구나라는 생각을 했습니다.

이번 컬럼에서 데이터베이스 담당장에게 모니터링과 문제에 대한 분석관점에 대해서
이야기를 해 보겠습니다.

시스템을 개발할 때나, 시스템을 운영할 때나 데이터베이스 담당자는 항상 주목을 많이
받게 되지요. 주목한다는 것은 어떤 문제가 있을 때 데이터베이스 담당자 DBA, DA에게
기술적인 요청을 많이 한다는 것을 의미합니다.

특히 비즈니스가 가동중인 Production의 운영상태에서는 어떤 현상이 있을 대 DBA의 중요성
은 거의 절대적인 상태가 됩니다. 그만큼 문제에 대한 사전감지, 그리고 문제에 대한 조치 및
해석(분석)이 중요한 의미를 가지게 됩니다.

시스템운영 품질이 낮은 조직일 수록 어떤 현상이 발생이 될 때 사전에 감지가 안되고 조치
중심으로 문제 f/u이 진행이 되고, 또 장애와 문제가 있을 경우에 쉬운방법 즉, 데이터베이스를
리부팅을 한다거나, 프로세스를 Kill하는 단편적인 방법으로 장애과 문제를 해결해 버립니다.

이렇게 하면 장애가 발생한 상황은 급한데로 넘어가지만, 동일한 문제가 이후에 또 발생하는
경우가 많고, 다른 문제로 파급이 되어 나타나는 경우도 많이 있게 되지요. 시간이 지나도
시스템이 안정화 상태로 가지 않고 지속적 장애와 문제를 가진 문제투성이 시스템이 되어
버리고 말지요,,

DBA는 계속 장애와 문제를 처리해 주는 고마운 사람인 것 같지만, 사실은 문제의 근본원인을
제거하는 노력을 하지 않고, 또한 사전에 장애와 문제가 나타나는 것을 미리 감지하는 노력을
하지 않은 문제점을 가지고 있는 경우에 해당합니다.

장애와 문제가 간단하든 복잡하든 데이터베이스는 항상 최상의 상태로 서비스를 해야 하므로
DBA에게 가장 중요한 미션은 두 가지가 있다고 할 수 있습니다.

첫번째는 해당 장애와 문제가 적절하게 사전에 식별이 되는가 에 대한 부분입니다.
일단 시스템이 사용자가 이용하지 못할 상태가 되기 이전에 사전에 장애/문제가 감지가 되어
적절하게 알람이 오게 하는 것이 중요하다는 의미입니다.
또한 장애가 발생이 되더라도 최단기간안에 운영하는 DBA가 해당 장애가 전달이 되어 조치될

수 있도록 센싱(Sensing)하는 체계가 절대적으로 중요합니다.

보통 이 부분에 대한 중요성을 많은 엔지니어들이 간과 하고 있는데요,,, 사실 업무관점에서 가장
중요한 부분은 이 부분입니다. 장애는 없으면 좋지만, 언제든 발생할 수 밖에 없는 속성을 가지고
있습니다. 따라서, 어떤 유형의 장애가 발생하든 빠른 시간안에 장애가 자동으로 감지가 되어 그것
을 해결할 수 있는 체계로 연결이 되어 있는 것 이것은 업무서비스가 얼마나 빨리 재계되는지에
대한 문제이므로 아주 중요한 문제이지요,,,

따라서, 시스템운영중에 발생하는 장애와 문제에 대해서 얼마나 빨리, 사전에 그 장애와 문제를 자동
식별 가능한지를 항상 따져보고 설계하여 그것을 모니터링 체계에 반영해야 합니다.

우리는 그것을 좀 더 어려운 용어로 Monitoring Rule Repository구현 이라고 하지요,,
어떤 상황에 대한 지표정의 ==> 지표등록 ==> 알람(SMS) 및 메일 ==> 조치를 가능하게 하는
Rule DB를 구현해야 합니다.




두번째는 장애와 문제에 대해서 분석하는 측면입니다.
그냥 장애가 발생하면 데이터베이스 리부팅으로 해결해 버리고 느린 세션은 세션을 Kill하여 해결해
버리기만 하면, 그 이후에 또 동일한 상황에서 장애와 문제의 반복이 계속 발생이 됩니다.

해당 장애가 왜 발생했는지 문제의 근본원인을 분석하는 노력을 간과해서는 안됩니다.
이 경우는 많은 사례가 전문가에 기반하지 않고 한 사람이 응용과 데이터베이스 등을 모두 담당하면
서 시스템을 운영할 때 많이 나타나는 현상이기도 합니다.

장애의 근본원인(문제)을 분석하여 그것이 재발하지 않도록 시스템에 반영하는 노력을 충분하게 할
때 당장은 빛이 나는 일이 아닌것 같지만, 그것이 시스템을 건강하게 하고 또한 그것을 운영하는
엔지니어에게 기술력의 강화라는 많은 가치를 안겨 주게 됩니다.



장애와 문제는 DBA에게 괴로운 주제인것 같지만, 반대로 생각하면 장애와 문제가 있기 때문에 DBA가
있다라고 생각하고 이것을 효율적으로 핸들링하는 전문성 높은 DBA가 되어야 하겠습니다.