20 Kasım 2011 Pazar

ADDM Nedir?


Automatic Database Diagnastic Monitor(ADDM)
Her bir AWR snapshot’u alındığında son iki snapshot ‘a karşılık periyodun analizini yapar.

  • Her AWR snapshotundan sonra çalışır

  • Instance ‘i monitor eder ve oluşacak darboğazları tespit eder.

  • Sonuçları AWR’ da depolar.

ADDM tarafından belirlenen bazı ortak sorunlar şunlar olabilir.

  • Cpu bootlenecks

  • Lock Contention

  • IO Kapasite sorunu

  • High- Load SQL statements

  • High PLSQL and JAVA

  • Çok hızlı Checkpoint gerçekleşmesi

  • Oracle Net Bağlantı sorunları

ADDM aşağıdaki dynamic Performance view leri yada Enterprise Manager Konsolu ile hem bulgularını hemde tavsiyelerini görebiliriz.
ADDM Views
View Name
Description
DBA_ADVISOR_TASKS
Provides information about existing task, like – task id, name, etc.
DBA_ADVISOR_LOG
Contain the current task information such as status, progress, error messages, and execution times.
DBA_ADVISOR_RECOMMENDATIONS
Complete result of diagnostic task.
DBA_ADVISOR_FINDINGS
Display all symptoms and specific recommendations.
Genel olarak ADDM tavsiyeleri(Recommendation) şunlardır:
  • Schema Changes
  • Hardware Changes.
  • Application Changes
  • Database Configuration
  • Diğer Advisorları tavsiye eder.
Diğer Advisorlar ise
SQL Tuning Advisor, tek bir SQL statementi analiz eder. Bu statementin performansını arttıracak tavsiyeler verir. Instance Konfigrasyosyon değişimi, Statement’in yeniden yazılması yada SQL profile, Index Ekleme gibi tavsiyeler verir. Daha çok tek bir SQL cümlesi yerine Tuning Setler oluşturarak performans talebinde bulunuruz.
SQL Access Advisor, perfromansı geliştirecek materialized view yada materialized log yada ilave index oluşturmamasını tavsiye eder. Verilen bir zamanda girilmiş tüm SQL statementleri analiz eder.
Memory Advisor(SGA Advisor, PGA advisor), Instance tarafından kullanılacak toplam memory için en ayarları bulup tavsiye eder.)SGA advisorunda altında çalışan alt advisorlar vardır.(Shared Pool advisor,Java Pool Advisor, Buffer Cache Advisor, Strams pool advisor gibi)
Segment Advisor verimsiz kullanılan alan tüketimini kontrol eder. Öneride bulunur. Shrink, Reorganize gibi tavsiyeleri vardır.
Undo data ile ilgili sorunlarda Undo Advisor
Backup – Rocovery de oluşacak sorunlarda MTTR (Mean time to Recovery) advisor’ ı
tavsiye eder. Genel olarak Instance crash olduktan sonra bir database recovery için gerekli zaman ayarıdır.

Automatic Workload Repository

Genel olarak Self-Tuning amaçlı, problem belirleme özelliği olan ve istatistik toplama ve saklama özelliği olan bir altyapıdır.Her 60 dk ‘da ( default) Database otomatk olarak SGA’dan istatistik bilgilerini alır ve AWR içerisinde Snapshot formatında saklar. Default olarak AWR içerisinde bu snapshotlar 8 gün saklanır. Saklanma süresini yada default snapshot aralığını değiştirebiliriz.
Oracle 11g ’de SYSAUX tablespace’ nde depolanan ve SYSMAN shemasına ait yüzlerce tablo bulundurur. DBMS_WORKLOAD_REPOSITORY paketiyle yada Enterprise Manager Konsol ile Repository ‘ kullanabiliriz. Oracle da zaten bu iki yöntemi tavsiye etmektedir.
AWR tablolarına karşı gelen DML istekleri desteklenmez. Sadece okunur.
AWR yapısı ikiye ayrılır.
1. Memory’ de saklanan istatistikler vardır.
Bu istatistikler performans nedenlerinden ötürü memory de saklanır.
Dinamik performance view’ ler (V$ )ile memory de saklanan database istatistiklerine erişilebilir.
2. AWR içerisinde saklanan istatistikler kalıcı olarak saklanan istatistiklerdir. İstatistikler birkaç nedenden dolayı kalıcı olarak saklanmaya ihtiyaç duyulur.
a. Bir instance crash(çökmesine )karşı istatistik ihtiyacı duyulur.
b. Bazı analizler, bir Baseline karşılaştırması için Historical bir dataya ihtiyaç duyulur.
Memory Monitor (MMON) proces’i tarafından Memory’ deki Instance istatistiği kalıcı olarak saklamak için diske yazılır.
Baseline, AWR snapsotların bir kümesidir. Başlangıç ile bitiş snapshotların arası  performans kıyaslaması yapılması için kullanılır
Create Baseline:
BEGIN
DBMS_WORKLOAD_REPOSITORY.create_baseline (
start_snap_id => 200,
end_snap_id => 220,
baseline_name => ‘Test_baseline);
END;
Delete Baseline:
BEGIN
DBMS_WORKLOAD_REPOSITORY.drop_baseline (
baseline_name => ‘test_baseline’,
cascade => TRUE);
END;
/
Retention Period: Default 8 gündür ve sonsuza kadar saklama seçenekleri vardır.
Collection Interval: Snapshot aralığıdır. default olarak 60 dk dır.
Collection Level: İstatistik toplama seçenekleridir. Basic seçeneğinde ADDM fonksiyonunu kapatır. Yani Self tuning disable olacak. Typical yada All seçenekleri tavsiye edilir
Örneklerle anlatırsak.
SQLplus ‘a bağlanalım
$>sqlplus / as sysdba
SQL>Select * from DBA_HIST_WR_CONTROL;
DBID SNAP_INTERVAL RETENTION TOPNSQL
--------- ------------------ -------------------- ---------
1272787738 +00000 01:00:00.0 +00008 00:00:00.0 DEFAULT
2189780853 +00000 01:00:00.0 +00008 00:00:00.0 DEFAULT
Sonuç olarak iki tane DB var. Ve bunların snapshot aralığı 1 saat. Retention (saklama) 8 gün olarak görünüyor.
Önemli AWR View’ leri


View Name
Description
V$ACTIVE_SESSION_HISTORY
Displays the active session history (ASH) sampled every second.
V$METRIC
Displays metric information.
V$METRICNAME
Displays the metrics associated with each metric group.
V$METRIC_HISTORY
Displays historical metrics.
V$METRICGROUP
Displays all metrics groups
DBA_HIST_ACTIVE_SESS_HISTORY
Displays the history contents of the active session history.
DBA_HIST_BASELINE
Displays baseline information.
DBA_HIST_DATABASE_INSTANCE
Displays database environment information.
DBA_HIST_SNAPSHOT
Displays snapshot information.
DBA_HIST_SQL_PLAN
Displays SQL execution plans.
DBA_HIST_WR_CONTROL
Displays AWR settings.