Dynamic Resource Remastering 이란

  • Object에 대한 요구 정도에 따라 Master Node가 동적으로 변경되는 기능
    • 특정 블록을 자주 엑세스하는 인스턴스가 해당 블록의 마스터 노드로 변경되는 것을 동적 리소스 리마스터링이라고 부름
    • V$GCSPFMASTER_INFO뷰를 참조하면 리소스 리마스터링에 대한 발생여부를 확인할수 있음
  • 버전별 구현범위 내용
버전구현범위
~9i실질적으로 구현 안됨
~10g R1Data File단위로 수행
~10g R2Segment(Table/Index/Partition)단위로 수행

Dynamic Resource Remastering 예제

  • 인스턴스 A의 GRD는 테이블 A를관리함
  • 그런데 인스턴스B가 테이블A에 대하여 자주 엑세스한다면, 동적으로 인스턴스B의 GRD에서 테이블A를 관리하도록 마스터 권한이 이동함

h2.V$GCSPFMASTER_INFO 뷰

  • 10g R1 (파일단위로 리소스 리마스터링)

SQL> desc v$gcspfmaster_info
-------------------------------------------- -----------
FILE_ID                                       NUMBER  - 데이터파일아이디
CURRENT_MASTER                                NUMBER  - 현재 마스터번호(0부터 시작)
PREVIOUS_MASTER                               NUMBER  - 이전 마스터번호
REMASTER_CNT                                  NUMBER  - 리마스터링 횟수

  • 10g R2 (오브젝트(세그먼트)단위로 리소스 리마스터링)

SQL> desc v$gcspfmaster_info
-------------------------------------------- -----------
FILE_ID                                       NUMBER  - 데이터파일아이디(항상0)
OBJECT_ID                                     NUMBER  - 오브젝트번호(ALL_OBJECTS뷰와 조인)
CURRENT_MASTER                                NUMBER  - 현재 마스터번호(0부터 시작)
PREVIOUS_MASTER                               NUMBER  - 이전 마스터번호
REMASTER_CNT                                  NUMBER  - 리마스터링 횟수

  • 전체노드의 리소스 리마스터링의 발생여부는 글로벌 뷰인 GV$GCSPFMASTER_INFO뷰를 통해 확인할수 있음

oradebug이용 Resource Remastering

  • oradebug lkdebug명령(락 디버깅)으로 리소스 리마스터링을 직접수행가능
    • oradebug lkdebug help명령 : 도움말
  • 예제

     * At Instance A: SQL> oradebug lkdebug -m pfile 13
        - 13번 Data File의 Resource Master를 Instance A로 변경

문서에 대하여