GRD

[17] RAC GRD 개요

RAC 성능 튜닝과 관련된 문서들을 보면 대부분 가장 먼저 GRD (Global Resource Directory)를 설명합니다. 아마도 RAC 성능 튜닝에 있어서 RAC의 내부 아키텍처에 대한 이해가 필수적인 요소이고, 어찌 보면 GRD가 RAC 아키텍처의 가장 중요한 부분을 차지하고 있기 때문인 것 같습니다. 대략 1주일동안 GRD에 대한 학습과 연구를 마무리하고 글을 정리하려고 보니 하나의 포스팅으로는 글이 너무 길어질 것 같아서 다음과 같이 4개의 주제로 나누어서 포스팅을 하고자 합니다.

GRD 부분부터는 내부 동작원리를 설명해야 됨에 따라 인터널한 내용을 포함하게 됩니다. 인터널 부분은 학습하는 것도 쉽지 않지만, 학습을 토대로 연구한 내용을 설명하는 것도 쉽지 않습니다. 너무 깊이 설명하면 실용성이 현저히 떨어지고, 너무 가볍게 설명하면 트러블슈팅 시에 도움이 되지 않기 때문입니다. 이러한 점을 고려해서 제가 이해하는 수준에서 적절한 깊이로 설명하려고 합니다.

(more…)

[16] X$BH, X$LE, X$KJBL을 이용한 마스터 노드 확인 방법

현재 RAC GRD (Global Resource Directory)에 대해서 연구중입니다. GRD의 동작원리를 파악하기 위해서는 리소스 마스터 노드 및 사용 노드에 대한 분석이 필수적이며 이를 위해 주로 3개의 X$ 테이블을 이용합니다.

  • X$BH   (버퍼 헤더 구조 파악)  : V$BH의 베이스 테이블
  • X$LE   (락 엘리먼트 구조 파악) : V$LOCK_ELEMENT의 베이스 테이블
  • X$KJBL (BL 락 구조 파악)     : V$GES_ENQUEUE의 베이스 테이블

V$를 이용하지 못하는 이유는 V$에는 각 뷰간의 조인에 필요한 연결고리 칼럼이 제공되지 않기 때문입니다. 따라서 부득이하게 X$를 이용합니다. X$ 간의 연결고리 칼럼은 다음과 같습니다.

  • X$BH.LE_ADDR = X$LE.LE_ADDR
  • X$LE.LE_KJBL = X$KJBL.KJBLLOCKP

(more…)