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 |