by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

RAC 성능 Dynamic Resource Remastering




Dynamic Resource Remastering 이란

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

Dynamic Resource Remastering 예제

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

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로 변경
    

문서에 대하여

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.