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 모드 실행 시
- 전달받은
T209934_libaltibase_odbc-64bit-ul641.so파일을$EXEMONE_HOME/containers/exemone-db-agent/libs디렉토리에 복사 - 파일명을
libaltibase_odbc-64bit-ul64.so로 변경 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

- db-agent 모듈 재시작:
$EXEMONE_HOME/scripts/restart db-agent
Binary 모드 실행 시
- 전달받은 드라이버 파일을
$EXEMONE_HOME/libs디렉토리에 복사 - 파일명을
libaltibase_odbc-64bit-ul64.so로 변경 docker-compose.yml파일에 볼륨 경로 추가:
$EXEMONE_HOME/libs/libaltibase_odbc-64bit-ul64.so:/usr/local/lib/altibase/libaltibase_odbc-64bit-ul64.so
- db-agent 모듈 재시작:
$EXEMONE_HOME/.onctl restart db-agent
2. 필수 권한
참고 문서: Altibase 모니터링 권한
2-1. 기본 모니터링 권한
| 권한 | 설명 |
|---|---|
| CREATE SESSION | DB 접속 권한 |
| 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 | 기본 권한으로 조회 가능 (추가 권한 불필요) |
| UPDATE | UPDATE ANY TABLE |
| DELETE | DELETE ANY TABLE |
| INSERT | INSERT 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_statistics | 0 (비활성화) | 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 TABLE | DELETE 구문 |
INSERT ANY TABLE | INSERT 구문 |
UPDATE ANY TABLE | UPDATE 구문 |
또는 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 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. 추가 주의사항
- timed_statistics 파라미터는 SQL 수행 시간 수집의 핵심 설정으로, 기본값이 0(비활성화)이므로 모니터링 전 반드시 1로 변경해야 합니다.
- Kill Session은 Altibase 특성상 SYS 계정으로만 가능하므로, 이 기능이 필요한 경우 SYS 계정으로 인스턴스를 등록해야 합니다. 보안 정책에 따라 SYS 계정 사용이 어려운 경우 Kill Session 기능을 사용할 수 없습니다.
- Plan 조회는 기본적으로 SELECT 구문만 가능하며, DML(UPDATE, DELETE, INSERT, MERGE) Plan 조회가 필요한 경우 별도 권한 부여가 필요합니다.
- EXECUTE 구문은 Plan 조회 예외 처리가 되어 있으나, SELECT 구문 내 함수가 사용될 경우
EXECUTE ANY PROCEDURE권한이 필요합니다. - Binary 환경에서 Plan 조회 시
isql파일이 누락되면 조회가 실패하므로, 별도로 isql 파일을 설치하고altibase.isql_path옵션을 설정해야 합니다. - Altibase 6.1, 6.3 버전을 사용하는 경우 별도 ODBC 드라이버를 DB-Agent에 등록해야 모니터링이 가능합니다.
- SQL Text 테이블 리팩토링 패치 적용 시, 패치 전 수집된 SQL Text가 누락될 수 있으므로 마이그레이션 가이드를 참고하여 데이터 마이그레이션을 진행하세요.