Background Image
조회 수 51510 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

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

무중단 서비스를 위한 DB 서버 이중화 구축
죽지 않아야 한다. 날리지 말아야 한다. 빨라야 한다.

 

* 본 게시글은 월간 마이크로소프트웨어 7월호에 게재된 내용입니다.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
오보명 obm@nhn.com | NHN Business Platform 서비스 플랫폼 개발 센터에서 플랫폼 확산 업무 및 오픈소스 라이선스 컨설팅 업무를 담당하고 있다. 4년 전 CUBRID라는 국산 DBMS와 인연을 맺은 이후, CUBRID 의 국내/해외 확산 업무를 담당하고 있으며 CUBRID 글로벌 커뮤니티 사이트(http://cubrid.org)를 운영하면서 전세계 개발자들과 소통하고 있다.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 


2011년 6월 17일(금) 자정 00:00부터 오전 09:30분까지 국내 홈쇼핑 선두 업체의 쇼핑 사이트가 시스템 점검을 이유로 서비스 운영을 일시 중단했다. 해당 업체의 2010년 매출액과 온라인 쇼핑 매출 비율(30%)을 고려할 때, 1시간 당 매출액은 약 2,700만원이고, 9.5시간 동안 올릴 수 있는 매출액은 약 2억 5천만 원에 이른다. 물론, 대부분 고객들이 잠을 자는 시간이어서 실제 손실액은 훨씬 적었을 것이다. 당일 필자는 에어컨 가격을 알아보고 있었는데, 결국 다른 쇼핑 사이트에서 이를 구매했다. 서비스가 죽지 않아야 하는 이유? 바로 매출과 직결되기 때문이다.

 

왜 서비스는 중단되는가?
서비스 중단의 유형은 원인에 따라 크게 두 가지로 구분할 수 있다. 운영자가 예측하지 못한 장애 상황이 발생한 경우, 그리고 운영자가 의도적으로 서비스를 중단하고 시스템 점검과 같은 상시 운영 업무를 처리하는 경우이다. 이때 문제가 되는 것은 전자의 경우이다. 천재지변, 네트워크 단절, 운영 서버 리소스의 과다 사용, 하드웨어 고장 등의 이유로 장애가 발생하는 경우, 운영자가 원인을 판단하고 서비스를 정상 복구하기까지 상당한 시간이 소요되기 마련이다. 후자의 경우는 다행히 작업 시간을 미리 예측할 수 있지만, 사용자 방문이 가장 적은 새벽에 점검 작업을 수행하여야 하므로 운영자는 늘 피곤할 수 밖에 없다. 근본적으로 피곤은 “간” 때문이기는 하지만, 운영자의 피곤을 줄일 수 있는 확실한 방법은 바로 HA(High Availability) 시스템 구축이다.

 

서비스에 적합한 HA 솔루션 선택
서비스 가용성을 높이기 위한 방안으로 DBMS벤더들은 각각 다양한 방식으로 HA 솔루션을 지원한다. 아래 표는 각 제품 별 특징을 요약한 것이다.

table 1.jpg

 

표 1. 제품별 HA 솔루션의 특징 요약

 

Oracle RAC 및 MS-SQL Cluster는 공유 스토리지 기반의 구조를 따르고 있으며, MySQL과 CUBRID는 복제(Replication)을 사용하여 데이터베이스를 여러 대의 서버에 분산하는 구조를 채택하고 있다. 그 외에도 마스터/슬레이브 데이터베이스 간 동기화 방식과 복제 방식, 자동 절체(Auto-Failover) 기능의 유무, Failover 이후 어플리케이션의 자동 연결 여부 등 제품마다 동작 방식, 지원 기능 및 구축 비용이 매우 상이하다. 운영자는 예산, 서비스 규모 및 부하 패턴을 고려하여 적합한 솔루션을 채택할 수 있다.
지금부터는 비용 부담 없이 공개된 매뉴얼만으로 쉽게 고가용성 시스템을 구축할 수 있는 MySQL과 CUBRID에 대해 더욱 상세히 살펴보고자 한다.

 

목표 1. 죽지 말아야 한다.

 

웹 서비스 제공자는 누구나 서비스 가용성이 100%이기를 바랄 것이다. “서비스는 죽지 말아야 한다”는 목표를 달성하기 위해서는 데이터베이스 서버의 죽음을 미리 대비하고, 죽음을 반드시 알려야 한다. 이를 위해 CUBRID HA는 아래와 같은 기능을 제공한다.

• DB 서버 다중화 구성
• 복제 기반의 데이터베이스 동기화
• 장애 감지 및 Failover

 

1) DB 다중화 구성
CUBRID HA는 읽기/쓰기 부하를 담당하는 마스터 노드, 장애 시 마스터 기능을 대체하는 슬레이브 노드, 읽기 부하 분산을 담당할 수 있는 복제 노드를 조합하여 다양하게 구성할 수 있다. 아래는 CUBRID HA 구성의 예이다.

 

