2009년 7월 20일 월요일

개발자별로 DBMS를 설치해서 사용해야 하는 이유

지난주에 현재 프로젝트에서 사용하고 있는 팀 공용 개발기 oracle 10g의 캐릭터셋을 바꾸다가 DBMS를 날려먹었습니다. ( utf8이라고 적지 않고 utf-8로 적은게 화근인 듯)

분명히 전에 oracle 10g 설치한 사람 누구냐고 물어봤을때는 아무도 대답을 해주지 않았었는데 절묘하게 개발기에서 프로젝트 진행하던 분들이 아무도 없을때였던 건지... 아무튼 제가 진행하는 프로젝트 포함해서 3개의 프로젝트가 날려먹은 DBMS를 쓰고 있더군요.

하나는 상용기가 별도로 있어서 상용기 DB를 import 시켜 복구 가능했고, 제가 하는 프로젝트는 저희쪽건 스키마를 잘 빼놔서 복구에 문제가 없었는데 외주업체가 작성해 둔 stored procedure를 해당 개발자가 하나도 백업을 해두지 않아서 날려먹었습니다.
그나마 다행인 건 그 일주일 전에 원래 사용하던 개발장비의 oracle이 좀 느려서(그리고 9i라서) 다른 장비의 10g로 옮겼던터라.. 일주일 전의 stored procedure는 남아 있었다는 것 -_-;

마지막 프로젝트는 아직 상용은 아니고 개발중인 프로젝트인데 "전혀" 백업이 없는 상태였습니다. 스크립트 백업도 없고 DB백업도 없고... DAO객체로부터 테이블 생성해야 할 판이네요. 개인적으로 제일 미안한 케이스 T.T

캐릭터셋 잘못 지정했다고 오라클 DBMS가 startup되지 않음에 놀라고, 개발 진행하는 사람들이 기본적인 테이블 스키마 백업조차 주기적으로 하지 않고 개발을 진행하는 것에 또 한번 놀랐습니다. 물론 공용 개발기 DB날린건 전적으로 제 잘못이지만 -_-;;;;;;

단위 테스트 편의성 및 기타 등등을 제외하고라도 개발자 개개인이 SVN을 이용하게 되면 혹시라도 개발기 소스가 죄다 날라가고 SCM이 날라가더라도 개발자 수만큼의 백업이 존재하게 되니 안심입니다.
오라클 같은 DBMS를 설치하기가 무거워서 eclipse + wtp + svn으로만 개발자별 환경을 세팅하고 dbms는 여럿이 공통으로 쓰는 경우가 많은데, dbms 역시 가능하면 개발자 개개인별로 세팅해서 쓰는게 좋습니다. 이 역시 개발자 수만큼 데이터베이스 백업이 생긴다는 장점이 있겠군요. (저도 맥북프로에 Oracle 10g설치해서 쓰고 있습니다)

아무튼 이번 사건으로 또한번 되새긴 교훈
>> 공용 DBMS에다가 뻘짓하기 전에는 반드시 백업을 해두자

한참 서비스 운영할때는 너무나도 당연한 진리였는데 요즘 약간 느슨해졌던듯. ( 캐릭터셋 바꾼다고 DBMS가 날라갈줄은 꿈에도 몰랐다고 다시한번 변명을 해봅니다. BGM은 슈퍼주니어의 쏘리쏘리~ )



댓글 4개:

  1. 신기하긴 하네요. utf8을 utf-8로 썼다고 DB가 날라간다라... 잘못된 캐릭터셋이면 경고로 알려줄 거 같은데. 흐음~

    답글삭제
  2. 흠... 그랬던 것이었쿠나 =)

    그런데 개발쪽엔 데이터는 그렇더라도 테이블 스키마 백업도 없던건 ㅎㅎ

    에구구 허리야

    답글삭제
  3. @오스카 - 2009/07/20 21:59
    alter ... 로 시작하는 명령으로 바꾸면 안전한 것 같던데 하필이면 제가 검색해서 찾은 게 update ... 를 이용하는 것이었는데.. 이렇게 하면 위험한 방법이더라구요. -_-;



    날리고 나서 보니 "캐릭터셋을 바꿀땐 반드시 백업을 하세요" 라는 문구들이 -_-;;

    답글삭제
  4. @냐모 - 2009/07/20 22:18
    음? 낼도 상암가요? 지금 비오는데 내일도 장난아니게 올지도 -_-;;

    답글삭제

가장 많이 본 글