ROqynQX3gVz0_QcF16svVOdb_B0bY6IcdGWU77GNOT8,

 저희 회사에 Tibero TAC(Tibero Active Cluster)가 도입되었다는건, 이전의 제 글들을 보신 분이라면 아실겁니다. 국산 DBMS 시장에 여러가지 제품이 출시되어 있지만, Oracle RAC처럼 Shared disk 방식으로 구현한 Active-Active 형태의 Cluster 제품은 Tibero TAC가 처음이죠.

 현재 TAC를 사용중인데 편한 점부터 얘기를 해볼까합니다.

 우선 서비스 중단 없이 OS, DBMS 등의 패치 및 점검 작업 등을 할 수 있다는 점이 아주 편하다고 생각합니다. 각 노드를 번갈아가면서 재부팅하는 작업을 해보니 꽤 편하더군요. ^^  그리고 한쪽 노드에 부하가 몰려있을때라도 좀 한가한 나머지 노드에 접속하여 Data 조회, 조작 작업을 할 수 있는 가용성. 확실히 Cluster의 장점이 아닐까요?

 이제, TAC 제품의 단점을 얘기해볼까 합니다.

첫째, 원인을 정확하게 알 수 없는 성능 저하 현상 발생.
Storage와 OS 등의 제품들과 엮여서 딱히 어느 곳이 문제인지 알 수 없는 성능 저하 현상이 발생합니다. 그것도 자주!
벌써 몇달째 고생중인 문제인데요. 현재 원인 규명 작업을 진행중인데 쉽게 해결될것 같지가 않습니다.

둘째, 이기종 DBMS와의 data 공유가 어렵다. DBMS 자체가 이기종 DBMS와의 data 공유가 어렵다는건 티베로 만의 문제는 아니긴 한데, Data 공유를 위한 솔루션(ETL, DB복제툴 등)에서 티베로를 거의 지원하지 않는다는게 문제입니다. TmaxData에서 나온 제품만 지원하고 있죠. DB복제툴은 Oracle이외의 DBMS는 제대로 지원하지 않고, ETL tool의 경우에는 다양한 DB를 지원하지만 실시간 동기화(2, 3분 이내)에는 적절하지 않더군요.
Oracle과는 JAVA Gateway를 이용해서 처리할 수 있는데, 현재는 어느정도 해결이 되었지만 이 부분이 그동안 문제가 많았었죠. 프로세스가 정상 종료되지 않고 남아서 성능을 떨어뜨리는 현상을 일으켰는데, 현재는 Tibero 패치를 통해서 해결이 되었습니다. 뭐, Oracle과는 어느정도 해결이 된다고하지만 그 외의 DB와는 아직 문제가 많습니다. MS-SQL과는 Openquery를 통해서 select만 가능합니다. MS-SQL Gateway를 이용해서 data 공유가 가능하다고 하는데, 별로 권장하지 않는다고합니다. 그래서 좀 고민이 되는 부분입니다. 


 저희 회사의 시스템 구축 목표 중 아주 중요하게 생각하는 항목은 "가능한 모든 DB는 저렴하게 Active - standby를 구현하자"입니다. 결국 "저렴하게 안정성 향상과 성능 극대화를 추구한다."라는 말인데, 이 문구를 보시면 많은 분들은 "저렴하게"라는 부분만 빼면 가능한 일이라고 생각하실겁니다. 저도 그렇게 생각하구요. 예산만 풍부하다면...

 제가 생각하는 아주 좋은 회사는 장비(시스템)와 직원에게 비용을 아끼지 않는 회사입니다.(낭비가 아니라 "아끼지 않는다"입니다. 내가 원하는 기능, 성능 및 안정성을 제공하는 장비나 서비스를 구매하고 이에 비용을 지불하는건 낭비가 아니라고 생각합니다. 물론 사원에게도 마찬가지로 적절한 보수와 특근, 야근 수당을 다 챙겨주는...) 물론 이런 회사에 근무하는건 아주 드문 일이라고 생각합니다. 제가 DW 구축 및 Oracle DB 운영 업무(능력있는 사수님이 계셨었죠. 제가 부사수였습니다. ^^;)를 맡았었던 K사의 모 시스템에서도 비용을 절감하고, 보유한 자원을 최대한 활용하려는 노력은 끊이지 않았었죠. 대한민국 사람이라면 다 아는 큰 회사에서도 비용 절감은 중요한 사항이었죠.

 제가 비교적 시스템 자원이 풍부한 곳에서 일을 해왔었던 탓인지 현재 재직중인 회사에 와서 좀 충격을 받았었습니다. 안정성 향상을 위해 Cluster 혹은 Standby 시스템을 구축하는데는 보통 비용이 많이 들기 마련인데, 그 비용에서 타협을 하면 안정성이나 성능도 어느정도 타협을 해야 하는데... 그렇게 생각을 하지 않으니...

 암튼 초고속 인터넷이 보편화되어있는 대한민국의 IT 환경에서 안전한 백업보다도 고객들이 원하는건 중단되지 않는 서비스가 아닐까합니다. 그리고 실시간으로 Data 동기화 등의 작업이 이루어지길 원하죠.
 경영진으로서는 당연히 직원들이 해결해야할 문제이고, 실무진으로서는 돈도 적게 주면서(예산, 연봉 및 수당을 말합니다.) 품질만 최고를 원한다는 불만을 가지게 됩니다. 아~ 힘들다.

 DB Cluster를 구성하려고 여러가지 고민을 해봤습니다.
