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 | 



로깅 관련 파라미터

다음은 CUBRID 데이터베이스의 백업과 복구에 이용되는 로그에 관련된 파라미터로 각 파라미터의 타입과 설정 가능한 값의 범위는 다음과 같다.

파라미터 이름

타입

기본값

최소값

최대값

adaptive_flush_control

bool

yes

 

 

background_archiving

bool

yes

 

 

checkpoint_every_npages

int

10000

10

 

checkpoint_interval_in_mins

int

720

1

 

force_remove_log_archives

bool

yes

 

 

log_buffer_size

int

2M

192K

 

log_max_archives

int

INT_MAX

0

 

max_flush_pages_per_second

int

10000

1

INT_MAX

page_flush_interval_in_msecs

int

0

-1

 

sync_on_nflush

int

200

1

INT_MAX

adaptive_flush_control

adaptive_flush_control는 내려쓰기(flush) 작업 중에 50ms마다 작업 상태에 따라 내려쓰기할 용량(flush capacity)을 자동 조정하는 파라미터이며, 기본값은 yes이다. 즉, 특정 시점에 INSERT 또는 UPDATE 연산이 집중되어 내려쓰기한 페이지 수가 max_flush_pages_per_second 파라미터 값에 도달하면 이 용량을 증가시키고, 이에 도달하지 못하면 이 용량을 감소시킨다. 이처럼 워크로드에 따라 주기적으로 내려쓰기 용량을 조정하여 I/O 부하를 분산할 수 있다.  

background_archiving

background_archiving은 특정 시점마다 주기적으로 임시 보관 로그를 생성하도록 하는 파라미터로서, 보관 로그 작업으로 인한 디스크 I/O 부하를 분산시키고자 할 때 유용하다. 기본값은 yes이다.

checkpoint_every_npages

checkpoint_every_npages는 체크포인트가 수행되는 주기를 로그 페이지 단위로 설정하는 파라미터이며, 기본값은 10,000이다.

특정 시간대에 INSERT/UPDATE가 집중되는 서비스 환경에서는 checkpoint_every_npages 파라미터의 설정값을 작게 설정하여 체크포인트 시점에 I/O 부하를 분산할 수 있다.

체크포인트는 특정 시점에 데이터 버퍼에 있는 모든 수정된 페이지를 데이터베이스 볼륨(디스크)에 기록하는 작업이며, 데이터베이스 장애 발생 시 최근 체크포인트 시점까지 데이터를 복구할 수 있다. 다만, 체크포인트 작업으로 인해 디스크로 저장되는 로그 파일의 양이 많을 경우 디스크 I/O가 발생하여 DB 운영에 영향을 끼칠 수 있으므로 체크포인트 주기를 적절하게 설정해야 한다.

체크포인트 주기 설정과 관련된 파라미터는 checkpoint_interval_in_minscheckpoint_every_npages이며, checkpoint_interval_in_mins 파라미터의 설정값이 경과된 시점 또는 로그 페이지 수가 checkpoint_every_npages 파라미터의 설정값에 도달하는 시점마다 체크포인트 작업이 주기적으로 수행된다.

checkpoint_interval_in_mins

checkpoint_interval_in_mins는 체크포인트가 수행되는 주기를 분 단위로 설정하는 파라미터이며, 기본값은 720이다.

force_remove_log_archives

force_remove_log_archiveslog_max_archives로 지정한 개수의 최근 보관 로그(log archive) 파일을 제외한 나머지 파일의 삭제 허용 여부를 지정하는 파라미터로서, 기본값은 yes이다.

파라미터 값을 yes로 설정하면, log_max_archives로 지정한 개수의 최근 보관 로그 파일을 제외한 나머지 파일이 삭제된다.

파라미터 값을 no로 설정하면, 보관 로그 파일이 삭제되지 않지만, 예외적으로 ha_mode를 on으로 설정하면 HA 관련 프로세스에 필요한 보관 로그 파일과 log_max_archvies로 지정한 개수의 최근 보관 로그 파일을 제외한 나머지 파일이 삭제된다.

