Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

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

브로커별 파라미터

다음은 브로커에 개별적으로 적용되는 파라미터로 [%broker_name] 아래에 각각 작성된다.

ACCESS_LIST

ACCESS_LIST는 CUBRID 브로커로 접근을 허용하는 응용 클라이언트의 IP 주소 리스트를 저장할 파일 이름을 지정하는 파라미터이다. 210.192.33.*와 210.194.34.*인 IP 주소의 접근을 허용하려면 이를 임의의 파일(ip_lists.txt)에 저장하여 이 파라미터의 값으로 파일명을 설정한다.

ACCESS_LOG

ACCESS_LOG는 해당 브로커의 접속 로그를 저장할 것인지 지정하는 파라미터로 기본값은 ON이다. 브로커 접속 로그 파일명은 broker_name_id.access이고, $CUBRID/log/broker 디렉터리에 저장된다.

ACCESS_MODE

ACCESS_MODE는 브로커의 모드를 설정하는 파라미터로 기본값은 RW이다. 자세한 내용은 관리자 안내서의 cubrid_broker.conf를 참고한다.

APPL_SERVER

APPL_SERVER는 CUBRID 브로커가 생성하고 관리하는 브로커 응용 서버(CAS)의 종류를 지정하는 파라미터로 기본값은 CAS이다.

APPL_SERVER_MAX_SIZE

APPL_SERVER_MAX_SIZE는 CAS가 처리하는 프로세스 메모리 사용량의 최대 크기를 지정하는 파라미터로 단위는 MB이다.

이 파라미터는 진행 중인 트랜잭션이 있을 경우 사용자에 의해 정상 종료(커밋 혹은 롤백)되기를 기다렸다가 CAS를 재구동하는 동작에 영향을 준다. APPL_SERVER_MAX_SIZE_HARD_LIMITAPPL_SERVER_MAX_SIZE와 비슷하지만, 진행 중인 트랜잭션이 있을 경우 이를 강제 종료(롤백)하고 CAS를 재구동하는 동작에 영향을 준다는 점이 다르다.

APPL_SERVER_MAX_SIZE 파라미터는 Windows 버전과 Linux 버전의 기본값이 다르므로 주의한다.

Windows 버전의 CUBRID는 32비트 버전에서는 APPL_SERVER_MAX_SIZE의 기본값이 40(MB)이고, 64비트 버전에서는 80(MB)이다. 현재 프로세스의 크기가 APPL_SERVER_MAX_SIZE의 값을 초과하면, 브로커가 해당 CAS를 재구동한다.

Linux 버전의 CUBRID는 APPL_SERVER_MAX_SIZE의 기본값이 0이고, 다음의 경우에 해당 CAS를 재구동한다.

  • APPL_SERVER_MAX_SIZE의 값이 0 또는 음수인 경우: 현재 프로세스의 크기가 CAS의 초기 메모리의 2배가 될 때
  • APPL_SERVER_MAX_SIZE의 값이 양수인 경우: APPL_SERVER_MAX_SIZE의 설정 값을 초과할 때

참고 이 값을 너무 작게 설정하면 CAS가 빈번하게 재구동될 수 있으므로 주의한다. 일반적으로 APPL_SERVER_MAX_SIZE_HARD_LIMIT의 값을 APPL_SERVER_MAX_SIZE의 값보다 크게 설정한다. 자세한 내용은 APPL_SERVER_MAX_SIZE_HARD_LIMIT의 설명을 참고한다.

APPL_SERVER_MAX_SIZE_HARD_LIMIT

APPL_SERVER_MAX_SIZE_HARD_LIMIT는 CAS가 처리하는 프로세스 메모리 사용량의 최대 크기를 지정하는 파라미터로 단위는 MB이고, 기본값은 1024(MB)이다.

이 파라미터는 진행 중인 트랜잭션이 있어도 이를 강제 종료(롤백)하고 CAS를 재구동하는 동작에 영향을 준다. APPL_SERVER_MAX_SIZEAPPL_SERVER_MAX_SIZE_HARD_LIMIT와 비슷하지만, 진행 중인 트랜잭션이 있을 경우 사용자에 의해 정상 종료(커밋 혹은 롤백)되기를 기다렸다가 CAS를 재구동하는 동작에 영향을 준다는 점이 다르다.

