Oracle ASH (Active Session History)
Ratio 기반 분석방법론과 wait event 기반 분석방법론의 한계점은 문제가 있다고 진단했을때 그 원인을 찾아 실제 문제를 해결하는 데까지 많은 시간이 걸리는 데 있다고 합니다.
v$session 이용하여 실시간 세션에 대한 모니터링을 할 수 있지만 이는 해당 시점에서의 걸리는 쿼리만을 볼 수 있다는 점 때문에 한계가 있습니다.
그래서 나온 기능이 바로 10g부터 나온 ASH입니다.
ASH는 실시간 세션(Actvie Session)의 활동 정보, SQL 수행 빈도 등의 정보를 1초 간격으로 수집해 SGA -> Shared Pool -> ASH Buffer 영역에 보관해뒀다가 가득 차게 되면 AWR로 내려씁니다.
ASH 정보를 디스크로 내려 쓰는 역할을 담당하는 Background Process는 MMNL입니다.
- 기능: ASH는 데이터베이스에서 활동 중인 세션의 정보를 수집합니다. 이를 통해 특정 시점에 세션들이 무엇을 하고 있었는지에 대한 정보를 확인할 수 있습니다.
- 샘플링: Oracle은 1초마다 활동 중인 세션에 대한 데이터를 수집하여 메모리에 저장합니다. 따라서 특정 시간 동안의 세션 활동을 파악하는 데 유용합니다.
- 주 용도: 주로 특정 시점의 성능 이슈나 병목 현상을 파악할 때 사용됩니다. 예를 들어, 특정 쿼리로 인해 CPU나 I/O 리소스가 부족할 경우, ASH 데이터를 통해 어느 세션이 문제를 일으켰는지 확인할 수 있습니다.
- 저장 위치: ASH는 메모리에 저장되며, 일정 시간이 지나면 데이터가 삭제됩니다. 그러나 필요한 경우 AWR로 이동되어 더 오래 보존될 수 있습니다. dba_hist_active_sess_history 테이블을 대신 보면됩니다.
Oracle AWR (Automatic Workload Repository)
자동으로 DB에 대한 통계 및 성능 자료를 수집해 스냅샷으로 만들어 일정 기간동안 보관하고, 이를 활용할 수 있게 해주는 기능입니다.
성능자료의 간단한 예로는 Buffer/CPU/Pin/Latch/Library 등의 히트율, 자원 사용률, Soft/Hard Parse 정도, 가장 느리게 돌았던 쿼리(Slow Query) 등이 있습니다.
느린 쿼리를 튜닝한다든지, SGA의 값을 AWR이 추천하는 값으로 변경해 효용성을 높인다든지 하는 방법으로 활용할 수 있습니다.
AWR과 관련한 작업을 도와주는 Background Process가 MMON입니다.
- 기능: AWR은 데이터베이스의 성능 데이터를 주기적으로 수집하고, 이를 통해 장기적인 성능 분석과 튜닝에 필요한 데이터를 제공합니다.
- 샘플링 주기: 기본적으로 매 1시간마다 데이터가 수집되며, 수집된 데이터는 데이터베이스에 저장되어 보존됩니다.
- 저장 데이터: AWR은 CPU, 메모리, 디스크 I/O, 대기 이벤트, SQL 실행 통계 등 데이터베이스 전반의 성능 관련 데이터를 저장합니다.
- 주 용도: AWR 보고서를 통해 일정 기간 동안의 성능 문제나 병목 현상을 파악할 수 있으며, 추세 분석이나 성능 최적화에도 유용합니다. 예를 들어, 특정 기간 동안 반복되는 성능 이슈를 추적하여 그 원인을 분석하는 데 AWR 보고서가 많이 활용됩니다.
- 라이선스: AWR은 Oracle Diagnostics Pack에 포함되어 있으며, 사용하려면 별도의 라이선스가 필요합니다.
차이점 요약
항목 | ASH | AWR |
수집 주기 | 1초마다 활동 중인 세션의 샘플을 수집 | 기본적으로 1시간마다 성능 데이터 수집 |
데이터 저장 | 메모리 (일정 시간 후 삭제) | 데이터베이스에 저장되어 장기간 보존 |
주 용도 | 특정 시점의 세션 활동 분석 | 장기적인 성능 분석 및 최적화 |
라이선스 | Diagnostics Pack 라이선스 필요 | Diagnostics Pack 라이선스 필요 |
ASH는 주로 실시간 문제를 추적하는 데 유용하고, AWR은 주기적인 보고서를 통해 전체 성능을 관리하는 데 유리합니다.
'Oracle > Admin' 카테고리의 다른 글
[ORACLE] RMAN BAKCUP (0) | 2024.11.15 |
---|---|
[Oracle] Index Rebuild (0) | 2024.11.13 |
[Oracle] Wait Event 목록 (0) | 2024.10.31 |
[Oracle] single grid 환경에서의 oracle 재기동 방법 (0) | 2024.09.19 |
[Oracle] 10046 event Trace 분석 (3) | 2024.09.06 |