table 2.jpg

 표 2. CUBRID HA 구성의 예시

 

아래 그림처럼 CUBRID HA 기본 구성을 한 후, 마스터 서버에 장애가 감지되면, 브로커 미들웨어가 등록된 슬레이브 DB 서버의 상태를 확인하여 연결을 수립한 후, 사용자 요청(읽기/쓰기)을 처리한다. 만약, 브로커 서버와 DB 서버를 각각 분리한 구성에서 브로커 서버에 장애가 감지되면, 마찬가지로 인터페이스(JDBC, PHP, CCI 등)에 등록된 2차 브로커 서버의 상태를 확인하고 연결을 수립한다.

  

pic 1.jpg


그림 1. CUBRID HA 구성에서 마스터 장애 시 Failover

 

MySQL 기반의 HA 환경을 무료로 구성하는 대표적인 방법으로는 1) MySQL 복제와 Linux Heartbeat 패키지를 사용, 2) MySQL 복제와 MMM(Master-Master Replication Manager) 솔루션을 사용하는 것이다. 1)은 운영 편의성 측면에서 매우 취약한 구성인데 이유는 마스터 DB 서버에서 장애가 감지되더라도 운영자가 수동으로 Failover를 하고, 슬레이브 DB 서버와 연결되도록 어플리케이션의 연결 정보를 수동으로 갱신하여야 하기 때문이다. 한편, 2)의 경우는 CUBRID와 마찬가지로 자동 Failover 및 어플리케이션 자동 연결 기능이 지원된다.
 

pic 2.jpg


  

그림 2. MySQL 복제+ Linux HB 구성에서 마스터 장애 시 Failover

 

2) 복제 기반의 데이터베이스 동기화
CUBRID와 MySQL는 데이터베이스 동기화를 위해 복제 기법을 사용하지만, 복제의 동작 방식이 서로 다르다. CUBRID는 마스터 노드에서 데이터(row)의 변경 사항을 로깅하여 이를 복제하는 row-based 복제 기법을 사용하고, MySQL은 마스터에서 수행된 SQL 문을 그대로 로깅하여 복제하는 statement-based 복제 기법을 사용한다. Row-based 복제는 마스터의 모든 변경 사항에 대해 복제할 수 있고 보다 적은 LOCK을 사용하게 되어 동시성이 높다는 장점이 있다. 한편, statement-based 복제는 슬레이브로 SQL문만 복제하므로 마스터 서버에 부하를 덜 주지만 마스터와 슬레이브 사이에 데이터베이스 불일치가 발생할 수 있다.
그림 3은 CUBRID HA 구성에서 복제 방식을 나타낸 것이다. 마스터 노드에서 데이터가 변경되면 트랜잭션 로그와 복제 로그가 슬레이브 노드로 복사 및 반영되면서 마스터 및 슬레이브 데이터베이스가 동기화된다.
 

