Background Image
제품 여행
2009.04.16 03:59

막무가내 DBA의 DISK 장애 대처

조회 수 54783 추천 수 0 댓글 9
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

2009.04.05.
드디어 올 것이 오고야 말았다.emoticon
DB장애도 아닌, application 장애도 아닌..
천재지변과 같은 hardward 장애가 오고 만 것이다.
기본적인 서비스 구성으로 replication을 통해 master - slave 로 구축해놓은 system이었다.



그런데 replication 을 구성해놓은 master 서버가.. 돌아가셨다.
정확히 말하면 master DB가 아니라 master DB의 데이터를 가지고있는 disk가.. 사라지셨다.
음? 출장가셨나? ㅡ,.ㅡ

컴퓨터에 C: D: 드라이브가 있고, 내 데이터는 D: 에 들어가있는데
어느날 갑자기 D: 윈도우 탐색기에서 사라졌을떄의 기분.. 느껴보셨쎄요?
안겪어봤으면 말을하지마세요 -_-

각설하고.
어떻게 빨리 서비스를 정상 작동시킬 수 있을까?
이렇게 문제가 발생했을 때 서비스를 정상적으로 돌리는것은 결국 master -> slave로 절체하는 시간 싸움이다.

CIBRID는 기본적으로 Broker - DBserver 구조로 되어있다.
다시 말해서
client(JDBC) -> Broker -> DBServer로 request가 전달된다.
client는 connection url이라는 string에 brokerIP, databasename을 이용하여 broker로 연결한다.
broker라는 놈은 databases.txt라는 파일에 난 어느host의 어느 database로 연결할 수있다고 설정할 수있다.



이제 요 broker-server라는.. 하등 쓸모없게 보였던놈이 진가를 발휘할 때가 온 것 같다.
(사실 broker는 생각보다 많은 일을 하지만.. 일반 사용자 혹은 개발자들은 broker가 왜 필요하냐고 묻는 사람이 태반이다)masterDB의 디스크가 출장가셨다. 연락 두절이다. 근데 slaveDB는 한국에 계신다.

음. 다른 DB같으면 master - slave로 절체하려면 어떻게 할까?

박모팀장님께 여쭈어봤다.
master 죽으면, 개발자가 application에서 configuration file의 connection url 수정해서 배포해야한단다.

CUBRID는?
이 broker라는 놈이 있는 서버의 databases.txt에서의 DB가 존재하는 host명을 slave server로 수정해주고 broker를 restart하면 끝이다.
그럼 아래 그림처럼 되겠지?




물론, 어떤 상황에서건 restart는 해야한다.
그러나 application의 connection url을 바꾸건 뭘 바꾸건
web server 대수만큼 수정해야한다. (각 config 파일은 각 web server에 존재하므로)
뭐. 일괄 수정해서 배포해주는 시스템이 있어서 상관없지않냐? 라고 할지도 모르겠다. 쿨럭.

그런데 생각해보면, 어차피 장애가 나면 DBA는 서버에 들어와서 장애 처리를 해야한다.
그때 파일 하나 수정 띡 해주면 바로 정상 서비스이다.
개발자 입장에서 볼땐 손하나 까딱 안하고 master에서 slave로 절체되어주신다.

그리고 master의 복구가 완료되어 돌아와야할 땐?
그때도 손하나 까딱 안해주셔도 벌써 다 처리가 되어있다지...?
아니면 뭐.. slave 를 그냥 master로 두고 master가 있던 서버에 slave를 구축해도 되고.
그건 DBA 마음대로 정하면 될 일이다.

장애 감지 후 처리하는데 소요된 시간은,
databases.txt 파일 수정 후 broker restart하는데 통틀어 한 10초 걸렸다.

앞으로 요 broker 라는 놈, 좀더 예뻐해줘야겠다.
어쩌면 CUBRID는 나중에 백조가 될 운명을 가진 미운오리새끼가 아닐까?
시간이 지나면, 다른 DBMS와 다르다고 놀림받고 괄시받았던 것들이
CUBRID만의 특징과 장점이 되어 세계에 이름을 떨칠지도 모르는 일이다.

요녀석. 빨리빨리 자라거라 ^^

이미지 출처 : 네이버 포토앨범
http://imagebingo.naver.com/album/image_view.htm?uid=dadayoko&bno=26185&nid=4178

  • ?
    불량감자 2009.04.16 13:30
    오홋.. CUBRID Replication이 어떤 형태로 운영이 되지는 이리 이해가 잘되도록 써주시다니.. ^^
    머리에 쏙 들어왔습니다. 감사. 감사..
  • ?
    일동차렷? 2009.04.16 18:48
    정말 쉽게 쓰셨군요. 난...Q&A란 제목으로 올라와서 질문이 뭔지 한참 찾았군요. 사용 팁이군요!! 너무 잘 썼어요~ 짝짝짝
  • ?
    brightest 2009.04.16 21:24
    머리 속에 쏙쏙 들어오는, 재미있고 유익한 글이네요~.
    웃으면서 읽다보니 어느새 내용이 파악되는~^^
  • ?
    정병주 2009.04.16 21:47
    정말 이해하기 쉽게 정리를 해 주셨네요...... ^^ 참, 프란체스카님은 "꽃보다 여자, F4? E4?"의 E4님입니다. :)
  • ?
    멜라니 2009.04.16 21:52
    이렇게 좋은 반응이..^^; 앞으로도 좋은 글 기대할께요~
  • ?
    웁쓰 2009.04.16 23:04
    브로커가 replication구조로 있을때는 상당히 좋군요.
    결국 AP의 리스타트 없이 브로커 리스타트로만 상황 종료인거 맞게 이해 한건가요?
    제대로 이해 했다면 분명히 장점이라고 해야 겠네요. : )
  • ?
    CUBRID_DEV 2009.04.17 01:51
    네..이해하신 것이 맞아요~~ 분명 장점 맞는데..cubrid 백조 될 수 있을까요?? 아직은 꽥꽥꽥꽥~~
  • ?
    zest 2009.04.22 01:32 SECRET

    "비밀글입니다."

  • ?
    admin 2009.04.24 03:59
    고가용성을 위해서는 Broker Server도 HA (Active-Standby)로 구성하면 됩니다. 결국, 가용성을 더 높이기 위해서는 비용을 투입해야 하겠죠. 일종의 trade-off...... ^^

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
44 오픈소스 이야기 큐브리드 “더 로드(The Road)” – 2009년 발자취 file 정병주 2010.01.28 31487 0
43 제품 여행 기획연재[4] CUBRID 제품 분석 – CSQL 인터프리터 file cubebridge 2010.01.25 39076 0
42 나머지... 연말에도 기술지원은 쉬지 않는다.~!! file janus 2010.01.21 39098 0
41 여러분과 함께한 큐브리드 돌잔치! 1 file 멜라니 2009.12.30 45318 0
40 제품 여행 기획연재[3] CUBRID 제품 분석 – CUBRID제품 구조 file cubebridge 2009.12.30 37230 0
39 나머지... 고객지원 중 얼음이 되다. file janus 2009.12.08 39386 0
38 제품 여행 기획연재[2] CUBRID 제품 분석 – CUBRID 지원 툴들 file cubebridge 2009.11.27 39920 0
37 큐브리드 세계화의 첫걸음 file 멜라니 2009.11.24 34098 0
36 제1회 공개소프트웨어 Day 개최 1 file 장현석 2009.11.13 28867 0
35 오픈소스 이야기 도쿄 한중일 OSS 활성화 포럼 참관기 file 정병주 2009.10.29 46623 0
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 Next
/ 16

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales