데이터베이스 서버 설정
▪ 큐브리드 서버 관련 파라미터는 cubrid.conf 파일에서 설정
▪ cubrid.conf 파일은 [service], [common], [@{데이터베이스 이름}], [standalone]으로 구성됨
cubrid.conf 파일 구성
▪ [service]: 큐브리드 서비스 시작 관련 파라미터
▪ [common]: 전체 데이터베이스에 공통으로 적용되는 파라미터
▪ [@{데이터베이스 이름}]: 각각의 데이터베이스에 개별적으로 적용되는 파라미터
▪ [standalone]: cubrid 유틸리티가 독립 모드(stand-alone, --SA-mode)로 구동할 때 사용되는 파라미터
- 큐브리드 9.3부터 추가됨
- cubrid 유틸리티는 cubrid로 시작하는 명령어들을 말함 ex) cubrid createdb, cubrid loaddb, cubrid backupdb
cubrid.conf 파일 파라미터
▪ data_buffer_size: 캐싱되는 데이터 버퍼의 사이즈
- 값을 크게하면 캐싱되는 데이터가 많아져 디스크 I/O 비용을 줄일 수 있음
- 하지만 너무 크게 설정하면, 시스템 메모리가 점유되어 운영체제에 의해 스와핑 발생
- 표준적으로 메모리 영역의 40~60% 정도로 설정
▪ log_buffer_size: 로그 버퍼의 사이즈
▪ sort_buffer_size: 정렬을 수행하는 질의에서 사용하는 버퍼의 사이즈
- 정렬을 요청하는 클라이언트마다 정렬 버퍼 할당, 정렬이 완료되면 해제
- 인덱스를 생성하는 경우 정렬 버퍼가 많이 필요 -> 정렬 버퍼를 늘리는 것이 좋음, 하지만 데이터베이스 운영
중에는 불필요한 많은 메모리를 점유할 수도 있어 다시 줄이는 것이 좋음
▪ max_clients: 큐브리드 서버 프로세스에 동시에 접속 가능한 클라이언트의 최대 개수
- 클라이언트는 브로커의 CAS, CSQL, HA 복제 관련 프로세스, cubrid 유틸리티를 의미
- 응용프로그램의 최대 개수보다 크게 설정해야함
- 클수록 메모리 사용량이 증가하므로 적절한 값 설정
▪ cubrid_port_id: 큐브리드 마스터 프로세스가 사용하는 포트 번호
- 해당 포트는 큐브리드 마스터 프로세스와 브로커 프로세스가 통신할 때 사용
- 응용프로그램은 CAS 프로세스와 통신하므로 응용프로그램에서 사용하는 포트는 cubrid_broker.conf
파일의 BROKER_PORT 파라미터로 설정
▪ db_volume_size: 영구적 및 일시적 볼륨 파일 생성시 디폴트 크기
▪ log_volume_size: 로그 볼륨 파일 생성시 디폴트 크기
▪ log_max_archives: 보관 로그의 최대 개수
- 특정 시점으로 복구하려면 해당 시점이 보관 로그에 보존되어야 하므로 이 값을 크게 설정
브로커 설정
▪ 큐브리드 브로커 관련 파라미터는 cubrid_broker.conf 파일에서 설정
▪ cubrid_broker.conf은 [broker], [%브로커이름]으로 구성
cubrid_broker.conf 파일 구성
▪ [broker]: 모든 브로커에 공통으로 적용되는 파라미터
▪ [%브로커 이름]: 각 브로커에 개별적으로 적용되는 파라미터
cubrid_broker.conf 파일 파라미터
▪ MASTER_SHM_ID: 큐브리드 브로커가 사용하는 공유 메모리 아이디, 시스템에서 유일한 값
▪ SERVICE: 해당 브로커의 구동 여부, ON 또는 OFF
▪ BROKER_PORT: 해당 브로커에서 사용하는 포트 번호
▪ MIN_NUM_APPL_SERVER: 해당 브로커에서 구동되는 CAS 프로세스의 최소 개수, 브로커를 처음 구동할 때 해당 개수만큼 CAS 프로세스를 구동
▪ MAX_NUM_APPL_SERVER: 해당 브로커에서 구동되는 CAS 프로세스의 최대 개수
- MIN_NUM_APPL_ SERVER로 지정한 개수보다 많은 연결 요청이 들어오면 CAS 프로세스 개수를 늘림
- 최대 개수를 초과하면 진행 중인 트랜잭션이 종료될 때까지 기다렸다가 CAS 프로세스 할당
브로커의 CAS 개수
▪ 데이터베이스 서버에 접속하는 모든 브로커의 MAX_NUM_APPL_SERVER 파라미터값의 합은 cubrid.conf 파일에서 설정한 max_clients 파라미터의 값보다 작아야 함
▪ 또한 브로커가 실행되었을 때 메모리 가용량이 충분한지 검토해야함
▪ 평상시에는 50개, 최대 100개 CAS가 응용프로그램의 동시 접속을 처리하는 경우 -> MIN_NUM_APPL_SERVER=50, MAX_NUM_APPL_SERVER=100, max_clients=120 정도로 설정
▪ max_clients을 MAX_NUM_APPL_SERVER 보다 여유있게 설정하는 이유 -> 데이터베이스 서버 프로세스에는 CAS 외에도 복제 로그 복사 프로세스(copylogdb), 복제 로그 반영 프로세스(applylogdb) 등 HA 관련 프로세스와 csql 등의 명령 프로세스가 데이터베이스 서버로의 연결을 사용하기 때문
CAS 프로세스 메모리 사용 설정
▪ 브로커당 CAS 프로세스의 최대 개수를 설정할 때는 CAS 프로세스당 필요한 메모리 공간을 고려해 값을 설정해야 함
CAS 프로세스가 사용하는 메모리 공간 확인
▪ 'cubrid broker status' 명령어로 프로세스가 차지하는 메모리 공간 확인
▪ PSIZE 값이 프로세스가 차지하는 메모리 공간, 초기 구동 시 대략 50MB 정도
▪ 대부분은 공유 메모리에 의해 공유되는 공간, 트랜잭션 수행 후 증가한 만큼이 실제 사용하는 메모리 공간
▪ CAS 프로세스의 PSIZE 값이 트랜잭션 수행 후 값이 50MB에서 70MB된 경우 -> 해당 CAS 프로세스가 실제로 사용하는 메모리는 20MB
$ cubrid broker status # 프로세스가 차지하는 메모리 공간 확인
CAS 프로세스가 사용하는 메모리 공간의 최대 크기 지정
▪ cubrid_broker.conf 파일의 APPL_SERVER_MAX_SIZE 파라미터로 해당 CAS 프로세스가 사용하는 메모리 공간의 최대 크기를 지정할 수 있음
▪ 이때 사용하는 메모리의 기준은 cubrid broker status 명령어의 결과인 PSIZE 값
▪ CAS 프로세스의 PSIZE 값이 설정한 메모리 공간의 최대 크기를 넘으면, 진행 중이던 트랜잭션이 모두 수행된 후 해당 CAS 프로세스를 재시작
▪ 리눅스에서 기본값은 0이며, 이 경우 CAS 프로세스의 PSIZE 값이 초기 구동 시 PSIZE 값의 두 배가 되면 해당 CAS 프로세스를 재시작
▪ APPL_SERVER_MAX_SIZE_HARD_LIMIT는 APPL_SERVER_MAX_SIZE와 비슷하지만 설정한 메모리 공간의 최대 크기를 넘으면 진행 중인 트랜잭션을 무시하고 CAS 프로세스를 재시작
CAS 로그 파일
▪ CAS 로그 파일이 정해진 크기를 넘으면 {로그명}.bak 파일로 변경되고 신규 로그 파일이 생성됨
▪ {로그명}.bak 파일은 최신 1개만 유지
▪ CAS의 로그 파일 크기는 cubrid_broker_conf 파일의 SQL_LOG_MAX_SIZE 파라미터 값
'DBMS > CUBRID' 카테고리의 다른 글
[CUBRID] 큐브리드 java 연동하기 (intelliJ) (0) | 2024.05.13 |
---|---|
[CUBRID] 큐브리드 CSQL (0) | 2024.05.09 |
[CUBRID] 큐브리드 데이터베이스 볼륨 (0) | 2024.05.08 |
[CUBRID] 큐브리드 프로세스 명령어 (0) | 2024.05.08 |
[CUBRID] 큐브리드 프로세스 (0) | 2024.05.07 |