pic 3.jpg


 그림 3. CUBRID Row-based 복제 방식

 

3) 장애 감지 및 Failover
CUBRID는 HA 기능이 구현되었던 초기 버전(2008 R2.1이하 버전)에서는 MySQL HA와 마찬가지로 Linux Heartbeat 패키지를 사용하여 노드 상태를 감지하였으나, NHN 내/외부 서비스에 CUBRID HA 적용 후 Linux Heartbeat 패키지의 불안정한 문제들(예: 부정확한 장애 감지로 인해 원치 않는 failover 발생)과 설정의 어려움이 있어, 이후 버전부터는 자체 구현한 CUBRID Heartbeat을 내장하고 있다.
CUBRID HA로 구성된 모든 노드들은 네트워크를 통해 heartbeat 메시지를 주고 받으며 자신을 제외한 노드의 상태를 감시한다. 만일, 일정 시간 동안 특정 노드로부터 heartbeat 메시지를 수신하지 못하게 되면, 해당 노드에 장애가 발생한 것으로 판단한다.
만약, 마스터 노드에서 장애가 발생하면 즉시 구성 정보와 다른 노드들의 상태 정보를 조합하여 슬레이브 노드 중 마스터가 될 수 있는 후보 노드를 선택하고 이 노드에서 쓰기 연산이 가능하도록 해당 노드의 역할을 변경하기 위한 Failover를 수행한다.

  

pic 4.jpg


그림 4. CUBRID Heartbeat에 의한 장애 감지와 Auto-Failover

 

목표 2. 날리지 말아야 한다.

 

목표 1을 달성했다고 하여 모든 문제가 해결된 것은 아니다. 만약, 장애가 발생한 순간의 트랜잭션이 정상적으로 반영되지 않거나, 마스터 노드와 슬레이브 노드 간 데이터베이스 불일치가 발생한다면 어떻게 될까? 쓰기 연산이 비교적 많은 SNS또는 메신저 사용자라면 누구나 겪었을 경험, 열심히 글을 입력했는데 그 글이 보이지 않는 황당함을 서비스 고객이 겪을 수도 있다.
“날리지 말아야 한다”는 목표를 달성하기 위해 CUBRID HA는 세가지 동기화 모드를 지원하며, 운영자는 서비스 유형에 따라 적절한 모드를 설정할 수 있다.

 

table 3.jpg

 표 3. CUBRID HA의 동기화 모드 비교

 

목표 3. 빨라야 한다.

 

목표 1, 목표 2를 달성했다고 해도 여전히 남은 문제, 바로 HA 성능이다. 장애 발생 시점부터 서비스가 정상화될 때까지의 소요 시간을 최소화하기 위해서는, 1) 복제 지연 최소화, 2) 신속한 장애 감지, 3) 가용한 슬레이브 노드로 Failover 수행, 4) 어플리케이션이 슬레이브 노드로 즉시 연결 등 일련의 과정들이 신속 정확하게 수행되어야 한다. 그래야만 서비스 고객들이 순간의 서비스 중단을 눈치채지 못할 것이다.

 

1) HA 환경에서의 복제 지연 테스트
서비스 가용성과 안정성을 향상시키기 위하여 HA 솔루션을 도입할 때 반드시 고려해야 할 반대 급부가 바로 성능이다. HA 환경에서는 슬레이브 노드로 복제를 수행하므로 마스터 노드에 부하가 증가한다. 또한, 데이터 무결성을 보장하기 위하여 HA 동작 모드를 동기 모드(sync mode)로 설정한 경우, 비동기 모드(async mode)에 비해 마스터 노드에 부하가 증가한다. 문제는 이러한 복제 지연이 “얼마나” 실제 서비스에 영향을 주느냐인데, 이를 검증하기 위하여 간단한 테스트를 수행하였다.
마스터 노드 1개와 슬레이브 노드 1개로 구성된 HA 환경을 구축하고, 테이블 1개에 일정 개수의 레코드가 축적될 때까지 100% INSERT 연산을 수행하는 테스트이다. 일반 환경, HA환경(Async모드), HA 환경(Sync 모드)에서 각각 테스트를 수행하였다.
(CPU: Xeon(R) CPU 3065 @ 2.33GHz, Memory: 4G, OS: Linux CentOS 2.6.18, CUBRID 2008 4.0.0233, MySQL 5.5.11)

 

