Blog ' da Ara

Loading

24 Ocak 2012

Administrating Asm Instance

    Daha önceki ayzılarımızda da belirttiğimiz gibi asm bir instance dir.Yani kendine has memeory alanları vardır.Nasılki oracle instance verileri yönetiyor , tutuyor ve erişimii sağlayıp kouyorsa, asm instance de aynı şekilde storage yönetimi için geliştirilmiştir.Ancak bir makinada birden fazla oracle instance olabilir.Neticede oracle instance database i yönetir.Ancak bir makinada sadece bir asm instance olur ve o makinanın gördüğü storage yapılarını asm instance yönetir.Şekil1 de asm instance storage yapısı şematize edilmiştir.
Şekil 1 : Asm Instacne storage structure

           
    Asm instancenin de kendi intialization parametreleri vardır.Memory_taget, Instance_type bunlara örnek olarak verilebilir.Bu parametreler dpfile yada pfile içerisine yazılmalıdır.asm instance parametre dosyası  “<grid_home>/dbs/spfile+ASM.ora” şeklindededir.


    Asm instance parametreleri alter system yada alter session komutları ile set edilebilirbu parametrelerden bazılarını inceleyelim.

    ASM_DISKGROUPS:Asm disk group içerisinde asm diskleri barındıran bir storage array gibi düşünülebilir.Default değeri null dır.Spfile içerisinde belirtilmelidir.Tabi manuel olarak set edilecekse pfile içersinde set edilir.ALTER SYSTEM SET ASM_DISKGROUPS=’DATA,FRA,STANDBY’ şeklinde tanıtılır.

    Asm instance başlatıldığında disk group otomatik olarak mount edilir.Eğer nomount opsiyonunda başlatılırsa diskgroup görüntülenemez.Diskgroup css servis tarafından kullanılır.OCR tarafından bilgileri tutulur.

    ASM_DISKSTRING:Asm instance tarafından tanınan disklerin pathleridir.* yada ? gibi işaretler kullanılabilir.Default değeri null dır.Asm_diskstring için bir örnek aşağıdaki gibi verilebilir.
    ASM_DISKSTRING= /dev/sd*3, /dev/sd*4
    OS bazında asm_diskstring değişiklik gösterebilir.
    Linux = /dev/raw/*
    HP-UX= /dev/rdisk/*
    AIX=/dev/rhdisk/*
    Solaris=/dev/rdsk/*
    Windows=\\.\ORCLDISKn

ASM_POWER_LIMIT:ASM_POWER_LIMIT parametresi asm disk groubun disk yukunu dağıtırken ki hızını belirtir.1-11 değerleri arasında değişir.Default değeri 1 dir.11 en jhızlı olanıdır.Ancak 11 vermek çok yüksek hızla rebalance yapar buna karşın çok fazla miktarda I/O yüküne sebep olacağı için I/O performans sorununu da beraberinde getirir.
INSTANCE_TYPE:Instance_type asm instance için ASM şeklinde set edilmelidir.
    INSTANCE_TYPE=ASM
CLUSTER_DATABASE:Eğer birden çok asm instance aynı diskleri yönetecekse cluster_database parametresi TRUE olarak set edilmelidir.
MEMORY_TARGET:Default değeri 256 MB dir.Ancak 400 MB vermek tüm sistemler için memory responceleri açısından optimize edilmiş bir değer olur.
Bu arada belirtmek faydalı olacak tır, birden fazla asm instancenin yönetileceği rac sistemlerde parametre set ederken aşağıdaki gibi komutları çalıştırmak tüm makinalar üzerinde aynı parametreyi çalıştırma yükünden kurtaracaktır.

    ALTER SYSTEM SET MEMORY_TARGET=400MB scope=SPFILE SID=’*’;
    Burada dikkate dilmesi gereken belirtilen pathlerdeki asm disklerin os tarafından formatlanmamış olmasıdır.Biz burada en yayagın asm parametrelerinden bahsettik ancak tüm parametreler hakkında bilgi almak için aşağıdaki linke başvurulabilir.

http://docs.oracle.com/cd/B28359_01/server.111/b31107/asminst.htm

Starting and Stopping ASM Instances:

Srvctl komutları ile ;
Srvctl start asm             --Tüm nodelarda asm instanceyi başlatır
Srvctl start asm –n node_name     --Belirtilen node için asm instanceyi başlatır
Srvctl status asm         --Tüm asm instance statusunu kontrol eder.
Srvctl status asm –n node_name  --Belirtilen node için asm instance statusunu kontrol eder.
Srvctl stop asm             --Tüm nodelarda asm instanceyi kapatır
Srvctl stop asm –n node_name     --Belirtilen node için asm instanceyi kapatır.

Burada opsiyon belirlemediğim için default parametre NORMAL dir.Eğer istenirse komutlar aşağıdaki gibiopsiyon verilerekte çalıştırılabilir.
Srvctl stop instance –d database_name –i instance_name –o immediate

SqlPlus ile;
Sqlplus ilede startup yada shutdown komutları ile asm instance yönetilebilir.Ancak sqlplus a bağlanırken ORACLE_SID=+ASM ORACLE_HOME=<grid_home> (burada grid home asm kurulduğu path oalrak sayıyoruz/ olarak set edilmelidir.

Asmca ile;
Aşağıdaki şekil 2 dede görüldüğü üzere asmca üzerinde asm instance kapatıp açılabilir.
Şekil2: Asmca ile asm instance yönetimi

    
Asmcmd ile ;
Asmcmd startup --nomount--pfile asm_init.ora;
Asmcmd shutdown –immediate;

Bunların dışında crsctl stop crs komut tüm cluster ile birlikte asm instanceyi de kapatacak ve yine crsctl start crs de açacaktır.(crs_stop –all ve crs_start –all komutlarıda aynı işlemi yapar.)
Srvctl start listener –n node_name komut ile listener başlatılabilir yada yönetilebilir.Burada kullanım kolay lığı sağlayan srvctl status listener yada srvctl start listener gibi komutlar ile tek bir makine üzerinden diğer makinalarda ki listenerları yönetebiliyor olmaktır.

ASM dynamic views ;
ASM ile iligli hertürlü bilgi database ve asm instance altındaki viewlarda tutulur.Bu viewları bulmak için aşağıdaki query i çalıştımanız yetecektir.

Select * from dict where table_name like ‘%ASM%’;

Ayrıca aşağıda şekil 3 dede bu viewlar şematize edilmiş ve birbirleri ile bağlantıları gösterilmiştir.
 Şekil3 : Dynamic Performance Views

   
Bu viewlar kullanılarak yazılacak force viewlar yada sql ler ile asm diskler monitör edilebilir.
Aşağıda diskgroupları ve buna bağlı disklerin size vs bilgilerini ve ayrıca read write performanslarını görebileceğiniz basit bir sql görebilirsiniz.

SELECT DG.GROUP_NUMBER,DG.NAME,DG.FREE_MB,DG.TOTAL_MB,DG.OFFLINE_DISKS,
DG.COMPATIBILITY,D.DISK_NUMBER,D.FAILGROUP,D.FREE_MB,D.HEADER_STATUS,
D.NAME,D.OS_MB,D.PATH,D.REDUNDANCY,D.STATE,D.TOTAL_MB,DIO.DBNAME,
DIO.DISK_NUMBER,DIO.READ_ERRS,DIO.READ_TIME,DIO.READS,DIO.WRITE_ERRS,
DIO.WRITE_TIME,DIO.WRITES
  FROM v$asm_diskgroup dg, v$asm_disk d, v$asm_disk_iostat dio
 WHERE DG.GROUP_NUMBER = D.GROUP_NUMBER
   AND DIO.GROUP_NUMBER = DG.GROUP_NUMBER
   AND DIO.DISK_NUMBER = D.DISK_NUMBER

0 YORUM:

Yorum Gönder

"Sorularınız ve Eleştirileriniz Değerlidir"