cubrid_ha.conf

cubrid_ha.conf 파일은 $CUBRID/conf 디렉터리에 위치하며, CUBRID의 HA의 전반적인 설정 정보를 담고 있다.

ha_node_list

CUBRID HA 그룹 내에서 사용할 그룹 이름과 failover의 대상이 되는 멤버 노드들의 호스트 이름을 명시한다. 그룹 이름과 멤버 노드들의 이름은 @ 구분자로 나눈다. 기본값은 localhost@localhost이다.

이 파라미터에서 명시한 멤버 노드들의 호스트 이름 및 해당 노드의 호스트 이름은 반드시 /etc/hosts에 등록되어 있어야 한다. ha_modeon으로 설정한 노드는 ha_node_list에 해당 노드가 반드시 포함되어 있어야 한다. CUBRID HA 그룹 내의 모든 노드는 ha_node_list의 값이 동일해야 한다. failover가 일어날 때 이 파라미터에 설정된 순서에 따라 마스터 노드가 된다.

이 파라미터는 동적으로 변경할 수 있으며, 변경하면 cubrid heartbeat reload를 실행해야 한다.

ha_replica_list

CUBRID HA 그룹 내에서 사용할 그룹 이름과 failover의 대상이 되지 않는 멤버 노드들의 호스트 이름을 명시한다. 그룹 이름과 멤버 노드들의 이름은 @ 구분자로 나눈다. 기본값은 NULL이다.

그룹 이름은 ha_node_list에서 명시한 이름과 같아야 한다. 이 파라미터에서 명시한 멤버 노드들의 호스트 이름 및 해당 노드의 호스트 이름은 반드시 /etc/hosts에 등록되어 있어야 한다. ha_modereplica으로 설정한 노드는 ha_replica_list에 해당 노드가 반드시 포함되어 있어야 한다. CUBRID HA 그룹 내의 모든 노드는 ha_node_list의 값이 동일해야 한다.

이 파라미터는 동적으로 변경할 수 있으며, 변경하면 cubrid heartbeat reload를 실행해야 한다.

ha_port_id

CUBRID HA 그룹 내의 노드들이 heartbeat 메시지를 주고 받으며 노드 장애를 감지할 때 사용할 UDP 포트 번호를 명시한다. 기본값은 59901이다.

서비스 환경에 방화벽이 있으면, 설정한 포트 값이 방화벽을 통과하도록 방화벽을 설정해야 한다.

ha_ping_hosts

슬레이브 노드에서 failover가 시작되는 순간 연결을 확인하여 네트워크에 의한 failover인지 확인할 때 사용할 호스트를 명시한다. 기본값은 NULL이다.

이 파라미터를 설정하면 불안정한 네트워크로 인해 failover가 일어나는 것을 방지할 수 있다. 여러 개의 호스트를 콜론(:)으로 구분하여 지정할 수 있다.

ha_copy_sync_mode

트랜잭션 로그의 복사본을 저장하는 모드를 설정한다. 기본값은 SYNC이다.

SYNC, SEMI-SYNC, ASYNC를 값으로 설정할 수 있다. ha_node_list에 지정한 노드의 수만큼 설정해야 하고 순서가 같아야 한다. 콜론(:)으로 구분한다.

자세한 내용은 로그 다중화를 참고한다.

ha_copy_log_base

트랜잭션 로그의 복사본을 저장할 위치를 지정한다. 기본값은 $CUBRID_DATABASES이다.

자세한 내용은 로그 다중화를 참고한다.

ha_db_list

CUBRID HA 모드로 구동할 데이터베이스 이름을 명시한다. 기본값은 NULL이다. 여러 개의 데이터베이스 이름을 명시하려면 콜론(:)으로 구분한다.

ha_apply_max_mem_size

CUBRID HA의 복제 로그 반영 프로세스가 사용할 수 있는 최대 메모리를 설정한다. 기본값은 500이다.

예시

다음은 cubrid_ha.conf 설정의 예이다.

[common]

ha_node_list=foo@apple:banana

ha_db_list=testdb

ha_copy_sync_mode=sync:semi-sync

ha_apply_max_mem_size=1000