0. 개요


  - ASM 은 Oracle DB 10g 이상에서 사용할 수 있는 Oracle 사의 Cluster File System 이지만, 사실상 (raw device 를 선호하는 국내 여건 상) Exadata 환경에서 보편적으로 사용되고 있습니다.  


  - Exadata 초기설정 시, DATA, FRA, ACFS, DBFS 등의 DG(DIsk Group)를 생성해 줍니다.

  - DB 에서는 Tablespace 를 기본적으로 +DATA DG 에 생성합니다.


  - 고객사 정책에 따라, 별도로 남긴 Disk(혹은 추가 Disk)를 이용해서, 아래 처럼 USRDATA1 라는 추가 DG 를 생성할 수는 있으나, Oracle 에서 권고하지는 않습니다. 또 이렇게 사용하는 고객사들도 거의 없습니다.


SQL> CREATE DISKGROUP USRDATA1 EXTERNAL REDUNDANCY DISK '/dev/d1','/dev/d2','/dev/d3','/dev/d4' ;

    혹은

SQL> CREATE DISKGROUP USRDATA1 EXTERNAL REDUNDANCY DISK '/dev/d*' ;

    이렇게 생성합니다.


    -- 이하, 하드웨어 기반의 미러링이 구성되지 않은 경우, ASM에서 “fail group” 을 지정해 디스크그룹을 생성 가능


SQL> CREATE DISKGROUP USRDATA1 NORMAL REDUNDANCY FAILGROUP failgrp1 DISK '/dev/d1', '/dev/d2', FAILGROUP failgrp2 DISK '/dev/d3', '/dev/d4' ; 



1. Tablespace 생성


  A. DATA DG 에 USERS 이름의 업무용 Tablespace 생성 

    

    -- 기본적으로 File System 에 생성하는 것과 동일합니다만, Oracle 에서 OMF (Oracle Managed Files) 로 관리하기 때문에,, Location 만 지정하고 (이것도 Default 로 잡히는 +DATA 에 생성 시 생략 가능) 수행하면 됩니다. 


SQL> CREATE TABLESPACE USERS DATAFILE SIZE 1024m ; 


    -- 동일하게 dba_data_files 에서 tablespace 와 datafile 정보를 볼 수 있습니다.


SQL> select tablespace_name, file_name, bytes/1024/1024/1024 Gb from dba_data_files order by tablespace_name, file_name ; 


    -- 물론,, 이름을 직정 지정해주고 싶은 경우, 아래 처럼도 가능합니다. 다만, Oracle 에서 권장하는 방법은 아니고, Data Guard 등으로 연계된 경우 등에서 이슈발생 가능성이 있읍니다. 


SQL> CREATE TABLESPACE USERS DATAFILE '+DATA1/users_data_01.dbf' SIZE 1024m ; 


    -- Exadata 에서는 여러개의 datafile 을 생성하는 것 보다는, 단일 datafile 의 size 를 크게 가져가는 것을 권고 합니다.

    -- 사례) 대형 고객사에서는 1개 Datafile 의 size 를 30Gb 크기로도 생성 합니다.

    -- 추가로, Oracle DB 에서는 (10g, 11gR2 까지는 그렇습니다. 12c 는 확인을 못 했습니다.) 1개 Tablespace 당 Datafile 을 1022개 까지인가? 추가할 수 있고, 일반 datafile 의 Max Size 는 약 31.9Gb 입니다. 


  B. USERS Tablespace 에 Datafile 추가 시  * << Oracle 권장방법 >>

 

 SQL> alter tablespace USERS add datafile size 1g ;


  C. DATA DG 에 Redo Log 를 생성하는 경우


    -- Online Redo Log File 도 DATA DG 에 생성 가능 합니다. 하기 SQL 은 Sample Query 입니다.


SQL> alter database add logfile GROUP 1 ('+DATA1/redo/group_1.258.3','+DATA2/redo/group_1.258.3') SIZE 8g ; 


2. ASM 관련된 DG 관리


  A. Location 확인 : data 파일 생성 기본위치


SQL> show parameter db_create_file_dest ; 


SQL> select group_number, name, state, type, total_mb, free_mb from v$asm_diskgroup;

SQL> select b.name group_number, a.name disk_name, a.header_status, a.state, a.free_mb 

        from v$asm_disk a, v$asm_diskgroup b 

        where a.group_number = b.group_number ; 

    

    -- 아래 처럼, 기본 위치를 변경 가능 


SQL> alter system set db_create_file_dest='+DATA1' ;   


3. 추가로.. ASM 사용량 보기 셈풀Query 입니다. ==> Tablespace Freespace 관리 시, OS File System Free 는 먼저 살펴봐야 합니다. 


  -- Query : 아쉽게..  실행 결과 화면은 없습니다. 


SET LINESIZE 350

SET PAGESIZE 1000


col name format a10

col USABLE_FILE_GB format 999,999.00

col TOTAL_GB       format 999,999.00

col FREE_GB        format 999,999.00

col USABLE_CALC_GB format 999,999.00


select name

     , USABLE_FILE_MB/1024 USABLE_FILE_GB

     , total_mb/1024 TOTAL_GB, free_mb/1024 FREE_GB

     , 100-round(free_mb/total_mb*100) "usgae(%)"

     , ((FREE_MB - REQUIRED_MIRROR_FREE_MB))/1024 USABLE_CALC_GB

     , state

     , type

     , group_number

  from v$asm_diskgroup

 order by name ; 







+ Recent posts