참고 이 값을 너무 작게 설정하면 CAS가 빈번하게 재구동될 수 있으므로 주의한다.
CAS를 재구동할 때 메모리 사용량이 증가해도 트랜잭션이 정상 종료되기까지 기다리기 위해 APPL_SERVER_MAX_SIZE를 설정하고, 메모리 사용량이 허용하는 기준을 넘으면 트랜잭션을 강제 종료하기 위해 APPL_SERVER_MAX_SIZE_HARD_LIMIT를 설정한다. 따라서, 일반적으로 APPL_SERVER_MAX_SIZE_HARD_LIMIT의 값을 APPL_SERVER_MAX_SIZE의 값보다 크게 설정한다.

APPL_SERVER_PORT

APPL_SERVER_PORT는 Windows 운영체제에서만 추가하는 파라미터로 응용 클라이언트와 통신하는 CAS의 통신 포트를 지정하는 파라미터이다. Linux 운영체제에서는 응용 클라이언트와 CAS가 통신하기 위해 유닉스 도메인 소켓(unix domain socket)을 사용하므로, APPL_SERVER_PORT가 사용되지 않는다. 기본값은 BROKER_PORT 파라미터 값에 1을 더한 값으로 설정되며, 지정한 번호의 포트부터 1씩 더한 번호의 포트들이 CAS의 개수만큼 사용된다. 예를 들어, BROKER_PORT의 값이 30000이고 APPL_SERVER_PORT의 값을 설정하지 않은 상태에서 MIN_NUM_APPL_SERVER의 값이 5이면 브로커 초기 구동 시 5개의 CAS가 각각 30001~30005의 포트를 사용한다. CAS의 최대 개수가 cubrid_broker_confMAX_NUM_APPL_SERVER 파라미터에 의해 제한되므로 설정할 수 있는 CAS의 통신 포트의 개수 역시 최대 MAX_NUM_APPL_SERVER 파라미터의 설정값으로 제한된다.

Windows 운영체제에서 응용 클라이언트와 CUBRID 브로커 사이에 방화벽이 존재한다면 반드시 BROKER_PORTAPPL_SERVER_PORT에서 설정된 통신 포트를 열어야 한다.

참고 cub_master, cub_broker 프로세스의 유닉스 도메인 소켓 파일 경로를 지정하는 CUBRID_TMP 환경 변수에 대한 내용은 환경 변수 설정을 참고한다.

APPL_SERVER_SHM_ID

APPL_SERVER_SHM_ID는 CAS가 이용하는 공유 메모리 ID를 지정하기 위한 파라미터로 시스템 내에서 유일한 값이어야 한다. 기본값은 해당 브로커의 포트와 동일한 값이다.

AUTO_ADD_APPL_SERVER

AUTO_ADD_APPL_SERVER는 필요한 경우 CAS를 MAX_NUM_APPL_SERVER 값까지 자동으로 증가시킬지 설정하는 파라미터로 ON과 OFF를 가지며, 기본값은 ON이다.

BROKER_PORT

BROKER_PORT는 해당 브로커의 포트 번호를 지정하기 위한 파라미터로 시스템 내에서 유일한 값이면서 65535 이하의 값이어야 한다. query_editor의 브로커 포트는 기본값이 30000으로 설정되며, broker1의 브로커 포트는 기본값이 33000으로 설정된다.

CCI_DEFAULT_AUTOCOMMIT

CCI_DEFAULT_AUTOCOMMIT은 CCI 인터페이스 또는 CCI기반 인터페이스(PHP, ODBC, OLE DB, Perl, Python, Ruby 등)로 개발된 응용 프로그램의 자동 커밋 여부를 설정하는 파라미터로 기본값은 ON이다. 이 파라미터는 JDBC로 개발된 응용 프로그램에는 영향을 끼치지 않는다. ODBC 사용자는 CCI_DEFAULT_AUTOCOMMIT이 ON인 경우 오동작을 일으킬 수 있으므로, 반드시 OFF로 설정해야 한다.