table.jpg

 

최신 버전의 CUBRID과, MySQL을 적용하여 테스트한 결과, 일반 환경에서는 MySQL의 입력 성능이 평균 20% 더 높지만, HA 환경(Async모드)을 구성했을 때는 CUBRID의 입력 성능이 평균 9% 더 높았다. 또한, HA 환경(Sync모드)을 구성했을 때는 슬레이브 노드에서 트랜잭션이 커밋된 이후에 마스터 노드에서 트랜잭션을 완료 처리하므로 Async일 때보다 약 2배의 시간이 소요되나, 복제 지연은 거의 없는 것으로 확인되었다. 단, 서비스 부하 패턴 및 장애 발생 시점의 복제 데이터 양에 따라 테스트 결과는 상이할 수 있음을 고려하여야 한다.

 

2) Failover 테스트
서비스 운영 중에 자주 발생되는 장애 유형을 6가지로 분류하고, 각 장애 상황에서 CUBRID HA가 성공적으로 Failover를 수행하는지에 관한 테스트이다. 덧글을 입력할 수 있는 게시판 어플리케이션에서 30개의 동시 쓰레드가 QPS 700 수준의 쓰기 및 읽기 연산을 수행하는 도중 장애가 발생하는 시나리오이다. 단, Failover 시간 및 TPS가 정상화되는데 소요되는 총 시간은 서비스 부하 패턴 및 장애 발생 시점의 복제 데이터 양에 따라 상이할 수 있음을 고려하여야 한다.
(CPU: 4 core * Xeon(R) CPU X3350 @ 2.66GHz, Memory: 4G, OS: Linux CentOS 2.6.18, CUBRID R2.2 Patch 9)

 

table 4.jpg

 표 4. CUBRID HA의 Failover 성능 테스트 결과

 

결론. 궂은 날 빛나리라.


지금까지 DB 서버 이중화 구축을 위한 각 제품별 HA 솔루션의 특징을 살펴보고, 비용 고민 없이 도입할 수 있는 오픈소스 제품인 MySQL과 CUBRID의 HA 의 동작 방식과 특징, 그리고 성능을 세가지 목표 관점에서 검토해 보았다.
만약, HA 시스템을 구축할 계획이 있다면 이것만은 명심하자. 걱정 없이 슬레이브 데이터베이스에 실시간 백업(hot backup)을 걸 수 있는 날, 서버 장비가 갑자기 고장 나도 서비스가 중단 없이 운영되는 날, 근무 시간 동안 DB 엔진 버전 업그레이드 작업을 완료하고 퇴근하는 날, 그 날은 온다는 것을.

 

 

참고문헌

