반응형
Oracle의 Autotask는 Oracle Database에서 자동 유지 관리 작업(Automatic Maintenance Tasks)을 관리하는 기능입니다. Autotask는 데이터베이스 성능과 안정성을 유지하기 위해 정해진 시간에 특정 작업을 실행하는 역할을 합니다.
1. Autotask의 주요 개념
Autotask는 기본적으로 데이터베이스 유지 관리를 위해 **자동화된 작업(maintenance tasks)**을 수행합니다. 주로 Maintenance Window라는 예약된 시간 동안 실행됩니다.
📌 Autotask의 주요 작업
다음과 같은 작업들이 자동으로 수행됩니다.
- 자동 통계 수집 (Auto Optimizer Statistics Collection)
→ GATHER_STATS_JOB
→ SQL 옵티마이저가 최신 통계를 사용할 수 있도록 데이터를 분석하여 통계를 업데이트합니다. - 세그먼트 조각 모음 (Auto Segment Advisor)
→ AUTO_SPACE_ADVISOR_JOB
→ 테이블 및 인덱스의 조각화를 분석하여 공간을 효율적으로 사용할 수 있도록 합니다. - SQL 튜닝 어드바이저 (SQL Tuning Advisor - Auto SQL Tuning Task)
→ AUTO_SQL_TUNING_TASK
→ 성능이 저하된 SQL을 자동으로 감지하고 튜닝을 추천하거나 자동으로 적용합니다.
2. Autotask 상태 확인 및 관리
Autotask 관련 정보를 확인하거나 제어하려면 다음과 같은 뷰를 사용합니다.
🔍 1) Autotask 작업 상태 확인
SELECT CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT;
- CLIENT_NAME → 자동 작업 이름
- STATUS → ENABLED(활성화됨) / DISABLED(비활성화됨)
🔍 2) Autotask 실행 기록 확인
sql
복사편집
SELECT TASK_NAME, STATUS, START_TIME, END_TIME FROM DBA_AUTOTASK_TASK;
- 최근 실행된 Autotask 작업과 상태를 확인할 수 있습니다.
3. Autotask 설정 변경
Autotask는 기본적으로 활성화되어 있지만, 필요에 따라 활성화/비활성화할 수 있습니다.
✅ 1) Autotask 전체 비활성화
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE;
✅ 2) 특정 작업만 비활성화
예를 들어, SQL 튜닝 작업을 비활성화하려면 다음을 실행합니다.
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE( client_name => 'auto optimizer stats collection', operation => NULL, window_name => NULL );
✅ 3) 다시 활성화
EXEC DBMS_AUTO_TASK_ADMIN.ENABLE;
또는 특정 작업만 활성화하려면:
EXEC DBMS_AUTO_TASK_ADMIN.ENABLE( client_name => 'auto optimizer stats collection', operation => NULL, window_name => NULL );
4. Maintenance Window (유지보수 시간) 관리
Autotask는 Maintenance Window 동안 실행됩니다. 기본적으로 다음 시간에 실행됩니다.
요일시간
월~금 | 22:00 ~ 02:00 |
토~일 | 06:00 ~ 14:00 |
이 유지보수 시간은 변경할 수 있습니다.
📌 유지보수 시간 확인
SELECT WINDOW_NAME, RESOURCE_PLAN, START_TIME, DURATION FROM DBA_SCHEDULER_WINDOWS;
📌 유지보수 시간 변경
예를 들어, 유지보수 시간을 23:00 ~ 04:00으로 변경하려면:
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE( name => 'WEEKNIGHT_WINDOW', attribute => 'DURATION', value => NUMTODSINTERVAL(5, 'HOUR') ); END; /
5. Autotask의 장점과 주의사항
✅ 장점
- 성능 최적화를 위한 중요한 작업을 자동으로 수행하여 관리 부담 감소
- 최신 통계를 유지하고, SQL 성능을 지속적으로 개선
- 자동화된 조각 모음을 통해 스토리지 공간 최적화
⚠ 주의사항
- Autotask 작업이 실행되는 동안 성능 저하가 발생할 수 있음
- 특정 유지보수 작업이 중요한 트랜잭션과 충돌할 가능성이 있음
- 유지보수 시간이 적절한지 주기적으로 검토해야 함
✅ 정리
- Autotask는 오라클 데이터베이스의 자동 유지보수 작업을 수행하는 기능
- 주요 작업: 자동 통계 수집, 세그먼트 조각 모음, SQL 튜닝
- DBA_AUTOTASK_CLIENT 뷰에서 상태 확인 가능
- DBMS_AUTO_TASK_ADMIN 패키지를 사용하여 활성화/비활성화 가능
- 유지보수 시간은 DBA_SCHEDULER_WINDOWS에서 확인 및 변경 가능
✅ Oracle 12c Autotask 개요
Oracle 12c에서도 Autotask는 데이터베이스 유지 관리를 자동으로 수행하는 기능입니다. 기본적으로 Maintenance Window에서 실행되며, 다음과 같은 작업을 수행합니다.
📌 Autotask의 주요 작업
작업명실행되는 작업기본 상태
자동 옵티마이저 통계 수집 | GATHER_STATS_JOB | 활성화 (ENABLED) |
자동 세그먼트 조각 모음 | AUTO_SPACE_ADVISOR_JOB | 활성화 (ENABLED) |
자동 SQL 튜닝 어드바이저 | AUTO_SQL_TUNING_TASK | 비활성화 (DISABLED) |
- 자동 옵티마이저 통계 수집
→ 최신 통계를 유지하여 SQL 성능을 최적화 - 자동 세그먼트 조각 모음
→ 테이블 및 인덱스의 조각화를 줄여 공간을 최적화 - 자동 SQL 튜닝 어드바이저
→ 비활성화된 상태이며, 수동으로 활성화 가능
🔍 1. Autotask 작업 상태 확인 (12c)
✅ Autotask 활성화 여부 확인
SELECT CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT;
- ENABLED 상태이면 실행됨
- DISABLED 상태이면 실행되지 않음
✅ Autotask 실행 기록 확인
SELECT TASK_NAME, STATUS, START_TIME, END_TIME FROM DBA_AUTOTASK_TASK;
- 최근 실행된 Autotask 작업과 상태를 확인할 수 있음
🔧 2. Autotask 활성화 및 비활성화 (12c)
✅ Autotask 전체 비활성화
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE;
✅ Autotask 전체 활성화
EXEC DBMS_AUTO_TASK_ADMIN.ENABLE;
✅ 특정 작업만 비활성화
예를 들어, SQL 튜닝 어드바이저만 비활성화하려면:
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE( client_name => 'auto sql tuning task', operation => NULL, window_name => NULL );
✅ 특정 작업만 활성화
EXEC DBMS_AUTO_TASK_ADMIN.ENABLE( client_name => 'auto sql tuning task', operation => NULL, window_name => NULL );
⏰ 3. Maintenance Window (유지보수 시간) 관리 (12c)
Autotask는 Maintenance Window 동안 실행됩니다. 기본적으로 일정한 시간대에만 실행됩니다.
✅ 유지보수 시간 확인
sql
복사편집
SELECT WINDOW_NAME, RESOURCE_PLAN, START_TIME, DURATION FROM DBA_SCHEDULER_WINDOWS;
✅ 유지보수 시간 변경 (예: 23:00 ~ 04:00)
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE( name => 'WEEKNIGHT_WINDOW', attribute => 'DURATION', value => NUMTODSINTERVAL(5, 'HOUR') ); END; /
✅ 유지보수 시간 비활성화 (Autotask 작동 중지)
BEGIN DBMS_SCHEDULER.DISABLE('WEEKNIGHT_WINDOW'); END; /
🏛 4. Oracle 12c의 Autotask 주요 변경점
🔹 1) CDB/PDB 환경에서 Autotask 동작 변경
- Oracle 12c부터 **Multitenant Architecture (CDB/PDB 구조)**가 도입됨
- Autotask는 CDB 컨테이너에서만 실행되며, PDB 개별적으로 관리되지 않음
- 즉, PDB 단위에서 Autotask를 활성화/비활성화할 수 없음
- CDB에서 실행되면 PDB에도 영향을 미침
✅ CDB 환경에서 Autotask 확인
SELECT CON_ID, CLIENT_NAME, STATUS FROM CDB_AUTOTASK_CLIENT;
🎯 정리
Autotask 주요 작업 | 자동 통계 수집, 세그먼트 조각 모음, SQL 튜닝 어드바이저 |
기본 상태 | SQL 튜닝 어드바이저는 기본적으로 비활성화됨 |
확인 방법 | DBA_AUTOTASK_CLIENT, DBA_AUTOTASK_TASK 뷰 조회 |
활성화/비활성화 | DBMS_AUTO_TASK_ADMIN.ENABLE 또는 DISABLE 사용 |
유지보수 시간 | DBA_SCHEDULER_WINDOWS에서 확인 및 변경 가능 |
CDB/PDB 환경 | 12c부터 Autotask는 CDB에서만 실행됨 (PDB에서 개별 관리 불가) |
반응형