CCI_DEFAULT_AUTOCOMMIT 파라미터의 값이 OFF인 경우 트랜잭션이 종료될 때까지 브로커 응용 서버(CAS) 프로세스를 점유한 상태가 되므로, SELECT 문 수행 시에도 fetch 완료 후 반드시 커밋을 수행할 것을 권장한다.

참고 CCI_DEFAULT_AUTOCOMMIT 파라미터는 2008 R4.0부터 지원하기 시작했고, 이 때 기본값은 OFF였다. CCI_DEFAULT_AUTOCOMMIT을 설정하지 않은 2008 R4.0 혹은 그 이전 버전 사용자는 자동 커밋 모드가 OFF이므로, 2008 R4.1 이상 버전으로 업그레이드한 사용자가 기존 응용 프로그램을 그대로 사용하고자 하는 경우, 이 값을 OFF로 설정해야 의도하지 않은 트랜잭션의 자동 커밋을 방지할 수 있다.

ERROR_LOG_DIR

ERROR_LOG_DIR은 브로커에 대한 에러 로그가 저장되는 디렉터리를 지정하는 파라미터로, 기본값은 log/broker/error_log이다. 브로커 에러 로그 파일명은 broker_ name_id.err이다.

KEEP_CONNECTION

KEEP_CONNECTION은 CAS와 응용 클라이언트 사이의 연결 방식을 지정하는 파라미터로 ON/OFF/AUTO 중 하나로 설정된다. 이 파라미터가 OFF로 설정되면 클라이언트는 트랜잭션 단위로 CAS와 연결하고, ON으로 설정되면 커넥션 단위로 CAS와 연결한다. 또한 AUTO로 설정되면 CAS의 개수가 클라이언트 개수보다 많은 경우 커넥션 단위로 연결하고, CAS의 개수가 클라이언트의 개수보다 적은 경우 트랜잭션 단위로 연결한다. 기본값은 AUTO이다.

LOG_BACKUP

LOG_BACKUP은 CUBRID 브로커가 종료될 때 브로커의 접속 로그 파일을 백업할 것인지 지정하는 파라미터이다. 기본값은 OFF이며, CUBRID 브로커가 종료될 때 $CUBRID/log/broker에 있는 접속 로그 파일(broker_name.access)이 삭제된다. ON으로 설정되면 CUBRID 브로커가 종료될 때 접속 로그 파일이 다른 이름으로 백업된다. 이때, 접속 로그의 백업 파일명은 broker_name.access.yyyymmdd.hhmi가 된다.

LOG_DIR

LOG_DIR은 SQL 로그가 저장되는 디렉터리를 지정하는 파라미터로, 기본값은 log/broker/sql_log이다. SQL 로그가 기록되는 파일명은 broker_name_id.sql.log이다.

LONG_QUERY_TIME

LONG_QUERY_TIME은 장기 실행 질의(long-duration query)로 판단될 질의 실행 시간을 설정하는 파라미터이다. 기본값은 60(초)이고 소수점을 사용하여 밀리초(msec) 단위의 값을 설정할 수 있다. 예를 들어 500밀리초로 설정하려면 값을 0.5로 설정한다. 파라미터 값을 0으로 설정하면 장기 실행 질의를 판단하지 않는다.

LONG_TRANSACTION_TIME

LONG_TRANSACTION_TIME은 장기 실행 트랜잭션(long-duration transaction)으로 판단될 트랜잭션의 실행 시간을 설정하는 파라미터이다. 기본값은 60(초)이고 소수점을 사용하여 밀리초(msec) 단위의 값을 설정할 수 있다. 예를 들어 500밀리초로 설정하려면 값을 0.5로 설정한다. 파라미터 값을 0으로 설정하면 장기 실행 트랜잭션을 판단하지 않는다.

MAX_NUM_APPL_SERVER

MAX_NUM_APPL_SERVER는 해당 브로커에 동시 접속할 수 있는 CAS의 최대 개수를 설정하는 파라미터로, 기본값은 40이다.

