Skip to end of metadata
Go to start of metadata

 

 

 

버전


ALTIBASE HDB 모든 버전

 

 

 

원인


ALTIBASE 메모리 테이블스페이스의 경우는 모든 메모리 테이블스페이스의 합산이 $ALTIBASE_HOME/conf/altibase.properties 에서 MEM_MAX_DB_SIZE를 초과할 수 없습니다. 이 에러메시지는 모든 공간이 소진되어 발생합니다.

 

MEM_MAX_DB_SIZE란?


  • 물리 메모리에 저장되는 메모리 테이블스페이스(메모리 테이블 또는 메모리 데이터)로 사용할 수 있는 최대 메모리 크기를 의미합니다.
  • 모든 메모리 테이블스페이스를 합한 전체 사용량에 대한 제약입니다.
  • 메모리 테이블스페이스 각각이 사용할 수 있는 최대 크기가 아닙니다.
  • 메모리 테이블에 생성한 인덱스 크기는 포함되지 않습니다.
  • 변경 트랜잭션 수행 시 발생하는 과거 데이터도 포함됩니다. 
    변경 트랜잭션이 수행될 경우 트랜잭션이 종료되기 전까지 과거 데이터를 유지하는데(MVCC기법), 메모리 테이블의 경우 메모리 테이블 내에 레코드의 복제본을 생성합니다. 
  • 메모리 테이블스페이스 생성 시 최대값을 지정하지 않으면 MEM_MAX_DB_SIZE 설정 값만큼 자동 확장됩니다.

메모리 사용율 조회 방법


위의 조회 결과  ALLOC_SIZE가 MEM_MAX_DB_SIZE까지 도달하였을 때 'Too many pages are allocated' 에러가 발생 합니다.

 

 

조치 방법


아래 에러가 발생하지 않게 하기 위해서는 $ALTIBASE_HOME/conf/altibase.properties 에서 MEM_MAX_DB_SIZE 프로퍼티값을 늘려주셔야 합니다.

이 값을 늘려주면 알티베이스 DB Size는 최대 이 사이즈까지 증가할 수 있습니다. 프로퍼티 수정 후 알티베이스를 재구동 해주셔야 적용됩니다.

조치 이후에는 어떤 이유로 메모리 테이블스페이스의 사용량이 증가 하였는지 각 테이블 별 사용량의 조회나 대량 변경작업등이 발생하지 않았는지 확인하여 조치할 필요가 있습니다.

변경 방법

  1. 알티베이스 서버 중지

     

    $ server stop
  2. altibase.properties 파일 변경

    알티베이스 서버 프로퍼티 파일($ALTIBASE_HOME/conf/altibase.properties) 에서 MEM_MAX_DB_SIZE 를 변경 후 저장합니다.

     

    $ vi $ALTIBASE_HOME/conf/altibase.properties
    MEM_MAX_DB_SIZE        = 2G # MEM_MAX_DB_SIZE
  3. 알티베이스 서버 구동

     

    $ server start

 

 

 

변경시 유의사항



디스크 공간

메모리 테이블스페이스는 백업 용도로 두 벌의 '메모리 체크포인트 이미지 파일'을 디스크에 저장합니다. 그래서 메모리 데이터 사용량보다 보다 두 배의 디스크 공간이 필요합니다.

MEM_MAX_DB_SIZE 를 크게 설정하면 디스크 사용량도 증가하므로 MEM_MAX_DB_SIZE 변경 전에 디스크 공간을 여유있게 확보해야 합니다. 

예) MEM_MAX_DB_SIZE 가 60G 일 경우, 120G 의 디스크 공간이 필요. 

 

사용자 환경 설정 (Linux/Unix)

ulimit -a 로 수행하여 아래 설정들이 OS 에서 허용하는 최대 값으로 설정되어 있는 지 확인해야 합니다.

max memory size
virtual memory

 

커널 파라미터(AIX, HP-UX)

AIX 경우 /etc/security/limits 파일 내용에서 data, rss, fsize등에 대해서 -1로 설정이 되어 있는지 확인합니다.
HP의 경우 kctune을 통해 maxdsiz_64bit 값이 충분히 크게 설정 되어 있는지 확인합니다. maxdsiz_64bit 값이 ALTIBASE의 property의 MEM_MAX_DB_SIZE값보다 작을 시에도 'Too many pages are allocated' 에러가 발생할 수 있으므로 root 계정으로 ALTIBASE의 property의 MEM_MAX_DB_SIZE보다 크게 설정해야 합니다.
Linux, SunOS 는 해당 없습니다.

 

 

참고자료


 

 

 

 

  • No labels