26 Aralık 2012 Çarşamba

          Automatic Storage Management(ASM) İşlemleri

1)Create Diskgroup:İlk olarak sqlplus ile ASM instance a bağlanırız.
$export ORACLE_SID=+ASM
$export ORACLE_HOME="Grid_home"
$grid_home/bin/sqlplus / as sysdba
SQL>create diskgroup dnmdisk (external,normal,high) redundancy disk '/dev/raw/raw3-->dnmdisk adında external redundancy yapan bir disk grubu oluşturuldu.Disk grubu oluştururken bir redundancy belirtmeliyiz.3 farklı redundancy kullanılabilinir.
Normal Redundancy:Burada datanın 2 kopyası tutulur.Burada datanın aslı bir disk te tutulurken kopyası başka bir disk te tututlur.Bunun için en az 2 disk gereklidir. Bu disklerin boyutları aynı olmalıdır.
High Redundancy:
Burada datanın 3 kopyası tutulur.Burada ise en az 3 diske ihtiyaç vardır.
External Redundancy:
Burada disk group mirroring yapılmaz.Bu hardware mirroring kullanılacağı zaman tercih edilir.(RAID)

2)Drop Diskgroup:Kullanmak istenilmeyen diskgroup bu komutla kaldırabiliriz.
SQL>Drop diskgroup dnmdisk--> Varolan dnmdisk grubu silinir.


3)Mount and Unmount Diskgroup:Disk group ları manully olarak mount dismount edebiliriz.
SQL>alter diskgroup dnmdisk dismount;SQL>alter diskgroup dnmdisk mount;
NOT:
Eğer spfile kullanılıyorsa bir disk grubunu dismount ettiğimizde bu disk grubu asm_diskgroup parametresinden çıkarılır.Yani ASM restart edildiğinde disk grubu tekrar mount edilmeyecektir. Ama spfile değilde text parameter file kullanılıyorsa disk grubu dismount edildikten sonra manually olarak bu parametreden çıkarılmalıdır.Bu yapılmazsa ASM restart edildiğinde diskgrubu yeniden mount edilecektir.

4)Listing Diskgroup:ASM içerisinde varolan disk group larını v$asm_diskgroup view sorgulayarak görebiliriz.

SQL>select * from v$asm_diskgroup;

Disk Group İşlemleri:
1)ASM Disk Discovery:Yeni bir diskgroup oluşturacağımız zaman ASM disk discovery için belirli bir disk location ihtiyaç duyar.asm_disktring asm nin disk discovery yaparken bakacağı location belirtir.
SQL>Alter system set ASM_DISKSTRING='/dev/oracleasm/disks'--> ASM instance başladığında diskler için bakacağı location belirtir

1)Adding Disk to Disk Group:
SQL>alter diskgroup fra(disk group name) add disk '/dev/oracleasm/disks/DISK5'(disk path)-->DISK5 fra disk grubuna ekler.Yeni bir disk ekledikten sonra oracle rebalance işlemini başlatacaktır.Ayrıca disk eklerken herhangi bir failgroup belirtilmezse kendi otomatik olarak failgroup oluşturur ve assign eder.
SQL>select name, failgroup  from v$asm_disk-->komutu ile disk ve failgroup görebiliriz.
SQL>alter diskgroup fra(disk group name) add failgroup  diskname disk '/dev/oracle
asm/disks/DISK5'(disk path
)-->failgroup parametresi ile kendimiz failgroup belirtebiliriz

2)Remove a Disk From Disk Group:
SQL>alter diskgroup fra(disk group name) drop disk fra_0003(disk name)-->Bu işlemde ilk olarak drop edilen disk üzerindeki data rebalance edilir. Disk daha sonra drop edilir.Rebalancing işlemi için diğer disklerde yeterli alan yoksa drop işlemi hata verecektir.Bu operation asynchronous olduğundan dolayı sql promptundan işlemin tamamlandığını göremeyiz.Operation un tamamlanıp tamamlanmadığını anlamak için diskleri sorgulayabiliriz.

3)Undropping a Disk From Dsik Group: Yanlışlıkla bir diski disk grubundan drop ettiğimizde undrop komutuyla diski kurtarabiliriz.
SQL>alter diskgroup disk_group_name undrop disk(disk_name)

