Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 



cubrid.conf

cubrid.conf 파일은 $CUBRID/conf 디렉터리에 위치하며, CUBRID의 전반적인 설정 정보를 담고 있다. 여기에서는 cubrid.conf 중 CUBRID HA가 사용하는 파라미터를 설명한다.

ha_mode

CUBRID HA 기능을 설정하는 파라미터이다. 기본값은 off이다.

  • off : CUBIRD HA 기능을 사용하지 않는다.
  • on : CUBRID HA 기능을 사용하며, 해당 노드는 failover의 대상이 된다.
  • replica : CUBRID HA 기능을 사용하며, 해당 노드는 failover의 대상이 되지 않는다.

ha_mode 파라미터는 [@<database>] 섹션에서 재설정할 수 있으나, off만 입력할 수 있다. [@<database>] 섹션에 off가 아닌 값을 입력하면 오류가 출력된다.

ha_modeon이면 cubrid_ha.conf를 읽어 CUBRID HA를 설정한다.

이 파라미터는 동적으로 변경할 수 없으며, 변경하면 해당 노드를 다시 시작해야 한다.

log_max_archives

보존할 보관 로그 파일의 최소 개수를 설정하는 파라미터이다. 최소값은 0이며 기본값은 INT_MAX이다. 이 파라미터의 동작은 force_remove_log_archives의 영향을 받는다.

활성화된 트랜잭션이 참조하고 있는 기존 보관 로그 파일이나, HA 환경에서 슬레이브 노드에 반영되지 않은 마스터 노드의 보관 로그 파일은 삭제되지 않는다. 이에 대한 자세한 내용은 아래의 force_remove_log_archives를 참고한다.

log_max_archives에 대한 자세한 내용은 로깅 관련 파라미터를 참고한다.

force_remove_log_archives

ha_mode를 on으로 설정하여 HA 환경을 구축하려면 force_remove_log_archives를 no로 설정하여 HA 관련 프로세스에 의해 사용할 보관 로그(archive log)를 항상 유지하는 것을 권장한다.

force_remove_log_archives를 yes로 설정하면 HA 관련 프로세스가 사용할 보관 로그 파일까지 삭제될 수 있고, 이로 인해 데이터베이스 복제 불일치가 발생할 수 있다. 이러한 위험성을 감수하더라도 디스크의 여유 공간을 유지하고 싶다면 force_remove_log_archives를 yes로 설정한다.

force_remove_log_archives에 대한 자세한 내용은 로깅 관련 파라미터를 참고한다.

max_clients

데이터베이스 서버에 동시에 연결할 수 있는 클라이언트의 최대 수를 지정하는 파라미터이다. 기본값은 100이다.

CUBRID HA 기능을 사용하면 기본적으로 복제 로그 복사 프로세스와 복제 로그 반영 프로세스가 구동되므로, 해당 노드를 제외한 CUBRID HA 그룹 내 노드 수의 두 배를 고려하여 설정해야 한다. 또한 failover가 일어날 때 다른 노드에 접속하고 있던 클라이언트가 해당 노드에 접속할 수 있으므로 이를 고려해야 한다. max_clients에 대한 자세한 내용은 접속 관련 파라미터를 참고한다.

노드 간 반드시 값이 동일해야 하는 시스템 파라미터
  • log_buffer_size: 로그 버퍼 크기. 서버와 로그를 복사하는 copylogdb 간 프로토콜에 영향을 주는 부분이므로 반드시 동일해야 한다.
  • log_volume_size: 로그 볼륨 크기. CUBRID HA는 원본 트랜잭션 로그와 복제 로그의 형태와 내용이 동일하므로 반드시 동일해야 한다. 그 외 각 노드에서 별도로 DB를 생성하는 경우 cubrid createdb 옵션(--db-volume-size, --db-page-size, --log-volume-size, --log-page-size 등)이 동일해야 한다.
  • cubrid_port_id: 서버와의 연결 생성을 위한 TCP 포트 번호. 서버와 로그를 복사하는 copylogdb의 연결을 위해 반드시 동일해야 한다.
  • HA 관련 파라미터: cubrid_ha.conf에 포함된 HA 관련 파라미터는 기본적으로 동일해야 하며, 다음 파라미터는 예외적으로 노드에 따라 다르게 설정할 수 있다.
    • 레플리카 노드의 ha_mode 파라미터
    • ha_copy_sync_mode 파라미터
    • ha_ping_hosts 파라미터
예시

다음은 cubrid.conf 설정의 예이다. 특히, 로깅 관련 파라미터인 log_max_archivesforce_remove_log_archives, HA 관련 파라미터인 ha_mode의 설정에 주의한다.

max_clients=200

 # Service Parameters

[service]

service=server,broker,manager

 

 

# Server Parameters

server=testdb

data_buffer_size=512M

log_buffer_size=4M

sort_buffer_size=2M

max_clients=200

cubrid_port_id=1523

db_volume_size=512M

log_volume_size=512M

 

# HA 구성 시 추가 (Logging parameters)

log_max_archives=100

force_remove_log_archives=no

 

# HA 구성 시 추가 (HA 모드)

ha_mode=on

log_max_archives=100