[1] High Availability, http://en.wikipedia.org/wiki/High_availability, Wikipedia
[2] Failover, http://en.wikipedia.org/wiki/Failover, Wikipedia
[3] Shared Nothing Architecture, http://en.wikipedia.org/wiki/Shared_nothing_architecture, Wikipedia
[4] Oracle Database High Availability, http://www.oracle.com/technetwork/database/features/availability/index.html
[5] Database Mirroring in SQL Server 2005, http://technet.microsoft.com/en-us/library/cc917680.aspx
[6] MySQL HA/Scalability, http://dev.mysql.com/doc/mysql-ha-scalability/en/index.html
[7] CUBRID 4.0 매뉴얼, http://www.cubrid.com/manual/840/index.htm


 


  1. 죽지 않아야 한다. 날리지 말아야 한다. 빨라야 한다.

    무중단 서비스를 위한 DB 서버 이중화 구축 죽지 않아야 한다. 날리지 말아야 한다. 빨라야 한다. * 본 게시글은 월간 마이크로소프트웨어 7월호에 게재된 내용입니다. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 오보명 obm@nhn.com | NHN Business Platform 서비스 플랫폼 개발 센터에서 플랫폼 확산 업무 및 오픈소스 라이선스 컨설팅 업무를 담당하고 있다. 4년 전 CUBRID라는 국산 DBMS와 인연을 맺은 이후, CUBRID 의 국내/해외 확산 업무를 담당하고 있으며 CUBRID 글로벌 커뮤니티 사이트(http://cubrid.org)를 운영하면서 전세계 개발자들과 소통하고 있다. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2011년 6월 17일(금) 자정 00:00부터 오전 09:30분까지 국내 홈쇼핑 선두 업체의 쇼핑 사이트가 시스템 점검을 이유로 서비스 운영을 일시 중단했다. 해당 업체의 2010년 매출액과 ...
    Date2011.08.03 Category제품 여행 Byadmin Views51510 Votes0
    Read More
  2. 기획연재[6] CUBRID 제품 분석 – 클릭카운터

    이번 제품 분석에서는 클릭카운터 기능에 대해서 알아보도록 한다. 인터넷 서비스 중 접속자의 관심도 등을 알아 볼 수 있는 방법으로 조회수를 확인한다. 현재 많은 인터넷 서비스에서 조회수를 이용한 관심도 및 서비스 이용량 정도를 파악하고 있다. 이를 위하여 CUBRID에서는 클릭카운터 함수를 지원한다. 클릭카운터란 인터넷 서비스 중 조회수 증가를 위한 select/update작업을 한번에 처리해 주는 기능을 말한다. 이는 사용자 정의 트랜잭션과 별도로 시스템 내부에서 사용되는 top operation이 적용되어 트랜잭션의 commit/rollback과 상관없이 데이터베이스에 자동으로 적용된다. 클릭카운터 기능을 사용하기 위해 사용하는 함수로는 INCR/DECR함수가 있다. INCR는 1씩 증가, DECR는 1씩 감소하는 함수이다. 각 함수는 select문의 최상위 구문에서만 적용되어 사용되며 sub select문에서는 지원하지 않는다. select절에 INCR 함수를 명시한 경우, COUNTER 값을 1 증가하고 질의 결과는 증가하기 전의 값으로 출력한다. 그리고, INCR 함수는 질의 처리 과정에서 참여한 행(tuple)이 아니라 최종 결과에 참여한 행에 대해서만 값을 증가시킨다. 아래는 incr함수의 사용 ...
    Date2010.06.07 Category제품 여행 Bycubebridge Views38780 Votes0
    Read More
  3. 기획연재[5] CUBRID 제품 분석 – CUBRID서비스 제어

    이번 시간에는 CUBRID 서비스 제어에 대해서 간략하게 소개하도록 하겠다. 이전 제품여행을 탐독(?) 했던 독자들은 CUBRID 구조에 대한 내용을 기억하고 있을 것이다. 다시 간략하게 상기 시킨다면 아래와 같다. 1. Database서버 – 데이터가 저장 2. Broker – CUBRID와 AP를 연결해 주는 미들웨어 3. CUBRID Manager Server – CUBRID와 Broker를 관리해 주는 관리 프로그램 위에 소개된 부분은 각각의 구동이 가능한 CUBRID의 제품군들이다. 각각의 제어 방법을 소개하면 아래와 같다. 1. Database서버 구동/정지 – cubrid server start <db_name>/cubrid server stop <db_name> 2. Broker 구동/정지 – cubrid broker start/cubrid broker stop 3. CUBRID Manager Server 구동/정지 – cubrid manager start/cubrid manager stop 하지만 위와 같이 각각의 구동은 잘 사용하지 않는다. CUBRID에서는 위의 각각의 작동을 한번에 제어하는 명령어를 제공하고 있으며 이를 좀더 효율적으로 사용하기 위한 몇 가지 parameter설정 방법을 알려주도록 하겠다. 현재 CUBRID 서비스를 일괄 구동하기 위한 방법은 “cubrid service start”라는 명령어를 통하여 이루어진다. 그렇다면 “cubri...
    Date2010.03.03 Category제품 여행 Bycubebridge Views36313 Votes0
    Read More
  4. 기획연재[4] CUBRID 제품 분석 – CSQL 인터프리터

    CUBRID의 구조에 대해서 간략하게 맛보았다. 모든 DBMS 사용자가 DB에 접속하려고 책상 앞에 앉았다면, 가장 먼저 찾는 것이 무엇일까? 어떤 것이나 마찬가지겠으나 우리는 DBMS와 소통이 필요하다.(몇 년째 화두인…^^) 소통의 통로를 각 DBMS는 sqlplus, mysql, pgsql 등의 인터프리터로 만들어 놓았다. CSQL이란 바로 이와 같이 사용자와 DBMS가 소통할 수 있는 기본적인 통로라 할 수 있겠다. 물론 많은 3rd party툴과 이미 1회에서 소개했던 여러 가지 오픈 소스 툴을 이용하여 CUBRD와 소통할 수도 있겠으나 조금 더 가까이에서 조금 더 깊게 DBMS를 건드려 보도록 하자. CSQL을 무엇에 쓸 것인가? 크게 두 가지를 위해 CSQL은 사용된다. 1. SQL명령어를 수행하기 위해서 사용된다. 2. DBA가 관리를 위해 수행하는 업무를 받아들이는 통로로 사용된다. 1번은 3rd party의 다양한 툴들이 해결해 줄 수 있는 문제이겠지만… 2번의 경우는 오직 CUBRID를 위해서만 제공되는 CSQL에서만 가능한 것이다. CSQL과 CUBRID Manager Client, 3rd party 툴 등과의 차이점은 무엇인가? - CSQL은 Broker를 통하지 않고 DB에 직접 접속한다. Broker에서의 발생하는 문제는 CSQL접속에 아...
    Date2010.01.25 Category제품 여행 Bycubebridge Views39076 Votes0
    Read More
  5. 기획연재[3] CUBRID 제품 분석 – CUBRID제품 구조

    CUBRID 기획 연재 시리즈로 지난 시간 CUBRID기반의 지원 툴에 대해서 알아보았다. 지난 시간에 예로 들었던 모든 툴들의 사용법은 홈페이지 개발자->튜토리얼에 있으니 참조하고 부족한 부분이나 이해되지 않는 부분에 대해서는 덧글로 문의 바란다. CUBRID를 처음 접하는 사람들이 가장 궁금해 할 것이 무엇인가 고민하다가 이번 시간에는 CUBRID제품 구조에 대해서 간략하게 다뤄보려고 한다. CUBRID와 타 DBMS의 가장 두드러진 차이점이 무엇일까? 여러가지가 있겠으나 하나 꼽는다면 DB와 AP가 연결되는 구조라고 할 수 있겠다. 어떤 구조를 이야기 하는 것인가? 2-Tier, 3-Tier에 대한 이야기다. 각각에 대해서 간략하게 설명하는 아래와 같다.(S/W관점에서 이야기 하겠다.) 1) 2-Tier : Client Side에 프리젠테이션/비지니스 로직을 작성하고, Server Side에는 데이터베이스가 위치하는 구조이다. 많이 알고 있는 대부분의 DBMS는 2-Tier구조로 되어 있다. 2) 3-Tier : Client Side에 프리젠테이션 로직을 작성하고, Server Side에 비지니스 로직과 데이터베이스가 위치하는 구조이다. 인터넷 서비스를 예로 들면 Application Server와 Database Server라고 볼 수 있으...
    Date2009.12.30 Category제품 여행 Bycubebridge Views37230 Votes0
    Read More
  6. 기획연재[2] CUBRID 제품 분석 – CUBRID 지원 툴들

    CUBRID 기획 연재 시리즈로 지난 CUBRID Manager에 이어 이번에는 CUBRID기반의 지원 툴에 대해서 알아보기로 한다. CUBRID는 기본적으로 JDBC, ODBC, OLEDB 등을 지원한다. CUBRID Manager(이하 CM)는 기본적으로 JDBC를 이용해 쿼리를 수행을 지원하고 있는데, JDBC 연결 툴에는 어떤 것들이 있는지 살펴보도록 한다. 이미 살펴본 사용자라면 CUBRID홈페이지(http://www.cubrid.com/zbxe/bbs_developer_tutorial)에서 해당 툴들을 한번씩 봤을 것이다. 아래는 언급된 CM지원 툴 이외에 CUBRID기반의 모든 가능한 지원 툴에 대해서 간략히 부연 설명을 한 것이다. CUBRID의 JDBC 먼저 JDBC를 이용하여 CM이 아닌 제 3의 툴에서 CUBRID에 접속하도록 하자. CUBRID JDBC는 CUBRID를 설치하게 되면 $CUBRID/jdbc경로에 있다. 이는 windows를 이용하는 사용자가 앞으로의 살펴볼 제 3의 툴에서 가장 먼저 알아둬야 할 경로일 것이다. CUBRID JDBC의 이름은 cubrid_jdbc.jar이다. SQuirreL SQL(http://squirrel-sql.sourceforge.net) Squirrel SQL은 오픈 소스이며, JDBC를 이용하여 다수의 DBMS에 접근이 가능하다. sourceforge에서 다운로드 받을 수 있으며, 버전에 따라 요구하...
    Date2009.11.27 Category제품 여행 Bycubebridge Views39920 Votes0
    Read More
  7. 기획연재[1] CUBRID 제품 분석 – CUBRID Manager란?

    최근 DBMS 업계의 움직임이 심상치 않다. 오라클의 MySQL인수와 더불어 IBM의 공격이 날로 거세지고 있는 가운데, 국내 업체들도 선전을 하고 있는 듯 하다. 이러한 최근 상황을 반영이라도 하듯 얼마전 NHN의 큐브리드 교체설에 대한 기사와 함께 큐브리드의 다운로드 수치는 매월 4천 여건씩 약 6만 여건의 누적 다운로드 수를 기록하면서 큐브리드에 관심이 날로 커지는 듯 하다. 이러한 큐브리드에 대한 관심을 배가시키고 제품에 대한 이해도를 높이기 위해 주기적으로 큐브리드에 대해 살펴보는 연재를 기획해 보았다. CUBRID2008을 들여다 보는 창 CM CUBRID2008을 접하게 되는 사용자들이 실제적으로 가장 많이 보는 것은 어떤 것일까? CUBRID2008 엔진 자체의 개발자가 아니라면 당연히 Cubrid Manager일 것이다. 간단하게 CM으로 명명하자. CUBRID2008에 좀 더 쉽게 접근할 수 있는 도구인 CM에 대해서 알아보고 친구들(?)이라 할 수 있는 기타 툴을 소개하도록 하겠다. CM은 뭐하는 도구인가? CM 곧 Cubrid Manager는 말 그대로 CUBRID를 관리하는 관리도구이다. CM은 사용자들이 편리한 UI를 통하여 CUBRID를 관리할 수 있도록 하며, 질의를 수행하고 결과를 볼 ...
    Date2009.10.24 Category제품 여행 Bycubebridge Views38388 Votes0
    Read More
  8. 막무가내 DBA의 DISK 장애 대처

    2009.04.05. 드디어 올 것이 오고야 말았다. 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로 연...
    Date2009.04.16 Category제품 여행 By프란체스카 Views54783 Votes0
    Read More
  9. 초보 PM의 CUBRID 2008 R1.4 릴리스 후기

    이번 주에 셋째 아들(R1.4)이 릴리스되었다. 점점 더 릴리스가 손에 익어 가는 것 같지만, 아직 갈 길이 멀다. 5월이나 6월쯤의 상반기 메이저 버전이 릴리스되기 전에 릴리스가 내 손에 모두 익어야 할텐데, 만만치는 않은 것 같다. 제품 개발 사이클 CUBRID 2008 R1.3이 릴리스 되자마자 한숨 돌릴 틈도 없이 바로 서스테이닝(Sustaining) 이슈의 스펙을 정리해야 했다(서스테이닝=1차 생산 업무. NHN의 서스테이닝 부서=제품 양산 부서, LG전자 사업부). 일반적으로 개발자들은 릴리스가 되고 다음 릴리스를 준비하는 동안 아주 짧은 시간이지만 몸과 맘의 여유를 가지고 새로운 개발을 준비할 수 있다. 하지만 문서와 스펙을 담당하는 PM은 릴리스될 때는 매뉴얼과 릴리스 노트를, 릴리스를 준비할 때는 스펙을 작성해야 한다. (다음 그림을 보면, 릴리스 앞 뒤로 쉴 틈이 없다.) 스펙의 어려움 개발 담당자가 없는 스펙을 이번에 할당받았다. 이는 1. 스스로 해당 기능을 공부하고 정리한 뒤, 바뀔 방향에 대해서 주변 사람과 토의하여 결론을 내야 하고 2. CUBRID 오픈 소스 프로젝트 홈페이지(nFORGE)에 올려서 개발자들과 올바른 방향을 이끌어 내야 한다는 걸 의미한...
    Date2009.03.18 Category제품 여행 By일동차렷? Views33684 Votes0
    Read More
  10. 초보 PM의 CUBRID 2008 R1.3 릴리스 후기

    CUBRID 2008 R1.3이 이번 주에 릴리스되었다. 메이저 버전 릴리스도 아닌데 뭐 그리 힘들까 하고 생각할 수도 있지만, 메이저든 마이너든 릴리스는 릴리스이기 때문에 준비할 것은 비슷할 것이라고 생각하고 분량의 차이만 있을 것으로 본다. 사실 난 아직 CUBRID의 메이저 릴리스를 해 본 적이 없다. ^^ CUBRID 2008 R1.2의 릴리스 후기를 쓰고 난 직후, 난 릴리스 노트의 후폭풍을 맞고 쓰러졌었다. 팀장님이 R1.2의 릴리스 노트를 별로 챙기지를 않는다는 느낌을 받았기 때문에, R1.2의 릴리스 노트 작성은 연습이고 본 판은 유경험자인 팀장님이 작성하실 것이라는 안일한 생각을 했기 때문이다. 난 수련 과정이라는 생각이 컸지 않았을까 싶다. 내가 어리버리 하고 있으면 팀장님이 일필휘지로 후다닥 써서 “릴리스 노트는 이렇게 쓰는 거야” 하면서 주실 것만 같았다. 거짓말 하나도 안 보태고 바이너리를 먼저 릴리스하고 릴리스 노트는 토요일 하루 종일 작업해서 마무리하였다. 지금 생각해보면 왜 그리 철없는 생각을 한 것인지 모르겠다. 결론적으로 내겐 R1.2 릴리스는 1월 17일이었다. 사용자들은 1월 16일부터 파일을 받기 시작했을텐데… 어찌보면 1월 17일에 릴...
    Date2009.02.13 Category제품 여행 By일동차렷? Views36486 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8

Contact Cubrid

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