본문으로 건너뛰기

Altibase 모니터링

이제 모든 관련 문서를 확인했으므로 종합적인 답변을 작성하겠습니다.

exemONE Altibase 데이터베이스 모니터링 상세 가이드


1. 지원 버전

참고 문서: Altibase 모니터링 지원 버전, DB Agent 지원 환경

Altibase 버전지원 여부비고
Altibase 6.1✅ 지원별도 ODBC 드라이버 등록 필요
Altibase 6.3 이상✅ 지원v3.0.506.15 버전부터 지원
Altibase 7.1✅ 지원DB기술본부와 협의하여 개발 기준 버전
  • DB Agent 지원 환경 문서에서는 Altibase 6.1 이상으로 명시되어 있습니다.
  • Altibase 7.1 기준으로 DB기술본부와 협의하여 개발되었으며, Altibase 6.3 이상은 v3.0.506.15 버전부터 지원됩니다.

Altibase 6.1, 6.3 드라이버 적용 방법

참고 문서: Altibase 6.1 드라이버 적용 방법

Altibase 6.1, 6.3 사용 시 별도 ODBC 드라이버를 DB-Agent에 등록해야 모니터링이 가능합니다.

Docker 모드 실행 시

  1. 전달받은 T209934_libaltibase_odbc-64bit-ul641.so 파일을 $EXEMONE_HOME/containers/exemone-db-agent/libs 디렉토리에 복사
  2. 파일명을 libaltibase_odbc-64bit-ul64.so로 변경
  3. docker-compose.yml 파일의 db-agent 모듈 볼륨 항목에 경로 추가:
$EXEMONE_HOME/containers/exemone-db-agent/libs/libaltibase_odbc-64bit-ul64.so:/usr/local/lib/altibase/libaltibase_odbc-64bit-ul64.so

  1. db-agent 모듈 재시작:
$EXEMONE_HOME/scripts/restart db-agent

Binary 모드 실행 시

  1. 전달받은 드라이버 파일을 $EXEMONE_HOME/libs 디렉토리에 복사
  2. 파일명을 libaltibase_odbc-64bit-ul64.so로 변경
  3. docker-compose.yml 파일에 볼륨 경로 추가:
$EXEMONE_HOME/libs/libaltibase_odbc-64bit-ul64.so:/usr/local/lib/altibase/libaltibase_odbc-64bit-ul64.so
  1. db-agent 모듈 재시작:
$EXEMONE_HOME/.onctl restart db-agent

2. 필수 권한

참고 문서: Altibase 모니터링 권한

2-1. 기본 모니터링 권한

권한설명
CREATE SESSIONDB 접속 권한
SELECT ANY TABLE모든 테이블(SYSTEM_, V$)에 대한 SELECT 권한

지원 버전: 6.3 이상

권한 부여 SQL 예시

-- 모니터링 계정에 기본 권한 부여
GRANT CREATE SESSION TO exemone;
GRANT SELECT ANY TABLE TO exemone;

2-2. Kill Session 권한

조건설명
SYS 계정 필수Altibase는 Kill Session이 SYS 계정만 가능
  • exemone 계정으로는 Kill Session이 불가하므로, Kill Session 기능을 사용하려면 모니터링 계정을 SYS 계정으로 등록해야 합니다.

2-3. Plan 조회 추가 권한

구문 유형필요 권한
SELECT기본 권한으로 조회 가능 (추가 권한 불필요)
UPDATEUPDATE ANY TABLE
DELETEDELETE ANY TABLE
INSERTINSERT ANY TABLE
EXECUTE절 내 함수 사용EXECUTE ANY PROCEDURE

또는 ALL PRIVILEGES를 부여하여 모든 권한을 한번에 설정할 수 있습니다.

-- DML Plan 조회를 위한 추가 권한 부여
GRANT DELETE ANY TABLE TO exemone;
GRANT INSERT ANY TABLE TO exemone;
GRANT UPDATE ANY TABLE TO exemone;
GRANT EXECUTE ANY PROCEDURE TO exemone;

-- 또는 전체 권한 부여
GRANT ALL PRIVILEGES TO exemone;

3. 사전 설정

참고 문서: Altibase 모니터링 사전 설정

3-1. SQL 수행 시간 수집 설정

파라미터기본값권고값설명
timed_statistics0 (비활성화)1 (활성화)수행되는 모든 SQL문의 수행 시간을 v$statement에 기록
ALTER SYSTEM SET timed_statistics = 1;
  • 기본값 0에서는 SQL 수행 시간이 기록되지 않으므로, 반드시 1로 변경해야 SQL 수행 시간 데이터를 수집할 수 있습니다.

