Bugra Canbakal's Oracle Blog

  • Home
  • Contact
  • SITE MAP
You are here: Home / Oracle / Asm diskgroup içine yeni bir disk eklemek

Asm diskgroup içine yeni bir disk eklemek

Kasım 26, 2012 By Bugra Canbakal 4 Comments

1.AMAÇ VE KAPSAM

Kullanılan bir asm diskgroup içine yeni bir disk ekleyip diskgroup büyüteme çalışmasını anlatacağım.Bu çalışmayı yapmadan önce adımlar hakkında genel bir bilgi vermek istiyorum.Elimde DISK4 isminde hiçbir diskgroupa ayit olmayan bir asm diskim var bu diskin öncelikle sağlamlığını kontrol edicem, bu çalışma bittikten sonra production ortama zarar vermemesi için yeni bir diskgroup oluşturup bu diski bu groupa ekliyecem eğer bu aşamaları geçtiysem production diskgroup’a diskimizi ekliyeceğim.

2.UYGULAMA

2.1.Boşta olan DISK4 diskini asm üstünden kontrol edicez. (RAC ortamında bu calısma 2 node üstündede yapılır)

[root@oracle ~]# /etc/init.d/oracleasm  scandisks

Scanning the system for Oracle ASMLib disks:               [  OK  ]

[root@oracle ~]# /etc/init.d/oracleasm  listdisks

DISK1

DISK2

DISK3

DISK4

[root@oracle ~]# /etc/init.d/oracleasm  querydisk DISK4

Disk "DISK4" is a valid ASM disk

[root@oracle ~]# ls -l /dev/oracleasm/disks/DISK4

brw-rw---- 1 oracle dba 8, 34 Jun 23 23:40 /dev/oracleasm/disks/DISK4

2.2.  Şimdi asm headerları düzgün mü diye kontrol etmemiz gerekiyor.Bunun için ASM metadata editor kfed’ i kullanıcaz. Çıktısında “kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD” görürsek asm’nin headerları düzgün diyebiliriz.

[root@oracle ~]# kfed read /dev/oracleasm/disks/DISK4
 kfbh.endian: 1 ; 0x000: 0x01
 kfbh.hard: 130 ; 0x001: 0x82
 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
 ...
 kfbh.check: 1539641569 ; 0x00c: 0x5bc510e1
 ...
 kfdhdb.driver.provstr: ORCLDISKDISK4 ; 0x000: length=13
 ...
 kfdhdb.dsknum: 0 ; 0x024: 0x0000
 kfdhdb.grptyp: 2 ; 0x026: KFDGTP_NORMAL
 kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
 kfdhdb.dskname: PLAY0 ; 0x028: length=5
 kfdhdb.grpname: PLAY ; 0x048: length=4
 kfdhdb.fgname: P1 ; 0x068: length=2
 ...
 kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
 kfdhdb.ausize: 4194304 ; 0x0bc: 0x00400000
 ...
 kfdhdb.dsksize: 1221 ; 0x0c4: 0x000004c5
 ...

2.3.1. ASM instance baglaniyoruz.  (RAC ortamında aşağıdaki çalışmaları tek node üstünde yapıyoruz)

[oracle@oracle ~]$ export ORACLE_SID=+ASM

[oracle@oracle ~]$ sqlplus /  as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on Fri Jun 24 00:11:02 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

2.3.2. DISK4 ü test amaçlı yeni diskgroup oluşturup bu gruop’a ekliyoruz..

P.S.: Çalışma esnasında asm_diskstring le ilgili hata aldım, aynı hatayı alan başka arkadaşlarımda olmuştu bu yüzden hatayı ve gerekli çalışmayıda ekliyorum.

SQL> CREATE DISKGROUP TEST EXTERNAL REDUNDANCY DISK '/dev/oracleasm/disks/DISK4';

CREATE DISKGROUP TEST EXTERNAL REDUNDANCY DISK '/dev/oracleasm/disks/DISK4'

*

ERROR at line 1:

ORA-15018: diskgroup cannot be created

ORA-15031: disk specification '/dev/oracleasm/disks/DISK4' matches no disks

ORA-15014: path '/dev/oracleasm/disks/DISK4' is not in the discovery set

SQL> show parameter disk

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

asm_diskgroups                       string      DATA1, DATA2

asm_diskstring                       string

disk_asynch_io                       boolean     TRUE

SQL> alter system set asm_diskstring='/dev/oracleasm/disks/DISK*';

alter system set asm_diskstring='/dev/oracleasm/disks/DISK*'

*

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-15014: path 'ORCL:DISK1' is not in the discovery s

SQL> alter system set asm_diskstring='ORCL:DISK*';

