1. HCC Compress 은 ? 


  - Exadata 를 국내에서 구매하는 경우, HCC(HYBRID COLUMNAR COMPRESSION) 라고 이름 붙여진 압축(Compress Option) 기능을 기본적으로 사용할 수 있습니다. 


  - 아래의 4가지 유형으로 구분되며, 구체적인 비교는 여기서는 생략합니다. (관련 자료는 구하기 어렵지 않습니다), 쉽게 아래쪽으로 갈 수록 예상 압축율이 높아집니다. (ex> 예상 압축율 - QUERY LOW : 4x,  ARCHIVE HIGH : 12x )

    > COMPRESS FOR QUERY LOW

    > COMPRESS FOR QUERY HIGH

    > COMPRESS FOR ARCHIVE LOW

    > COMPRESS FOR ARCHIVE HIGH 


  - 참고로) COMPRESS FOR OLTP 는 HCC 가 아니라.. ACO (Oracle DB 의 유료 압축옵션 - Advanced Compress Option - ) 를 별로로 구매한 경우에, 사용이 가능합니다. 


2. 4가지 유형 중.. 고객들이 선호하는 유형은 => "QUERY HIGH"


  - 저의 개인적인 경험, 주위에서 비슷한 일을 하는 친구 들의 증언?에 따르면, 대형 국내기업의 경우는 대부분 "COMPRESS FOR QUERY HIGH" 라고 합니다. 


  -  추가로, 보통, 테이블단위로 적용합니다. 좀 효율적으로 할려면...파티션단위로도 하시나 관리상의 이유로, 테이블 단위가 많습니다. ( OLTP 가 일어나면 압축이 깨지고 그래서..다시 압축하고, 이렇게 반복되다 보니 Table 단위를 선호하는 것 같네요 ) 


3. HCC 적용여부 확인방법


  -- Table 단위로, 적용 여부를 조회해 볼 수 있습니다.


SQL> select table_name, compression, compress_for from dba_tables where table_name = 'TEST1' ;


TABLE_NAME      COMPRESS      COMPRESS_FOR

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

TEST1                 ENABLED       QUERY HIGH


SQL>  


  - 간혹, Table 이 Compress 되어 있음에도.. 툴(Ex> Ora*, TO* 등)에서 보이지 않는 다는 이유로,  Compress 안 되 있다고 이야기 하는 분들이 있습니다만, 툴이 최신 버전이 아닌 경우, 나름 최신 DB 기술인 HCC 정보를 가져올 수 없어서 인 경우가 많습니다.

  




'IT-Tech > Appliance' 카테고리의 다른 글

[Exadata] Oracle ASM 에 Tablespace 생성  (0) 2016.08.09

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