본문 바로가기
스터디북

<12/08> Passion

by 파이어볼러 2015. 12. 8.

Exa 2일째


basic OLTP(DML 허용 압축기법) 중복된 키 값을 제거함으로써 공간 절약


블락의 pctfree까지 공간이 차면 압축하고 압축된 데이터가 pctfree까지 찰 때까지 알아서 압축진행


EHCC hybrid 란 CU compression Unit단위로 압축하고 컬럼 지향적이지만 row 많이 사용한다 


보관은 컬럼 단위 조회는 row 단위로 할 수 있다 보통 4개의 CU셋으로 구성되며(32k~64k)


CU는 조회를 row로 하지만 저장 자체는 컬럼단위로 하니까 CU라는 말을 쓴다


columnar 데이터는 데이터를 로드할 때 커럼을 기준으로 정렬 


smart scan도 지원된다 cell_offload_hybridcolumnar = false를 주면 비활성화


CU단위로 row를 해석할 수 있다 그래서 hybrid


단일 CU를 읽음으로써 row 전체를 읽을 수 있음 row하나를 읽기 위해서 I/O 4번이 발생함


EHCC 1) 적재 성능 2) 쿼리 성능 3) DML 성능 성능을 고려해야 되는 이유?


1) 컬럼 레벨로 저장하다 보니까 공간의 이동 발생 

2) 하나의 row를 읽을때마다 4개의 블록을 읽어야 한다

3) 하나의 DML에 4개의 블록에 LOCK이 걸린다


write through cache 11.2.0.2 처음에는 캐시 읽지 않고 디스크에서 읽고 주고 

write back cache 11.2.0.3 먼저 플래시에 올려놓고 쓴다 log file sync 대기이벤트 줄어듬


FMOD(SSFM). cell(메모리단위)


NAND Flash 종류

SLC single level cell : 10만번 제일 고가 수명도 제일 길다

MLC multi level cell : 1만번 용량 증가 수명 증가 SLC보다 저렴

TLC triple level cell : 몇천번

EMLC Enterprise multi level cell : 기존의 SLC 타입보다 용량 증대 lifecacycle 증대


Cell은 16개의 FMOD 보유


storage index는 데이터를 디스크에서 읽어 들이는 시간을 제거하기 위한 기능


1회 수행 후 생성되며 테이블당 최대 8개까지 생성됨


그냥 인덱스와 같은 점은 위치값을 식별한다는 것이고 


차이점은 인덱스 범위에 속하지 않을 경우 해당 블록의 스캔 회피하여 불필요한 DIsk I/O를 줄일 수 있다


데이터가 변경될 때 자동으로 변경되며 스마트 스캔 조건 대상 일 경우에만 만들어짐


스토리지 인덱스 사용 조건


스마트 스캔의 최적화 요소 중 하나로 질의가 스마트 스캔으로 수행될 경우에만 사용


- 최소 하나 이상의 조건 충족되면 만들어짐

- 연산자는 =,>,<,>=,<= ,IN,BETWEEN, IS NULL, IS NOT NULL 비교연산자들에 영향을 받고 그외 연산자에는 사용 안함

- 그외 조인, bind 변수, 다중 컬럼 조건, 암호화, subquery, partition, parallel querym, EHCC


B-tree Index Storage index


목적 대용량 ㄷ이터 검색시 Storage 내의 Disk I/O

빠른 성능을 위해 사용 줄이기 위해 사용




DBFS


flashcache도 디스크 그룹으로 쪼갤 수 있다 다만 위험성이 존재한다

  

alter cell startup    services cellsrv

           shutdown            rs

           restart             ms

                               ll


[celladmin@cell01 trace]$ ps -ef | grep cellrs

root     23249     1  0 Dec07 pts/0    00:00:00 /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/bin/cellrssrm

root     23255 23249  0 Dec07 pts/0    00:00:00 /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/bin/cellrsbmt

root     23256 23255  0 Dec07 pts/0    00:00:00 /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/bin/cellrsbkm -rs_conf /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/config/cellinit.ora -ms_conf /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/config/cellrsms.state -cellsrv_conf /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/config/cellrsos.state -debug 0

root     23257 23249  0 Dec07 pts/0    00:00:00 /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/bin/cellrsomt

root     23258 23249  0 Dec07 pts/0    00:00:00 /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/bin/cellrsmmt