System altered.

SQL> CREATE DISKGROUP TEST EXTERNAL REDUNDANCY DISK 'ORCL:DISK4';

Diskgroup created.

2.4. TEST diskgroup’unu oluşturduk aşağıdaki sorguyu çalıştırdıgınızda TEST diskgroupunu görmeniz gerekiyor.

SQL> SELECT STATE, NAME FROM V$ASM_DISKGROUP;

STATE       NAME
----------- ------------------------------
MOUNTED     DATA1
MOUNTED     DATA2
MOUNTED     TEST

2.5. TEST diskgroup’unu mount görüyorsanız  asmye yeni eklemiş oldugunuz disk düzgün calısıyor demektir.Şimdi gerçek amacımız olan DISK4 ü DATA1 groupuna ekliyecez.Bunun için önce TEST diskgroup’unu drop edip DISK4 boşa çıkartıyoruz.

SQL> drop diskgroup test;

Diskgroup dropped.

2.6. Diski eklemeden önce veirtabaninin instanceina sysdba olarak baglanip suanki disk durumumuza bakalim

SQL> COL % FORMAT 99.0
SQL> SELECT name, free_mb, total_mb, free_mb/total_mb*100 "%" FROM v$asm_diskgroup;
NAME                              FREE_MB   TOTAL_MB     %
------------------------------ ---------- ---------- -----
DATA1                                8554      10196  83.9
DATA2                                4902       5137  95.4

2.7. ASM Simdi tekrardan +ASM  instance girelim ve yeni diskimizi DATA1 diskgroupuna ekleyelim.

SQL>  ALTER DISKGROUP DATA1 ADD DISK 'ORCL:DISK4';

Diskgroup altered.

2.8. Normal instanceda asagidaki sorguyu tekrardan calistirip diskimizin yeni diskgroupa eklendigini görelim.

 
SQL> SELECT name, free_mb, total_mb, free_mb/total_mb*100 "%" FROM v$asm_diskgroup;

NAME                              FREE_MB   TOTAL_MB     %
------------------------------ ---------- ---------- -----
DATA1                               13689      15333  89.3
DATA2                                4902       5137  95.4

SQL>

Bunu paylaş:

  • Linkedln üzerinden paylaşmak için tıklayın (Yeni pencerede açılır) LinkedIn
  • X'te paylaşmak için tıklayın (Yeni pencerede açılır) X

Filed Under: Oracle, RAC - Real Application Cluster, Single Node Tagged With: asm, disk, diskgroup, new diskgroup

Comments

  1. saswins says

    Şubat 23, 2015 at 7:12 am

    Wonderful article, helped a lot in fixing my issue.

  2. Bugra Canbakal says

    Şubat 23, 2015 at 10:09 am

    Hello, i am happy that it help you! 🙂

  3. Saurabh says

    Aralık 2, 2015 at 4:13 am

    Hi Bugra,

    Could please let me know where is value of ORCL is mapped to ”/dev/oracleasm/disks’? How Oracle is able to identify value of ORL in disk string?

  4. Bugra Canbakal says

    Ocak 25, 2016 at 9:49 am

    Hi Saurabh,

    I wanted to map to /dev/oracleasm/disks/DISK* but it gave me error , thats the reason i mapped on ORCL:DISK1 . You can find the log on highlight 2.3.2 . It can be a problem of 11.1.0.6.0 .
    PS: Sorry for late answer.

Bir Cevap YazınCevabı iptal et

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About Me



Dil:

  • English
  • Turkish

Kategoriler

  • Oracle
    • RAC – Real Application Cluster
    • RMAN
    • Single Node
    • Standby – Dataguard
  • OS
    • Linux

Blogroll

  • Emre Baransel
  • Gökhan Atıl
  • H. Tonguc Yılmaz
  • Kamil Türkyılmaz
  • Tanel Poder
  • Turkce Oracle
  • Turkish Oracle User Group
  • Uwe Hesse
  • Zekeriya Beşiroğlu

Arşivler

  • Nisan 2014
  • Mart 2014
  • Ağustos 2013
  • Haziran 2013
  • Mart 2013
  • Ocak 2013
  • Aralık 2012
  • Kasım 2012
  • Temmuz 2012
  • Haziran 2012
  • Mayıs 2012
  • Ocak 2012
  • Kasım 2011
  • Ekim 2011
  • Ağustos 2011
  • Temmuz 2011
  • Haziran 2011
  • Şubat 2011
  • Ocak 2011
  • Aralık 2010
  • Kasım 2010
  • Haziran 2010
OCP
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Çerez Politikası

[footer_backtotop]

Copyright © 2010-2014 Bugra Canbakal. All rights reserved.