Bundan önceki yazımda AWR’ ın kullanımı ile giriş yaparak, AWR aracılığı ile snaphotları nasıl create, drop ederizden bahsettik. Şimdi alınan bu snaphotlara ait raporları nasıl compare ederiz buna bakacağız. Özetle şunu yapmaya çalışıyoruz aslında database’ de yaşanan bir performans probleminin ne boyutta olduğuna veya aynı dönemi kapsayan başka bir aralığa göre problemin neden kaynaklandığını, yoğunluk olarak hangi alanlarda artış olduğunu görebilmek ve içinde bulunduğumuz durumu daha iyi yorumlayabilmek için karşılaştırma yapabiliriz.
Şöyle bir problem olduğunu varsayalım. Her gün saat 09:00 ile 11:00 arasında database’ imizin performansı stabil iken, gün içerisinde bu saatler aralığında performansın ciddi bir şekilde düştüğünü varsayalım. Buradaki sorunu tespit içinde dün ile bugün aynı saatler aralığını gösteren AWR raporlarını compare etmeye çalışalım. (bu işlemi konsol üzerinden grafik ekranda çok rahatlıkla yapabilirsiniz ancak biz ortada bir problem var iken konsolun çalışmama riskini gözönünde bulundurarak komut satırından yapmaya çalışacağız)
Bu işlemler için dba yetkisi gerektiğini tekrar hatırlatalım.
Komut satırından scriptimizin yer aldığı awrddrpt.sql dosyasını çalıştırıyoruz.
@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
Sonrasında yapılan işlemlerle ilgili loglarıda ekliyorum ;
SQL> @$ORACLE_HOME/rdbms/admin/awrddrpt.sql
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Id DB Name Inst Num Inst Num Instance
———– ———– ———— ——– ——– ————
2656835042 2656835042 TEST 1 1 TEST
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter ‘html’ for an HTML report, or ‘text’ for plain text
Defaults to ‘html’
Enter value for report_type: text
Type Specified: text
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
———— ——– ———— ———— ————
* 2656835042 1 TEST TEST tester
Database Id and Instance Number for the First Pair of Snapshots
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using 2656835042 for Database Id for the first pair of snapshots
Using 1 for Instance Number for the first pair of snapshots
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing without
specifying a number lists all completed snapshots.
Enter value for num_days: 2
Listing the last 2 days of Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
———— ———— ——— —————— —–
TEST TEST 6480 22 Feb 2011 00:00 1
6481 22 Feb 2011 01:00 1
6482 22 Feb 2011 02:00 1
6483 22 Feb 2011 03:00 1
6484 22 Feb 2011 04:00 1
6485 22 Feb 2011 05:00 1
6486 22 Feb 2011 06:00 1
6487 22 Feb 2011 07:00 1
6488 22 Feb 2011 08:00 1
6489 22 Feb 2011 09:00 1
6490 22 Feb 2011 10:00 1
6491 22 Feb 2011 11:00 1
6492 22 Feb 2011 12:00 1
6493 22 Feb 2011 12:48 1
6494 22 Feb 2011 12:48 2
6496 22 Feb 2011 14:00 1
6497 22 Feb 2011 15:00 1
6498 22 Feb 2011 16:00 1
6499 22 Feb 2011 17:00 1
6500 22 Feb 2011 18:00 1
6501 22 Feb 2011 19:00 1
6502 22 Feb 2011 20:00 1
6503 22 Feb 2011 21:00 1
6504 22 Feb 2011 22:00 1
6505 22 Feb 2011 23:00 1
6506 23 Feb 2011 00:00 1
6507 23 Feb 2011 01:00 1
6508 23 Feb 2011 02:00 1
6509 23 Feb 2011 03:00 1
6510 23 Feb 2011 04:00 1
6511 23 Feb 2011 05:00 1
6512 23 Feb 2011 06:00 1
6513 23 Feb 2011 07:00 1
6514 23 Feb 2011 08:00 1
6515 23 Feb 2011 09:00 1
6516 23 Feb 2011 10:00 1
6517 23 Feb 2011 11:00 1
6518 23 Feb 2011 12:00 1
6519 23 Feb 2011 13:00 1
6520 23 Feb 2011 14:00 1
6521 23 Feb 2011 15:00 1
6522 23 Feb 2011 16:00 1
Specify the First Pair of Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 6489
First Begin Snapshot Id specified: 6489
Enter value for end_snap: 6491
First End Snapshot Id specified: 6491
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
———— ——– ———— ———— ————
* 2656835042 1 TEST TEST tester
Database Id and Instance Number for the Second Pair of Snapshots
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using 2656835042 for Database Id for the second pair of snapshots
Using 1 for Instance Number for the second pair of snapshots
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing without
specifying a number lists all completed snapshots.
Enter value for num_days2: 2
Listing the last 2 days of Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
———— ———— ——— —————— —–
TEST TEST 6480 22 Feb 2011 00:00 1
6481 22 Feb 2011 01:00 1
6482 22 Feb 2011 02:00 1
6483 22 Feb 2011 03:00 1
6484 22 Feb 2011 04:00 1
6485 22 Feb 2011 05:00 1
6486 22 Feb 2011 06:00 1
6487 22 Feb 2011 07:00 1
6488 22 Feb 2011 08:00 1
6489 22 Feb 2011 09:00 1
6490 22 Feb 2011 10:00 1
6491 22 Feb 2011 11:00 1
6492 22 Feb 2011 12:00 1
6493 22 Feb 2011 12:48 1
6494 22 Feb 2011 12:48 2
6496 22 Feb 2011 14:00 1
6497 22 Feb 2011 15:00 1
6498 22 Feb 2011 16:00 1
6499 22 Feb 2011 17:00 1
6500 22 Feb 2011 18:00 1
6501 22 Feb 2011 19:00 1
6502 22 Feb 2011 20:00 1
6503 22 Feb 2011 21:00 1
6504 22 Feb 2011 22:00 1
6505 22 Feb 2011 23:00 1
6506 23 Feb 2011 00:00 1
6507 23 Feb 2011 01:00 1
6508 23 Feb 2011 02:00 1
6509 23 Feb 2011 03:00 1
6510 23 Feb 2011 04:00 1
6511 23 Feb 2011 05:00 1
6512 23 Feb 2011 06:00 1
6513 23 Feb 2011 07:00 1
6514 23 Feb 2011 08:00 1
6515 23 Feb 2011 09:00 1
6516 23 Feb 2011 10:00 1
6517 23 Feb 2011 11:00 1
6518 23 Feb 2011 12:00 1
6519 23 Feb 2011 13:00 1
6520 23 Feb 2011 14:00 1
6521 23 Feb 2011 15:00 1
6522 23 Feb 2011 16:00 1
Specify the Second Pair of Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap2: 6515
Second Begin Snapshot Id specified: 6515
Enter value for end_snap2: 6517
Second End Snapshot Id specified: 6517
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrdiff_1_6489_1_6515.txt To use this name,
press to continue, otherwise enter an alternative.
Enter value for report_name: 22-23_compare_awr
Using the report name 22-23_compare_awr
WORKLOAD REPOSITORY COMPARE PERIOD REPORT
Snapshot Set DB Id Instance Inst Num Release Cluster Host Std Block Size
———— ———– ———— ——– ———– ——- ———— —————
First (1st) 2656835042 TEST 1 11.2.0.1.0 NO tester 8192
Second (2nd) 2656835042 TEST 1 11.2.0.1.0 NO tester 8192
..
..
..
..
..
Report written to 22-23_compare_awr
Sql>
Rapor çıktısı çok uzun ve çok detaylı olduğu için maalesef buraya ekleyemiyorum. (sadece ilk satırını ekledim) Burada scripti çalıştırdığımızda neleri set ettiğimize bakalm;
Enter value for report_type: text
(raporun çıktı formatını belirledim, html de seçebilirdim)
Enter value for num_days: 2
(karşılaştırma yapmak için ilk döneme ait değerleri seöçebilmek için son 2 günlük snapshotları listelemesini istedim)
Enter value for begin_snap: 6489
(listelenen bu snapshotlardan 22 Şubatın sabah 09:00 aralığına denk gelen ilk snapshot aralığını seçtim)
Enter value for end_snap: 6491
(listelenen bu snapshotlardan 22 Şubatın sabah 11:00 aralığına denk gelen son snapshot aralığını seçtim)
Buraya kadar compare edeceğim iki dönemden ilkine ait tüm bilgileri girmiş oldum, sıra ikinci dönemimi belirlemeye geldi,
Enter value for num_days2: 2
(karşılaştırma yapmak için ilk döneme ait değerleri seöçebilmek için son 2 günlük snapshotları listelemesini istedim)
Enter value for begin_snap2: 6515
(listelenen bu snapshotlardan 23 Şubatın sabah 09:00 aralığına denk gelen ilk snapshot aralığını seçtim)
Enter value for end_snap2: 6517
(listelenen bu snapshotlardan 23 Şubatın sabah 11:00 aralığına denk gelen son snapshot aralığını seçtim)
Enter value for report_name: 22-23_compare_awr
(ortaya çıkacak olan text dökümanına isim verdim)
Hepsi bu kadar, sonrasında iş ortaya çıkan bu dökümanı incelemeye ve yorumlamaya kaldı. (aslında snapshot create etmekteki adımları sadece peşpeşe 2 defa yaptığımızı düşünebilirizde başka hiçbir fark yok, fark rapor çıktısında göze çarpıyor, tüm sonuçlar 1st period, 2st period başlığı altında teker teker karşılaştırılıyor)
Buraya kadar olan kısım single instance kullanıyor iseniz yapacaklarınızı ifade ediyor,peki RAC kullanılıyor iseniz bu işlemleri nasıl yapacaksınız?
Değişen pek bişey yok, yapılacak olan işlemler hemen hemen aynı, çalıştırılacak olan dosya awrgdrpt.sql isimli file olacaktır.
@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql
Rac’ ın kurulu olduğu instance’ lardan spesifik olarak biri üzerinde almak isterseniz, awrddrpi.sql dosyasını çalıştırmanız yeterli olacaktır.
@$ORACLE_HOME/rdbms/admin/awrddrpi.sql
Umarım faydalı olmuştur.