태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
 DBMS를 운영하다보면 종종 DB 복제, 혹은 특정 data의 동기화를 해야할때가 있다. 동일한 DBMS라면 그것도 시장에 잘 알려져 있어서 확실한 3rd party 복제 툴이 있거나, 혹은 한 두개 정도의 테이블만 복제/동기화 작업을 해줘야한다면 큰 문제가 아닐것이다. 허나 여러 종류의 DB를 사용하다보면, 그것도 시장에 널리 퍼지지 않았거나, 국내에서만 사용하는 DB라는 이유로 확실한 3rd party 툴이 없다면... 아마 저처럼 고민에 빠지게 될겁니다.
 제 고민의 원인에 대해서는 제가 앞에 작성했던 글들을 보시면 아시게 될겁니다.
2010/06/16 - [Database] - Tibero4 migration 모험기 (4) 중간정리 : Oracle DBA의 Tibero 사용 후기
2010/05/07 - [Database] - 국산 DBMS. TmaxData Tibero TAC의 좋은점과 아쉬운점.
2010/02/25 - [Database] - [이기종 DB간 Data 공유] MS-SQL에서 Openquery를 사용할때 문제점.
2010/02/01 - [Database] - Tibero4 migration 모험기 (3) Index rebuild 기능
2010/01/28 - [Database] - Tibero4 migration 모험기 (2) tbAdmin에 대해서
2010/01/07 - [Database] - [이기종 DB간 Data 공유] MS-SQL에서 Oracle에 있는 Data 가져와서 동기화 맞추는 기능 구현
2009/11/23 - [Database] - Tibero4 migration 모험기 (1) 사용자 정의 함수 사용시 경험한 묘한 버그
아~ 꽤 많군요. 걍 눈에 띄는것들만 선택한 건데...

 DB 복제(Replication), Data 동기화(Synchronization), Change Data Capture(CDC)... 뭐 이런 식으로 불리거나 비슷한 단어들로 묘사되는 툴들이죠.
 Oracle만 혹은 Oracle만큼 시장에 많이 알려진 DB2, MySQL, SQL Server, Sybase 등의 DBMS들, 심지어는 국내에서는 잘 쓰지 않는다고 알려진 Postgresql, FireBird까지도 지원하는 툴이 있는데, 저에게는 TmaxData Tibero라는 복병이 있습니다. 아시다시피 국산 소프트웨어이며, Oracle의 문법 체계를 그대로 적용하여 Query, Procedure 등을 개발할 수 있는 등의 많은 장점을 지닌 제품입니다.
 문제는 Tibero를 지원하는 툴들이 거의 없다는겁니다. NHN의 Cubrid가 오픈소스 프로젝트를 열고, 많은 개발자, 사용자들을 끌어들여서 Pentaho에서 JDBC를 이용하여 접속을 가능하게 하는 문서(블로그)가 검색되는 등의 성과를 올리는 것과는 반대로 "Orange for Tibero"외의 성과가 없는게 Tibero측의 아주 큰 약점입니다.
 물론 TmaxData에서는 자사의 Tibero와 함께 DB복제 솔루션인 ProSync와 ETL 솔루션인 ProETL이라는 제품도 판매하고 있습니다만, 아직 제약이 많습니다. Oracle-to-Tibero 복제는 이상없이 잘되는데, Tibero-to-Tibero 복제에서 문제가 생겨서 도입하려다 중지한 상태입니다. 뭔가 남들과 조금 다르게 구성하면 잘 안되는게 생기네요.

 이 모든것을 뒤로하고...

지금 고민은 "오픈소스 ETL/BI 솔루션 중에서 어떤 제품을 사용하는게 좋은가?"입니다. 음... 어떤게 좋을까요?
고민되네요.

저작자 표시 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
http://www.hyungjun.kr/trackback/291 관련글 쓰기
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


 MS SQL Server 2005를 사용하는 서비스가 있습니다. 그동안 상세하게 튜닝을 하지 않았었는데, 이번에 컨설턴트분의 의견을 적극 반영하여 튜닝을 시도하게 되었습니다. 그 중에서 첫번째가 tempdb 설정입니다.

 기본 설치로 진행하게되면 tempdb는 다른 시스템데이터베이스와 마찬가지로  하나의 data file과 하나의 transaction log file(정확한 명칭인지는 모르겠습니다.)로 구성됩니다. 그런데 CPU가 여러개 설치되어 있다면 물리적인 CPU 갯수만큼 tempdb의 file을 추가해주는게 좋다고 합니다. 보통 코어수가 아닌 물리적인 CPU 갯수대로 해주는게 좋다는데, 상세한 아키텍쳐에 대한 설명은 내공이 부족해서 다음으로 미루겠습니다. 일단 제 경우에는 아래와 같이 설정해 줬습니다.

 CPU가 두 장인 IBM X 시리즈 서버에 MS SQL Server를 설치한 후 tempdb의 파일 설정을 한다고 가정하면
 1) 파일 개수 : 2개
 2) 기본 크기 : 128 MB
 3) 증가 값 : 2 MB씩 무제한 증가


 SQL Server를 사용하는 곳의 File 크기 설정을 보면 보통은 파일 크기가 기존 크기의 일정 비율로 증가하도록 되어있습니다. 저희도 그랬구요. 그런데 이렇게 되면 data file이 증가하는게 규칙성이 없이 마구잡이로 늘어나니까 안 좋다고 하더군요.
 그래서 외부 컨설턴트의 권고에 따라서 일정한 수치로 증가하도록 변경했습니다. 시스템 DB는 용량의 변화도 별로 없고... 뭐... 걍 기본 설정 그대로 두고 서비스에 사용하는 사용자 DB에만 적용했습니다. Oracle에 Data file 생성할 때 처럼 512MB... 뭐 이런식으로요.

 저희 시스템이 부하가 많이 걸리는 시스템이 아니라서 평소에 뭔가 효과를 본다는 느낌은 들지 않지만, 그래도 서버 튜닝 기법으로 많이 쓰이는, 그리고 어느정도 효과가 공인된 방법입니다. 다음에는 좀더 있어보이는 방법을 얘기해보겠습니다.  ㅋㅋ
저작자 표시 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
http://www.hyungjun.kr/trackback/288 관련글 쓰기
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


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 공유가 가능하다고 하는데, 별로 권장하지 않는다고합니다. 그래서 좀 고민이 되는 부분입니다. 


크리에이티브 커먼즈 라이선스
Creative Commons License
http://www.hyungjun.kr/trackback/277 관련글 쓰기
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST