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