이번 글에서는 DBMS Cluster에 어떤 것들이 있는지 나열해보고, 제가 근무중인 곳에서 도입한 TAC에 대한 감상을 적어보겠습니다. 다른 DBMS Cluster에 대해서는 다음에 정리해서 올리도록 하겠습니다.

1. Oracle RAC
 말이 필요없죠. 좋습니다. 가격이 너무 비싸다는걸 빼면요. 저렴하게 구축하려면, Linux 기반으로해서 공유 스토리지는 Oracle ASM을 이용하는 방법도 있습니다. Oracle 11g 이후 버전에서는 Raw device를 지원하지 않고 ASM을 기본으로 할지도 모른다고 하니까 성능에는 자신이 있는 모양입니다.

 당연한 얘기지만 관련 서적도 제법 있습니다. RAC 자체에 대해서는 영문판 책이 대부분이며, 한글판으로는 RAC에서의 성능 문제에 대한 엑셈의 책도 있습니다.
ADVANCED OWI INTERNALS AND PERFORMANCE IN ORACLE 10G RAC
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2007년)
상세보기




2. IBM DB2 PureScale
 메인프레임의 기술을 유닉스에서... Cluster 도입을 고려하던 당시에는 자료가 별로 없어서 제외했습니다.
Oracle RAC에 대항마로서 나온 제품 같습니다.(예전에 DB관련 세미나에 갔더니 고객들이 "RAC~ RAC~"한다고 한 숨을 쉬시더군요.) Oracle RAC처럼 모든 노드를 Active로 사용할 수 있다고 합니다. 단점은 아직까지는 AIX에서만 사용 가능하다는 점입니다.


3. MySQL Cluster
 Active-Standby Cluster입니다. Standby DB는 평소에 읽기 전용으로 사용하기를 권장하더군요. 저희쪽에 제안을 들어온 업체의 제안 내용에 따르면, 일반적인 Intel CPU 장비를 제안해놓고는 메모리는 가득 채워서 설치하기를 요구하더군요. 쿼드코어 CPU 두장에 메모리는 128GB이던가... 그것만으로도 가격이 상당히 뛰더군요. 업체측에서는 Active-Active로 궁성을 해도, 거의 실시간으로 모든 노드에 Data 동기화가 이루어져서 Data 정합성이 깨지지 않는다고 하지만... 타 DBMS 업체에서는 이런 구조는 필연적으로 정합성에 문제가 생긴다고 하더군요... 뭐...
 좋은 점은 공유 스토리지를 필요로 하지 않아서 SAN 및 공유 Storage 구축 비용이 절감된다는 장점이 있습니다. 그런데 개별 서버에 대용량의 메모리를 설치해야 한다는 점이 조금 걸립니다.  다양한 관련 서적이 있으며, HA관련 서적이 한글판으로도 출판되어 있습니다.
MYSQL 5.1 REFERENCE GUIDE(레퍼런스 가이드)
카테고리 컴퓨터/IT
지은이 박장규 (혜지원, 2009년)
상세보기


MY SQL 5.1 H A 매뉴얼
카테고리 컴퓨터/IT
지은이 (글로벌, 2009년)
상세보기


4. MS SQL Server Cluster
 Active-Standby Cluster입니다. 일반적으로 얘기하는 HA구성이죠. MS-SQL 라이센스에 Cluster 라이센스를 구매해야하며, 당시엔 이에 대한 사내의 인식과 자료가 좀 부족해서 제외되었었습니다. 또한 MS SQL Server 자체에 대한 책은 많이 출판되어 있으나 HA에 대한 자료는 거의 없습니다.


5. Cubrid Cluster
 NHN에서 Open source로 제공하는 Cubrid를 Cluster로 구성하는 방법입니다. Cubrid야 NHN에서 서비스에 사용중이니 안정성 등은 믿음이 가지만, Cluster는 아직 개선의 여지가 많이 필요한거 같아 보입니다. 큐브리드 부설 연구소에서 2008년도에 출판된 책이 한 권 검색되네요. 음... 최근 버전에 관한 내용은 큐브리드 홈페이지에서 찾으시면 됩니다. 그리고 Naver 개발자 센터의 CUBRID프로젝트큐브리드 공부하기 카페에서도 관련 정보를 찾으실 수 있습니다.
데이터베이스 이해와 실습
카테고리 컴퓨터/IT
지은이 큐브리드 부설 연구소 (정익사, 2008년)
상세보기

 앞으로의 발전 가능성에 꾸준히 관심을 갖고 지켜보고 있는 제품입니다.


6. Tibero Active Cluster (TAC)
 TmaxData의 Tibero RDBMS를 Oracle RAC 형태로 구성한 Cluster입니다. 영진 전문 대학이라는 레퍼런스가 존재했고, 견적을 냈을때 Oracle의 10분의 1에 해당하는 가격이라 이걸로 결정되었었습니다.

 혹시 Tibero Active Cluster(이하 TAC)를 도입하려고 검토하시는 업체라면, 아주 신중히 결정하시라고 말씀드리고 싶습니다. TAC는 Tibero라는 DBMS를 Cluster로 구성한거라 Tibero의 약점을 그대로 가지고 있습니다. Oracle과 같은 문법을 제공하기에 기존 개발자가 적응하기 쉽다는 장점이 있지만, Oracle에서 당연히 되던 기능들이 작동을 안 하기도 합니다. 제가 썼던 글을 참조하세요.(2010/02/01 - [Database] - Tibero4 migration 모험기 (3) Index rebuild 기능)

 그리고 기존의 DB 보안, DB 복제, ETL tool 등이 정상 작동을 하지 않는 부분이 많습니다. 관련 업체의 인증을 받았다지만, 관리 툴이 Tibero에서는 완벽하게 사용할 수 없다던지, 중요 기능이 대용량 Data 환경에서는 정상 작동을 하지 않는다는 문제가 있습니다. 관련 솔루션 테스트 중에 몇 십만건 단위의 Data 처리를 시키니까 DB가 뻗어버리더군요. ㅜㅜ

 또 하나의 문제점이라면... Oracle RAC의 경우에 좀 저렴하게 구성하려면 Linux에 Oracle을 올리고, Oracle ASM을 이용하면, Veritas CFS 등의 Cluster filesystem을 구매하지 않아도 Cluster 구성이 가능한데, Tibero에는 자체적으로 제공하는 Cluster filesystem이 없어서 공유 스토리지 구성에 상당한 비용이 소요됩니다. 제 기억엔 TAC 자체 가격과 Veritas CFS 가격이 비슷했던것 같은 기억이...

 또한 시중에 출판된 Tibero 혹은 TAC 관련 서적은 없습니다. TmaxData에서 제공하는 Tibero 관련 메뉴얼이 있으며, 테크넷(technet.tmax.co.kr)에서 PDF 파일로 다운로드 가능합니다. 왠만한 명령은 Oracle과 비슷한 문법을 제공해서인지 메뉴얼만으로도 해결이 가능합니다. 사실 이게 최대의 장점이죠.
 Oracle DBMS를 사용하면서 수 많은 개발자들이 한번쯤은 접하게되는 문제가 "지금 운영중인 DB의 캐릭터셋 설정때문에 한자, 혹은 특정 한글 문자의 입력이 안되는게 당연합니다. 지금 캐릭터셋을 바꾸면 Data가 깨질수도 있어요."라는 DBA의 답변...이다.
 이런말 하기는 참 싫지만 내가 설치한 DB도 아니고... 새로 구축하는 DB면 이렇게 설치 안 하겠는데... 암튼...