4)Resizing Disks Assigned to an ASM Disk Group: Bu varolan disklerdeki disk alanının tutulduğu metadata yı güncellmek için kullanılır.
SQL>alter diskgroup fra(diskgroup_name)  resize all;-->Bu komut işletim sistemine disk gruplarında bulunan disklerin disk space leri hakkında sorgu yollar.
SQL>alter diskgroup data resize disk (diks_name);-->bu işlemi diskgroup içinde bulunan disk içinde yapabiliriz.

5)Check consistency of a disk group:
Bazı durumlarda ASM disk group larının metadatasını check etmek isteyebiliriz.ASM instance başladığında veya oracle database kaynaklanan corrouption lar olabilir. Bunları check etmek için bu opsiyon kullanılabilinir.
SQL>alter dsikgroup data check all;

6)Online Offline Diskgroup:Bu yöntemle diskgroup un tamamını veya diskgroup içerisinde bulunan bir diski online veya offline yapabiliriz.
SQL>alter diskgroup data online disk 'disk_0001';
SQL>alter diskgroup data online all;
SQL>alter diskgroup data offline disk 'disk_0001';
SQL>alter diskgroup data offline all;
 

7)List ASM Disk:
SQL>Select * from v$asm_disk-->sistemde tanınan diskler hakkında bilgi verir.
SQL>select path, group_number group_#, disk_number disk_#, mount_status,
       header_status, state, total_mb, free_mb from v$asm_disk order by group_number;

PATH    GROUP_# DISK_# MOUNT_S HEADER_STATU STATE      TOTAL_MB    FREE_MB
-------------- ------- ------ ------- ------------ -------- ---------- ----------
/dev/raw/raw4        0      1              CLOSED  FOREIGN      NORMAL           39          0
/dev/raw/raw5        0      0              CLOSED  FOREIGN      NORMAL           39          0
/dev/raw/raw3        0      2              CLOSED  FOREIGN      NORMAL           39          0
/dev/raw/raw6        0      2              CLOSED  CANIDATE     NORMAL         2048       2048
ORCL:ASM01_004       1      3 CACHED  MEMBER       NORMAL        34212      30436
ORCL:ASM01_005       1      4 CACHED  MEMBER       NORMAL        34212      30408
ORCL:ASM01_006       1      5 CACHED  MEMBER       NORMAL        34212      30420
ORCL:ASM01_007       1      6 CACHED  MEMBER       NORMAL        34212      30297
ORCL:ASM01_008       1      7 CACHED  MEMBER       NORMAL        34212      30507
ORCL:ASM01_009       1      8 CACHED  MEMBER       NORMAL        34212      30404
ORCL:ASM01_010       1      9 CACHED  MEMBER       NORMAL        34212      30509
ORCL:ASM01_011       1     10 CACHED  MEMBER       NORMAL        34212      30449
ORCL:ASM01_012       1     11 CACHED  MEMBER       NORMAL        34212      30340
ORCL:ASM01_013       1     12 CACHED  MEMBER       NORMAL        34212    30357 
mount_status(closed)=
asm tarafından access yapılmadığını gösterir.
header_status(foreign)=bu disklerde data olduğunu belirtir ve bazı processler tarafında kullanıldığını belirtir.
header_status(candidate)=Bu diskin bir disk grubuna eklenebileceğini belirtir.mount_status(cached) ve header_status(member)bu değerler disk in bir disk group tarafından kullanıldığını belirtir.

ASM  views:ASM konfigurasyonuyla ilgili bilgiler tutmak için birçok dictionary views kullanılır.Bu view lar hem asm instance hemde database instance connection sağlandığı zaman görülebilir.

 v$asm_diskgroup
Asm instance bulunan disk groupları ile ilgili bilgileri görürüz.
v$asm_disk
Asm instance tarafından görülebilen diskler hakkındaki bilgileri görürüz.Bu diskler bir diskgroup içerisnde olsa da olmasada görebiliriz.
v$asm_template

ASM instance içerisinde bulunan  diskgroup  template lerini içerir.
v$asm_alias
ASM içerisinde bulunan diskgroup alias içerir
v$asm_operation
ASM instance çalışan olayları görüntüler.
v$asm_client
ASM tarafından yönetilen disk grouplarından en az birini kullanan database leri gösterir


















 

Hiç yorum yok: