DBA가 되고 싶은 병아리
Cache Fusion과 OPS 본문
OPS의 개념
- Instance2에 접속한 A프로세스는 Instrance1에 존재하는 1번 Block을 엑세스하기 위해 호출한다.
- Instance1에 존재하는 1번 Block은 Instance2의 호출에 응답하기 위해 Instance2의 SGA의 DB buffer Cache로 이동해야 한다. 이동을 위해 공유 Storage에 존재하는 Database에 1번 Block을 Write한다.
- Database의 공유 Storage에 Write된 1번 Block은 Instance2의 DB Buffer Cache에 캐싱된다.
- 1번 Block은 Instance2에 캐싱되었기 때문에 Instance2로 접속한 A프로세스에 의해 엑세스 할 수 있게 된다.
Block Transformation : 특정 Instance에 존재하는 Block을 다른 Instance에서 엑세스하기 위해 Database가 존재하는 디스크에 Write한 후 해당 블록을 호출한 인스턴스의 DB 버퍼 캐시로 캐싱하여 데이터 블록을 다른 노드로 이동시키는 방식.
Cache Fusion의 개념
OPS의 문제를 극복하기 위해 고안된 아키텍처
특정 인스턴스에 존재하는블록을 인터커넥트를 통해 다른 노드의 인스턴스로 이동시키는 기술.
- 인스턴스 2에 접속한 A 프로세스는 인스턴스 1에 존재하는 1번 블록을 액세스하기 위해 호출한다.
- 인스턴스 1에 존재하는 1번 블록은 인스턴스 2의 호출에 응답하기 위해 인스턴스 2의 SGA의 DB 버퍼 캐시로 이동해야 한다. 이동을 위해 공유 스토리지에 존재하는 데이터베이스를 이용하지 않고 인스턴스1과 인스턴스2로 캐싱된 1번 블록을 A 프로세스에 의해 엑세스할 수 있게 된다.
- 인터커넥트를 이용하여 인스턴스2로 캐싱된 2번 블록을 A 프로세스에 의해 엑세스할 수 있게 된다.
목적 : 빠른 블록 이동, 캐시 퓨전은 오라클 RAC의 인터커넥트 기술을 통해 원하는 블록을 엑세스할 수 있다. 블록이 특정 노드의 DB 버퍼 캐시에 Load되어 있다면 디스크 I/O를 발생시키지 않기 때문에 블록 이동을 빠르게 처리할 수 있어 Oracle RAC의 성능 향상에 가장 중요한 아키텍쳐이다.
GRD : RAC에서 글로벌 리소스를 관리
GRD의 모든 정보는 GES와 GCS 서비스에 의해 관리된다.
- Data Block 주소
- 최신 Data Block의 위치
- Data Block 모드(NULL(N), Shared(S), Exclusive(X))
- Data Block 역할 (로컬, 글로벌)
GCS : Data의 일관성 및 무결성을 유지 ( RAC의 핵심기능)
GCS는 다음을 담당합니다.
- 데이터 블록 추적
- 인스턴스에서 데이터 블록 요청 수락
- 보류중인 인스턴스에 데이터 블록의 잠금을 해제하거나 CR 이미지를 전송하도록 알립니다.
- 상호 연결을 통해 인스턴스간에 필요에 따라 데이터 블록 전달 조정
- 인스턴스에 PI 유지 또는 폐기 알림
GES : Lock 관리
캐시 퓨전 백그라운드 프로세스 종류
ACMS: Atomic Controlfile to Memory Service (ACMS)
GTX0-j: Global Transaction Process
LMON: Global Enqueue Service Monitor
LMD: Global Enqueue Service Daemon
LMS: Global Cache Service Process
LCK0: Instance Enqueue Process
RMSn: Oracle RAC Management Processes (RMSn)
RSMN: Remote Slave Monitor manages background slave process creation and communication on remote instances. These background slave processes perform tasks on behalf of a coordinating process running in another instance.
Cache Fusion과 SSD
Oracle 12c 이전에는 Disk가 가장 느리다는 전제로 만들어졌기에 메모리 복제 방식이 더 좋다고 만들어진 방법이다.
하지만 SSD로 인하여 Network 전송보다 디스크 전송이 빠른 경우도 발생하게 되었다.
이런 변경이 있더라도 네트워크 방식과 디스크 방식 중에 가장 효율적인 방식을 선택하여 전송한다. 이런 방식은 자동으로 수행한다.
Cache Fusion의 활용
Cache Fusion의 과다한 발생은 성능 저하를 발생시킨다.
방지책
- Data의 정렬을 통한 Cache Fusion 감소
=> 데이터를 유형별로 정렬하여 Cache Fusion으로 인한 성능 저하 최소화
- 파티션 테이블을 이용한 Cache Fusion 감소
=> 중복된 블록을 최소화하여 데이터를 삽입하는 방식으로 성능 저하 최소화
(파티션으로 분할하여 논리적으로나 물리적으로 중복 엑세스를 최소화하는 것으로 보임)
참고 : https://docs.oracle.com/database/121/RACAD/GUID-AEBD3F49-4F10-4BDE-9008-DC1AF8E7DB42.htm#RACAD7275
https://myalpaca.tistory.com/26
https://codelib.tistory.com/23
http://wiki.gurubee.net/pages/viewpage.action?pageId=26739310
http://oracle-help.com/oracle-rac/oracle-rac-cache-fusion/
http://www.dba-oracle.com/t_gupta_oracle_rac_cache_fusion.htm
'Oracle Study' 카테고리의 다른 글
오라클 CRS 관리 (0) | 2021.04.28 |
---|---|
Oracle Clusterware 상태 확인 (0) | 2021.04.28 |
Oracle Flex Cluster (0) | 2021.04.28 |
Oracleasm 관련 (0) | 2021.04.28 |
GIMR 관련 문서 내용 (0) | 2021.04.28 |