root     23265 23256  0 Dec07 pts/0    00:00:00 /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/bin/cellrssmt -rs_conf /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/config/cellinit.ora -ms_conf /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/config/cellrsms.state -cellsrv_conf /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/config/cellrsos.state -debug 0


[celladmin@cell01 trace]$ ps -ef | grep ms.err

root      2273     1  0 Dec07 ?        00:00:51 /usr/java/jdk1.5.0_12//bin/java -Xms256m -Xmx512m -Djava.library.path=/opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/lib -Ddisable.checkForUpdate=true -jar /opt/oracle/cell11.2.2.1.0_LINUX_101005/oc4j/ms/j2ee/home/oc4j.jar -out /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/log/ms.lst -err /opt/oracle/cell11.2.2.1.0_LINUX_101005/cellsrv/deploy/log/ms.err

1000     24185 18061  0 00:09 pts/0    00:00:00 grep ms.err


[oracle@database labs]$ cd /etc/oracle/oracle/lib/

[oracle@database lib]$ pwd

/etc/oracle/oracle/lib

[oracle@database lib]$ ls -al | grep libcell11.

-rw-r--r--  1 oracle oracle    443543 Sep  5  2010 libcell11.so


- LIBCELL 


이 파일을 가지고 쿼리를 변환해서 Cell로 보내기 위한 것


DB서버와 Cellsrv의 통신담당 S/W

사용자요청(SQL)이 오면 metadata(요청 SQL등) 재작성하는 역할 Cellsrv가 알 수 있게


- iDB command -> (infiniband) -> RDS protocol


프로토콜이 ZDP (zero loss zero copy OSI 계층 스킵) RDS에 보낸다


RDS 구성도


오라클(RDS)을 이용한 접근 

-> RDS(TCP 처리를 우회하기 위해 사용, 일부 오버헤드 제거) -> HCA(Host channel Adaptor)


오라클(UDP)을 이용한 접근

-> TCP -> IP -> IPoIB(IP over Infiniteband ) -> HCA ( Host channel Adaptor)

 여기에서 loss 발생 우려


DB 계층

=====================================================

CELL 계층


- Cellsrv <Multithread server>(IORM을 관장한다,default가 아님) 

* 전달 받은 메타데이터 해석, IORM,자체 cell 성능(CPU, memory) 진단 / 통계수집


- MS (Management Server) : exadata cell관리 및 구성 제공 인터페이스 역할(

  시스템 영역에 대한 통계 수집 및 기록

- RS (Restarter server) : Cellsrv, MS 간에 지속적 ping을 통해 heart-bit check 


CellCLI> alter cell shutdown services rs


Stopping RS services...

The SHUTDOWN of RS services was successful.


CellCLI> alter cell startup services rs


Starting the RS services...

Getting the state of RS services...

 running


CellCLI> list cell detail

         name:                   cell01 

         bmcType:                absent

         cellVersion:            OSS_MAIN_LINUX_101005

         cpuCount:               1

         fanCount:               1/1

         fanStatus:              normal

         id:                     3c4bc34b-9acd-4a98-a910-c660c9c76c03

         interconnectCount:      1

         iormBoost:              0.0

         ipaddress1:             192.168.56.101/21

         kernelVersion:          2.6.18-194.el5

         makeModel:              Fake hardware

         metricHistoryDays:      7

         offloadEfficiency:      31.7M

         powerCount:             1/1

         powerStatus:            normal

         status:                 online

         temperatureReading:     0.0

         temperatureStatus:      normal

         upTime:                 0 days, 8:27

         cellsrvStatus:          running

         msStatus:               running

         rsStatus:               running


[oracle@database 2.6.18-194.el5-i686]$ pwd

/usr/src/kernels/2.6.18-194.el5-i686

[oracle@database 2.6.18-194.el5-i686]$ cat Makefile

VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 18

EXTRAVERSION = -194.el5

RHEL_MAJOR = 5

RHEL_MINOR = 5

NAME=Avast! A bilge rat!


[oracle@database network-config]$ cat cellip.ora

cell="192.168.56.101"

cell="192.168.56.103"

cell="192.168.56.104"

[oracle@database network-config]$ pwd

/etc/oracle/cell/network-config



'스터디북' 카테고리의 다른 글

<12/09> Love Girl  (0) 2015.12.09
Exadata Summary  (0) 2015.12.08
<12/07> Hello Hello  (0) 2015.12.07
<12/01> 살아봤으면 해  (0) 2015.12.01
<11/30> Deeper Deeper  (0) 2015.11.30