DBCP 또는 WAS 같은 미들웨어 사용으로 커넥션 풀(connection pool)을 유지하는 환경에서는 MAX_NUM_APPL_SERVER 파라미터 값을 커넥션 풀의 개수와 동일하게 설정해야 한다.

MIN_NUM_APPL_SERVER

MIN_NUM_APPL_SERVER는 해당 브로커에 대한 연결 요청이 없더라도 기본적으로 대기하고 있는 CAS 프로세스의 최소 개수를 설정하는 파라미터로, 기본값은 5이다.

MAX_PREPARED_STMT_COUNT

MAX_PREPARED_STMT_COUNT은 사용자(응용 프로그램) 접속 당 허용하는 prepared statement의 개수를 제한하는 파라미터이다. 기본값은 2000이며 최소값은 1이다. 이 파라미터 값을 사용자가 적절히 지정함으로써, 응용 프로그램의 작성 실수로 인해 시스템이 허용하는 메모리를 초과하여 prepared statement 문을 생성하는 것을 사전에 방지할 수 있다.

MAX_QUERY_TIMEOUT

MAX_QUERY_TIMEOUT은 질의 수행의 타임아웃을 설정하는 브로커 파라미터로, 질의 수행을 시작한 후 지정 시간을 초과하면 수행하던 질의를 멈추고 롤백한다.

기본값은 0(초)이며, 무한 대기를 의미한다. 값의 범위는 0부터 86400초(1일)까지이다. 응용 프로그램에서 질의 타임아웃을 설정한 경우, 0을 제외하고 MAX_QUERY_TIMEOUT 값과 응용 프로그램의 질의 타임아웃 값 중 작은 값을 적용한다.

참고 CCI 응용 프로그램의 질의 타임아웃 설정은 cci_connect_with_url 함수, cci_set_query_timeout 함수를 참고하며, JDBC 응용 프로그램의 질의 타임아웃 설정은 setQueryTimeout 메서드를 참고한다.

MAX_STRING_LENGTH

MAX_STRING_LENGTH는 bit, varbit, char, varchar, nchar, nchar varying인 데이터 타입에 대해서 최대 문자열 길이를 지정하는 파라미터이다. 기본값인 -1로 설정되면 데이터베이스에서 정의된 문자열 길이가 그대로 사용되고, 파라미터의 값이 100으로 설정되면 임의의 속성이 varchar(1000)으로 정의되었어도 100으로 정의된 것처럼 동작한다.

PREFERRED_HOSTS

PREFERRED_HOSTS는 브로커의 모드를 PHRO로 설정하면 반드시 설정해야 하는 파라미터로 기본값은 NULL이다. 자세한 내용은 관리자 안내서의 cubrid_broker.conf를 참고한다.

SERVICE

SERVICE는 해당 브로커의 구동 여부를 결정하기 위한 파라미터로, ON 또는 OFF의 값으로 설정된다. 기본값은 ON이며, 이 파라미터가 ON으로 설정된 경우에만 해당 브로커를 구동할 수 있다.

SESSION_TIMEOUT

SESSION_TIMEOUT은 응용 클라이언트에 대한 CAS의 세션 타임 아웃 값을 설정하는 파라미터이다. 트랜잭션 시작 이후 커밋 혹은 롤백하지 않은 채로 아무런 요청이 없는 상태에서 이 파라미터가 설정한 시간을 초과하면 해당 응용 클라이언트와 CAS 간의 접속이 종료된다. 기본값은 300(초)이다.

SLOW_LOG

SLOW SQL 로깅 여부를 지정하는 파라미터이다. 기본값은 ON이다. 이 값이 ON이면 LONG_QUERY_TIME 시간을 초과한 장기 실행(long-duration query) 질의문 또는 에러가 발생한 질의문이 SLOW SQL 로그 파일에 저장된다. 생성되는 파일의 이름은 broker_name_id.slow.log이며, SLOW_LOG_DIR 이하에 생성된다.

SLOW_LOG_DIR

SLOW SQL 로그 파일이 생성되는 디렉터리를 지정한다. 기본값은 log/broker/sql_log이다.

SOURCE_ENV