(사실 이렇게 말해놓고는 지난번에 설치한 DB는 이 회사 왕고참 과장님의 의견(기존에 사용하던 DB와 캐릭터셋이 같아야 한다는...)에 따라서 KSC5601로 설치했다. 아~ 소신대로 살기 참 힘들죠~잉~)

OTN에 NLS관련 내용을 정리한 문서가 있어서 소개합니다. 언젠간 저도 이런 곳에 문서를 올릴 수 있는 능력자가 될 수 있기를...

보러가기
오라클과 NLS의 찰떡궁합 들여다보기(1)
오라클과 NLS의 찰떡궁합 들여다보기(2)
 요즘 DB가 거의 매일 문제를 일으켜서 성능관련 문서들을 많이 찾아보며 분석중에 있습니다. 그러다보니 wait event에 많은 시간을 투자하고 있죠.

OTN에는 많은 Oracle 관련 문서들이 있는걸 아시죠. 그중에서 이번에 찾은 [Oracle Wait Event 모니터링]이라는 문서가 눈에 띄더군요.

원문보러가기~!
(주)웨어벨리의 책임 컨설턴트인 안진철님이 2003년경에 작성한 문서로 순서는 아래와 같습니다.

 이 글을 읽으면서 맘에 와닿았던 글귀가 있습니다.

흔히 DBA를 3D업종이라고 부르는 이유 가운데 하나는 몸은 고달픈데 반해 그 성과가 별로 티가 나지 않는다는 사실 때문일 것이다. 실제로, DBA가 수행해야 하는 일상적인 관리 업무들은 몸은 다소 피곤하게 만들지 몰라도 어느 정도 경험이 쌓이면 그리 부담을 주는 일은 아니다. 우리가 한단계 업그레이드된 전문가로서 인정 받는 DBA가 되기 위해서는 장애상황 혹은 유사 장애 상황에서 DB 모니터링 작업을 수행하고 분석할 수 있어야 한다. 시스템이 갑자기 느려지고 업무가 마비되는 상황에 맞닥뜨렸을 때 문제의 원인이 무엇인지를 집어낼 수 있는 능력이 있어야 하며 최소한 오라클의 문제인지 아닌지를 판단할 수는 있어야 몸으로 야간작업이나 때우는 DBA가 아니라 조직에 없어서는 안될 전문가로서의 나의 존재가치를 인정 받을 수 있을 것이다.


다음은 시중에 나와있는 OWI(Oracle Wait Interface) 관련 책들입니다.
오라클 진단 & 튜닝
카테고리 컴퓨터/IT
지은이 RICHMOND SHEE (엑셈, 2005년)
상세보기

OWI Advanced Oracle Wait Interface in 10g
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2006년)
상세보기

PRACTICAL OWL IN ORACLE 10G
카테고리 컴퓨터/IT
지은이 엑셈 (엑셈, 2007년)
상세보기

ADVANCED OWI INTERNALS AND PERFORMANCE IN...
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2007년)
상세보기


+ Recent posts