3-2. Kill Session 설정

  • Altibase는 Kill Session이 SYS 계정만 가능합니다.
  • Kill Session 기능을 사용하려면 exemone 계정이 아닌 SYS 계정으로 모니터링 인스턴스를 등록해야 합니다.

4. Plan 조회 방법

참고 문서: Altibase Plan 조회 스펙

4-1. Plan 조회 동작 방식

Altibase의 Plan 조회는 아래 SQL을 순차적으로 실행하여 수행됩니다:

ALTER SESSION SET EXPLAIN PLAN = ONLY;
:SQL;
ALTER SESSION SET EXPLAIN PLAN = ON;

4-2. 기본 스펙

  • SELECT 구문은 별도 추가 권한 없이 Plan 조회가 가능합니다.

4-3. DML Plan 조회 시 필요 권한

UPDATE, DELETE, INSERT, MERGE 구문의 Plan 조회가 필요한 경우, 모니터링 계정에 아래 권한을 부여해야 합니다:

권한대상 구문
DELETE ANY TABLEDELETE 구문
INSERT ANY TABLEINSERT 구문
UPDATE ANY TABLEUPDATE 구문

또는 ALL PRIVILEGES로 전체 권한 부여

4-4. Plan 조회 불가 구문

(1) 예외 처리된 구문 (EXPLAIN PLAN 옵션과 무관하게 실제 실행되는 구문)

  • CREATE TABLE, CREATE PROCEDURE, CREATE QUEUE, ALTER, DROP, TRUNCATE, EXECUTE, LOCK, GRANT

(2) 개발 스펙상 Plan 제공 대상에서 제외된 구문

  • MOVE, DEQUEUE, ENQUEUE

4-5. Binary 환경에서 Plan 조회 실패 시 조치 방법

참고 문서: Altibase Binary 환경에서 Plan 조회 실패하는 현상

바이너리 환경에서 Altibase SQL Plan 조회 시 'no such file or directory' 로그가 확인되며 실패하는 경우:

원인: 바이너리 환경 내 isql 파일 누락

조치 방법:

Step 1) isql 파일 업로드 및 적용

$ mkdir {EXEMONE_HOME 경로}/services/exemone-db-agent/bin
$ mv {isql tar.gz 압축 해제한 경로}/isql {EXEMONE_HOME 경로}/services/exemone-db-agent/bin
$ chmod +x {EXEMONE_HOME 경로}/services/exemone-db-agent/bin/isql

Step 2) ALTIBASE_HOME 환경 변수 추가

{EXEMONE_HOME 경로}/services/exemone-db-agent/start.sh 파일을 수정하여 log DEBUG "Set ODBCSYSINI: ${ODBCSYSINI}" 아래줄에 추가:

export ALTIBASE_HOME=""

Step 3) db-agent 재기동

.{EXEMONE_HOME 경로}/onectl restart db-agent

Step 4) isql 옵션 값 적용

Setting > Database > Edit Instance > Custom Configuration에서 altibase.isql_path 옵션 값을 수정:

{EXEMONE_HOME 경로}/services/exemone-db-agent/bin/isql

db-agent 재수집 시작 확인 후 Plan 동작을 확인합니다.


5. 추가 주의사항

  1. timed_statistics 파라미터는 SQL 수행 시간 수집의 핵심 설정으로, 기본값이 0(비활성화)이므로 모니터링 전 반드시 1로 변경해야 합니다.
  2. Kill Session은 Altibase 특성상 SYS 계정으로만 가능하므로, 이 기능이 필요한 경우 SYS 계정으로 인스턴스를 등록해야 합니다. 보안 정책에 따라 SYS 계정 사용이 어려운 경우 Kill Session 기능을 사용할 수 없습니다.
  3. Plan 조회는 기본적으로 SELECT 구문만 가능하며, DML(UPDATE, DELETE, INSERT, MERGE) Plan 조회가 필요한 경우 별도 권한 부여가 필요합니다.
  4. EXECUTE 구문은 Plan 조회 예외 처리가 되어 있으나, SELECT 구문 내 함수가 사용될 경우 EXECUTE ANY PROCEDURE 권한이 필요합니다.
  5. Binary 환경에서 Plan 조회 시 isql 파일이 누락되면 조회가 실패하므로, 별도로 isql 파일을 설치하고 altibase.isql_path 옵션을 설정해야 합니다.
  6. Altibase 6.1, 6.3 버전을 사용하는 경우 별도 ODBC 드라이버를 DB-Agent에 등록해야 모니터링이 가능합니다.
  7. SQL Text 테이블 리팩토링 패치 적용 시, 패치 전 수집된 SQL Text가 누락될 수 있으므로 마이그레이션 가이드를 참고하여 데이터 마이그레이션을 진행하세요.