ASMCA를 이용하여 GUI로 ask diskgroup을 만들수 있지만 SQL쿼리로 직접 만들어보고 싶어 이런 저런 테스트를 해보았는데 생각보다 바로 처리되지는 않았습니다.

매뉴얼을 보고 구글링을 하며 아래 테스트를 진행하는 것이므로 아래와 동일한 테스트를 하여도 각자의 환경마다 결과가 다를수도 있으니 반드시 비판적으로 봐주시길 바랍니다.

 

먼저 DB 인스턴스에서 아래처럼 쿼리를 수행해보았습니다. 보시는 것처럼 바로 에러리턴

SQL> create diskgroup TEST1 disk '/dev/sdm1';
create diskgroup TEST1 disk '/dev/sdm1'
*
ERROR at line 1:
ORA-15000: command disallowed by current instance type

 

이번에는 ASM 인스턴스에서 동일한 문장수행하였으나 역시 에러가 발생합니다.

[dbatest3:ORCL:/home/oracle1] . oraenv
ORACLE_SID = [ORCL] ? +ASM

[dbatest3:+ASM:/home/oracle1] sqlplus "/as sysasm"
SQL> create diskgroup TEST1 disk '/dev/sdm1';
create diskgroup TEST1 disk '/dev/sdm1'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification '/dev/sdm1' matches no disks
ORA-15025: could not open disk "/dev/sdm1"
ORA-27041: unable to open file
..

 

redundancy를 명시하지 않으면 기본적으로 NORMAL Redundancy라고 하여 external이라고 명시하고 재시도하였지만 또 에러가 납니다.

SQL> create diskgroup TEST1 external redundancy  disk '/dev/sdm1';
create diskgroup TEST1 external redundancy  disk '/dev/sdm1'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification '/dev/sdm1' matches no disks
ORA-15025: could not open disk "/dev/sdm1"

 

그래서 이번에는 ASM Disk를 생성하고 그 경로를 넣어봅니다. 그러나 또 에러가 났습니다.

[dbatest3::root:/root 680]  oracleasm createdisk ASM12 /dev/sdm1
Writing disk header: done
Instantiating disk: done
[dbatest3::root:/root 681] oracleasm createdisk ASM13 /dev/sdl1
Writing disk header: done
Instantiating disk: done

[dbatest3:+ASM:/dev/oracleasm/disks] ls
ASM12  ASM13

SQL> create diskgroup TEST1 disk '/dev/oracleasm/disks/ASM12';
create diskgroup TEST1 disk '/dev/oracleasm/disks/ASM12'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification '/dev/oracleasm/disks/ASM12' matches no disks
ORA-15014: path '/dev/oracleasm/disks/ASM12' is not in the discovery set

SQL> create diskgroup TEST1 disk '/dev/oracleasm/disks/ASM12','/dev/oracleasm/disks/ASM13';
create diskgroup TEST1 disk '/dev/oracleasm/disks/ASM12','/dev/oracleasm/disks/ASM13'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification '/dev/oracleasm/disks/ASM13' matches no disks
ORA-15014: path '/dev/oracleasm/disks/ASM13' is not in the discovery set
ORA-15031: disk specification '/dev/oracleasm/disks/ASM12' matches no disks
ORA-15014: path '/dev/oracleasm/disks/ASM12' is not in the discovery set

 

그래서 이번에는 v$ask_disk상의 path를 입력해보았습니다. 이번에는 정상적으로 ASM Diskgroup이 만들어집니다.

SQL>  select group_number, name, state, type, total_mb, free_mb, usable_file_mb from v$asm_diskgroup;
GROUP_NUMBER MOUNT_S PATH                 NAME                             TOTAL_MB
------------ ------- -------------------- ------------------------------ ----------
           0 CLOSED  ORCL:ASM13                                                   0
           0 CLOSED  ORCL:ASM12                                                   0

SQL> create diskgroup TEST1 disk 'ORCL:ASM12','ORCL:ASM13';
Diskgroup created.

SQL> select group_number, mount_status,path,name,total_mb from v$asm_disk;
GROUP_NUMBER MOUNT_S PATH                 NAME                             TOTAL_MB
------------ ------- -------------------- ------------------------------ ----------
           4 CACHED  ORCL:ASM12           ASM12                                2046
           4 CACHED  ORCL:ASM13           ASM13                                2046

SQL>  select group_number, name, state, type, total_mb, free_mb, usable_file_mb from v$asm_diskgroup;
GROUP_NUMBER NAME                           STATE       TYPE     TOTAL_MB    FREE_MB USABLE_FILE_MB
------------ ------------------------------ ----------- ------ ---------- ---------- --------------
           4 TEST1                          MOUNTED     NORMAL       4092       3990           1995

 

참조

http://docs.oracle.com/database/121/OSTMG/GUID-7FB8914B-0995-4DA0-8F37-15B8EEAEEE4D.htm#OSTMG94107

http://docs.oracle.com/database/121/OSTMG/GUID-CD6B3821-FF1A-4882-BF10-97CE138C800D.htm#OSTMG94121