CUBRID HA 환경을 구축하고자 하는 사용자는 환경 설정을 참고한다.

log_buffer_size

log_buffer_size는 메모리에 캐시되는 로그 버퍼의 크기를 설정하는 파라미터이다. K, M, G, T로 단위를 설정할 수 있으며, 각각 KB(kilobytes), MB(megabytes), GB(gigabytes), TB(terabytes)를 의미한다. 단위를 생략하면 바이트 단위가 적용된다. 기본값은 2M이다.

log_buffer_size 파라미터의 설정값이 크면 데이터베이스 수정 연산이 많고, 길고 큰 트랜잭션이 많은 환경에서는 디스크 I/O가 감소되어 성능이 향상될 수 있다. CUBRID가 설치된 시스템의 메모리 크기 및 작업 연산의 크기를 고려하여 적당한 값으로 설정할 것을 권장한다.

  • 필요한 메모리 크기 = 로그 버퍼 크기(log_buffer_size)
log_max_archives

log_max_archives는 보존할 보관 로그 파일의 최대 개수를 설정하는 파라미터이다. 최소값은 0이며, 기본값은 INT_MAX이다. 이 파라미터는 force_remove_log_archives의 설정에 따라 동작이 달라질 수 있다.

예를 들어, cubrid.conflog_max_archives가 3이고 force_remove_log_archives가 yes이면, 최근 3개의 보관 로그 파일만 유지하고 네 번째 보관 로그가 생성될 때에는 이전에 생성된 보관 로그 파일을 자동으로 삭제한다. 이때 삭제되는 보관 로그 파일의 정보는 *_lginf 파일에 기록된다.

하지만 활성화된 트랜잭션이 기존 보관 로그 파일을 여전히 참조하고 있다면, 해당 보관 로그 파일은 삭제되지 않는다. 즉, 어떤 트랜잭션이 첫 번째 보관 로그 파일이 생성되는 시점에서 시작되어 다섯 번째 보관 로그 파일이 생성되는 시점까지도 종료되지 않았다면 첫 번째 보관 로그 파일은 삭제되지 않는다.

CUBRID HA 환경을 구축하고자 하는 사용자는 환경 설정을 참고한다.

max_flush_pages_per_second

max_flush_pages_per_second는 버퍼로부터 디스크로 내려쓰기(flush) 작업을 수행할 때, 내려쓰기할 최대 용량 (flush capacity)을 설정하기 위한 파라미터이며, 기본값은 10000이다. 즉, 이 파라미터 설정을 통해 1초당 내려쓰기할 최대 용량을 제어하여, 특정 시점에 I/O 부하가 집중되는 현상을 방지할 수 있다.

만약, 특정 시점에 INSERT 또는 UPDATE 연산이 집중되어 이 파라미터에 의해 설정된 최대 용량에 도달하면, 로그 페이지만 내려쓰기를 수행하고 데이터 페이지는 더 이상 디스크로 내려쓰지 않는다. 따라서, 이 파라미터는 서비스 환경의 워크로드를 고려하여 적절한 값을 설정해야 한다.

page_flush_interval_in_msecs

page_flush_interval_in_msecs는 데이터 버퍼에 존재하는 더티 페이지를 디스크로 저장(flush)하는 주기를 밀리초(msec) 단위로 설정하는 파라미터이며, 기본값은 0이다. 최소값인 -1로 설정하면 0으로 설정했을 때와 똑같이 동작한다.

이는 I/O 부하, 버퍼 동시성과 관련있는 파라미터로서, 서비스 환경의 워크로드를 고려하여 파라미터 값을 설정해야 한다.

sync_on_nflush

sync_on_nflush는 버퍼로부터 데이터 페이지 및 로그 페이지를 내려쓰기한 후, 운영 시스템의 FILE I/O와 동기화를 수행하는 주기를 페이지 단위로 설정하는 파라미터이며, 기본값은 200이다. 즉, 200페이지만큼 내려쓰기 작업이 수행될 때마다 CUBRID 서버는 운영 체제의 FILE I/O와 동기화를 수행한다. I/O 부하와 관련된 파라미터이다.