SOURCE_ENV는 브로커 각각에 대해 개별적으로 운영체제 환경 변수를 설정할 수 있는 파일을 정하는 파라미터로, 파일 확장자는 반드시 env여야 한다. cubrid.conf에서 지정하는 모든 파라미터는 환경 변수를 통해서도 설정할 수 있다. 예를 들어, cubrid.conf에서 lock_timeout_in_secs는 환경 변수 CUBRID_LOCK_TIMEOUT_IN_SECS로 지정할 수 있다. 또 다른 예로, broker1에서만 데이터 정의문 수행을 차단하려면 SOURCE_ENV에서 지정한 파일에 CUBRID_BLOCK_DDL_STATEMENT를 1로 설정하면 된다.

환경변수가 있으면 cubrid.conf보다 우선한다. 기본값은 cubrid.env이다.

SQL_LOG

SQL_LOG는 응용 클라이언트의 요청에 따라 CAS가 처리한 SQL 문에 대해 어떤 로그를 기록할 것인지 결정하는 파라미터로 기본값은 ON이다. 이 파라미터가 ON으로 설정되면, 모든 로그를 기록한다. SQL 로그가 기록되는 파일명은 broker_name_id.sql.log이며, 설치 디렉터리의 log/broker/sql_log 디렉터리에 생성된다. 파라미터 값은 다음과 같다.

  • OFF : 모든 로그를 기록하지 않음
  • ERROR : 에러가 발생한 질의에 대한 로그만 기록
  • NOTICE : 설정된 시간을 초과한 장기 실행 질의/트랜잭션의 로그, 에러가 발생한 질의에 대한 로그 기록
  • TIMEOUT : 설정된 시간을 초과한 장기 실행 질의/트랜잭션의 로그 기록
  • ON/ALL : 모든 로그 기록
SQL_LOG_MAX_SIZE

SQL_LOG_MAX_SIZE는 SQL 로그 파일과 SLOW SQL 로그 파일의 최대 크기를 지정하는 파라미터로 기본값은 100,000(KB)이다. SQL_LOG 파라미터가 ON으로 설정된 경우에 생성되는 SQL 로그 파일의 크기가 파라미터의 설정값에 도달하면 broker_name_id.sql.log.bak이 생성된다. SLOW_LOG 파라미터가 ON으로 설정된 경우에 생성되는 SLOW SQL 로그 파일의 크기가 이 파라미터의 설정값에 도달하면 broker_name_id.slow.log.bak이 생성된다.

STATEMENT_POOLING

STATEMENT_POOLING은 statement 풀링 기능의 사용 여부를 설정하는 파라미터로 기본값은 ON이다.

CUBRID는 트랜잭션이 커밋 또는 롤백되는 경우, 해당 클라이언트 세션에 존재하는 prepared statement의 핸들을 모두 close하는데, STATEMENT_POOLING의 값이 ON인 경우에는 prepared statement의 핸들을 지속적으로 풀에 유지하므로 이를 재사용할 수 있다. 따라서, prepared statement를 재사용하는 일반 응용 프로그램 또는 statement pooling이 구현된 DBCP와 같은 라이브러리가 적용된 환경에서는 반드시 기본 설정(ON)을 유지해야 한다.

STATEMENT_POOLING의 값이 OFF인 상태에서 트랜잭션 커밋 또는 종료 이후 해당 prepared statement를 실행하면 다음과 같은 메시지가 출력된다.

Caused by: cubrid.jdbc.driver.CUBRIDException: Attempt to access a closed Statement.

TIME_TO_KILL

TIME_TO_KILL은 자동 추가된 CAS 중 유휴 상태의 CAS를 제거하기 위한 기준 시간을 설정하는 파라미터로 기본값은 120(초)이다. 유휴 상태란 작업이 없이 쉬고 있는 상태로, 이 상태가 TIME_TO_KILL 시간 이상 유지되면 해당 CAS를 제거한다.

이 파라미터에 설정된 값은 자동 추가된 CAS에만 적용되므로 AUTO_ADD_APPL_SERVER 파라미터가 ON인 경우에만 적용된다. TIME_TO_KILL 파라미터의 값을 너무 작게 설정하면 CAS의 제거/추가가 너무 빈번하게 발생할 수 있으므로 주의한다.