DBA 란
Database Administration 해석하면 데이터베이스 관리 입니다.
데이터베이스에 관련된 모든 관리를 하는 직업군을 의미한다고 보시면 좋습니다.
DBA 가 하는일
그럼 모든 관리에는 어떤것들이 속할까요?
[개발단계] 에서는 아래와 같은 일을 합니다.
1. 기획안 분석 후 데이터베이스 관계모델 설계
2. 테이블 생성 및 프로시져 작성
3. 인덱스, 정규화, 비정규화 등의 튜닝작업
[운영단계] 에서는 아래와 같은 일을 합니다.
1. 데이터베이스 관리
2. 백업
그렇다면 여기에서 데이터베이스 관리에 한번더 궁금증이 들어갑니다. 어떤 관리지?
먼저 말하면 데이터베이스가 갑작스런 사태로 인해 죽는사태를 사전에 예방하는 역할을 말합니다.
1. 디스크관리 : 로그를 작성하던 중 디스크 풀로 인해 데이터베이스 장애가 발생할 수 있습니다.
2. CPU 사용률 : CPU 부하가 높은경우 서버가 내려갈 수 있습니다.
3. 메모리 사용률 : 메모리를 더이상 사용할 수 없는 경우 oom-killer 에 의해 프로세스가 강제 종료될 수 있습니다.
4. 데이터베이스 프로세스 상태확인 : 프로세스가 정상적인지 확인합니다.
그리고 백업. 백업은 생명이기 때문에 백업 정책을 잘 세워야 합니다.
고객의 데이터는 회사의 자산이며 해당 데이터를 잃을 경우 회사는 문을 닫아야 하니까요.
개발을 시작하고 테스트를 진행하다보면 처음 기획안에서 수정되는 경우가 많습니다.
예를 들면 컬럼이 추가되거나, 타입에 맞지않는 데이터가 들어오는 경우를 예로 들 수 있겠죠.
그렇게 되는 경우 관련된 쿼리들을 수정해야 하고, 수정된 걸 가지고 다시 모델링을 하는 경우도 생깁니다.
운영에 들어가게 되고나서는
서버 상태와 데이터베이스를 모니터링 하면서 문제가 발생할 것같은 부분을 점검시간에 수정합니다.
crontab 에 등록된 스케줄링 스크립트를 확인하여, 데이터베이스가 정상적인지 백업은 잘되었는지 등등을 확인합니다.
DBA 가 하는일의 개인적인 생각
위에처럼 DBA 는 데이터베이스를 관리하는 직군입니다.
데이터베이스를 관리하기 위해서 데이터베이스와 관련된 지식만 알면 안됩니다.
스크립트를 작성할 줄을 알아야 하며,
서버 자원에 대한 모니터링 및 튜닝도 할줄 알아야 하며,
네트워크에 대한 지식도 가지고 있어야 하며,
심지어 요즘에는 클라우드에 대한 지식도 가지고 있어야 합니다.
이와 같은 지식을 전반적으로 가지고 있었을 때, 비로소 DBA 직군에서 일하고 있다고 말할 수 있다 생각합니다.
DBA 의 미래
소규모회사같은 경우는 개발자 분들이 개발하면서 데이터베이스까지 관리하는 경우가 많지만,
회사의 규모가 점점 커질수록 데이터베이스를 전문적으로 관리하는 DBA 팀을 구성합니다.
고객의 데이터를 되살리지 못하는 경우 해당 회사는 문을 닫아야 하니까요.
'Database > DBA 의 개인생각' 카테고리의 다른 글
[DBA] 트리거가 성능에 미치는 악영향에 대해서 (0) | 2019.08.07 |
---|---|
[DBA] 게시판 페이징 처리하는 방법 (Scan VS Seek) (0) | 2019.05.02 |
[DBA] COUNT(*) 안쓰고 테이블 총 레코드 조회하는 법 생각해보기 (0) | 2019.02.12 |
[DBA] 데이터타입 CHAR 와 VARCHAR 중 어느것을 써야할까? (1) | 2018.11.08 |
[DBA] WHERE 1 = 1 은 써야할까 말아야할까 (3) | 2018.09.18 |