ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [모각코 7주차] 결과 (18:00 ~21:00)
    카테고리 없음 2022. 8. 19. 09:08

    티베로 인스턴스

    • 프로세스 구조
      • 대규모 사용자 접속을 수용하는 다중 프로세스 및 다중 스레드 기반의 아키텍쳐 구조
      • Listener
        • 클라이언트의 새로운 접속 요청을 받아 이를 유휴한 워커 프로세스에 할당
        • 클라이언트와 워커 프로세스간에 중계 역할을 담당하며, 별도의 실행 파일인 tblistener를 사용하여 작업
        • 모니터링 프로세스에 의해서 생성되며 외부에서 강제 종료하더라도 자동으로 재시작 됨
        • 클라이언트의 새로운 접속 요청이 이루어지는 순서
          1. Client가 접속 요청
          2. Listener는 현재 빈 WTHR(워커 쓰레드)가 있는 프로세스를 찾아 이 사용자의 접속 요청을 CTHR(컨트롤 쓰레드)에 넘겨줌
          3. 요청을 받은 CTHR은 자기 자신의 WTHR 상태를 체크해서 일하지 않는 WTHR 할당
          4. WTHR은 Client와 인증 절차를 거쳐 세션 시작
      • 워커 프로세스
        • 클라이언트와 실제 통신을 하며, 사용자 요구 사항을 처리하는 프로세스
        • Foreground Worker Process는 리스너를 통해 들어온 온라인 요청 처리
        • Background Worker Process는 Internal Task나 Job Scheduler에 등록된 배치 작업을 수행
        • CTHR(Control Thread)
          • 각 워킹 프로세스마다 하나씩 생성, 서버 시작시에 지정된 개수의 워커 쓰레드를 생성
          • 시그널 처리 담당
          • I/O Multiplexing을 지원하며, 필요한 경우 워커 스레드 대신 메세지 송/수신 역할 수행
        • WTHR(Worker Thread)
          • 각 Worker Process마다 여러 개 생성 (10개), client가 보내는메세지를 받아 처리하고 그 결과를 리턴
          • SQL Parsing, 최적화, 수행 등 DBMS가 해야 하는 대부분의 일 처리
        • Background Process
          • 사용자의 요청을 직접 받아들이지 않고 워커 스레드나 다른 배경 프로세스가 요청할 때, 혹은 정해진 주기에 따라 동작하며 주로 시간이 오래 걸리는 디스크 작업 담당
          • 독립된 프로세스로서, 사용자의 요청과 비동기적으로 동작
          • 감시 프로세스 (MONP: monitor process)
            • Tibero 기동 시 최초로 생성되는 종료 시에도 마지막에 종료
            • Tibero 기동 시, 리스너를 포함한 다른 프로세스를 생성, 주기적으로 각 프로세스 상태 점검
            • 교착상태(Deadlock) 도 검사
          • 매니저 프로세스(MGWP)
            • 시스템 관리 용도 프로세스
            • 관리자의 접속 요청을 받아 이를 시스템 관리 용도로 예약된 워커 스레드에 접속을 할당
            • 기본적으로 워커 프로세스와 동일한 역할을 수행하지만 리스너를 거치지 않고, 스페셜 포트를 통해 직접 접속
            • SYS 계정만 접속이 허용, LOCAL 에서만 접속 가능
          • 에이전트 프로세스(AGNT: agent process)
            • 시스템 유지를 위해 주기적으로 처리해야 하는 Tibero 내부의 작업을 담당
              • Internal Task나 Batch job이 언제 수행되어야 하는지 판단은 에이전트 프로세스가 하지만 실제 수행은 포어그라운드 혹은 백그라운드 워커 프로세스에게 의뢰하는 구조임
            • 다중 스레드 기반 구조로 동작하며, 서로 다른 용도의 업무를 스레드별로 나누어 수행
          • 데이터베이스 쓰기 프로세스 (DBWR)
            • 데이터베이스에서 변경된 내용을 디스크에 기록하는 일과 연관된 스레드들이 모여 있는 프로세스
            • 사용자가 변경한 블록을 디스크에 주기적으로 기록하는 스레드
            • 리두 로그를 디스크에 기록하는 스레드
            • 두 스레드를 통해 데이터베이스의 체크포인트 과정을 관할하는 체크포인트 스레드
          • 복구 프로세스 (REWP)
            • 복구 전용 프로세스
            • Crash / Instance Recovery 수행
              • 프로세스 구조
                • 대규모 사용자 접속을 수용하는 다중 프로세스 및 다중 스레드 기반의 아키텍쳐 구조
                • Listener
                  • 클라이언트의 새로운 접속 요청을 받아 이를 유휴한 워커 프로세스에 할당
                  • 클라이언트와 워커 프로세스간에 중계 역할을 담당하며, 별도의 실행 파일인 tblistener를 사용하여 작업
                  • 모니터링 프로세스에 의해서 생성되며 외부에서 강제 종료하더라도 자동으로 재시작 됨
                  • 클라이언트의 새로운 접속 요청이 이루어지는 순서
                    1. Client가 접속 요청
                    2. Listener는 현재 빈 WTHR(워커 쓰레드)가 있는 프로세스를 찾아 이 사용자의 접속 요청을 CTHR(컨트롤 쓰레드)에 넘겨줌
                    3. 요청을 받은 CTHR은 자기 자신의 WTHR 상태를 체크해서 일하지 않는 WTHR 할당
                    4. WTHR은 Client와 인증 절차를 거쳐 세션 시작
                • 워커 프로세스
                  • 클라이언트와 실제 통신을 하며, 사용자 요구 사항을 처리하는 프로세스
                  • Foreground Worker Process는 리스너를 통해 들어온 온라인 요청 처리
                  • Background Worker Process는 Internal Task나 Job Scheduler에 등록된 배치 작업을 수행
                  • CTHR(Control Thread)
                    • 각 워킹 프로세스마다 하나씩 생성, 서버 시작시에 지정된 개수의 워커 쓰레드를 생성
                    • 시그널 처리 담당
                    • I/O Multiplexing을 지원하며, 필요한 경우 워커 스레드 대신 메세지 송/수신 역할 수행
                  • WTHR(Worker Thread)
                    • 각 Worker Process마다 여러 개 생성 (10개), client가 보내는메세지를 받아 처리하고 그 결과를 리턴
                    • SQL Parsing, 최적화, 수행 등 DBMS가 해야 하는 대부분의 일 처리
                  • Background Process
                    • 사용자의 요청을 직접 받아들이지 않고 워커 스레드나 다른 배경 프로세스가 요청할 때, 혹은 정해진 주기에 따라 동작하며 주로 시간이 오래 걸리는 디스크 작업 담당
                    • 독립된 프로세스로서, 사용자의 요청과 비동기적으로 동작
                    • 감시 프로세스 (MONP: monitor process)
                      • Tibero 기동 시 최초로 생성되는 종료 시에도 마지막에 종료
                      • Tibero 기동 시, 리스너를 포함한 다른 프로세스를 생성, 주기적으로 각 프로세스 상태 점검
                      • 교착상태(Deadlock) 도 검사
                    • 매니저 프로세스(MGWP)
                      • 시스템 관리 용도 프로세스
                      • 관리자의 접속 요청을 받아 이를 시스템 관리 용도로 예약된 워커 스레드에 접속을 할당
                      • 기본적으로 워커 프로세스와 동일한 역할을 수행하지만 리스너를 거치지 않고, 스페셜 포트를 통해 직접 접속
                      • SYS 계정만 접속이 허용, LOCAL 에서만 접속 가능
                    • 에이전트 프로세스(AGNT: agent process)
                      • 시스템 유지를 위해 주기적으로 처리해야 하는 Tibero 내부의 작업을 담당
                        • Internal Task나 Batch job이 언제 수행되어야 하는지 판단은 에이전트 프로세스가 하지만 실제 수행은 포어그라운드 혹은 백그라운드 워커 프로세스에게 의뢰하는 구조임
                      • 다중 스레드 기반 구조로 동작하며, 서로 다른 용도의 업무를 스레드별로 나누어 수행
                    • 데이터베이스 쓰기 프로세스 (DBWR)
                      • 데이터베이스에서 변경된 내용을 디스크에 기록하는 일과 연관된 스레드들이 모여 있는 프로세스
                      • 사용자가 변경한 블록을 디스크에 주기적으로 기록하는 스레드
                      • 리두 로그를 디스크에 기록하는 스레드
                      • 두 스레드를 통해 데이터베이스의 체크포인트 과정을 관할하는 체크포인트 스레드
                    • 복구 프로세스 (REWP)
                      • 복구 전용 프로세스
                      • Crash / Instance Recovery 수행
                        • 프로세스 구조
                          • 대규모 사용자 접속을 수용하는 다중 프로세스 및 다중 스레드 기반의 아키텍쳐 구조
                          • Listener
                            • 클라이언트의 새로운 접속 요청을 받아 이를 유휴한 워커 프로세스에 할당
                            • 클라이언트와 워커 프로세스간에 중계 역할을 담당하며, 별도의 실행 파일인 tblistener를 사용하여 작업
                            • 모니터링 프로세스에 의해서 생성되며 외부에서 강제 종료하더라도 자동으로 재시작 됨
                            • 클라이언트의 새로운 접속 요청이 이루어지는 순서
                              1. Client가 접속 요청
                              2. Listener는 현재 빈 WTHR(워커 쓰레드)가 있는 프로세스를 찾아 이 사용자의 접속 요청을 CTHR(컨트롤 쓰레드)에 넘겨줌
                              3. 요청을 받은 CTHR은 자기 자신의 WTHR 상태를 체크해서 일하지 않는 WTHR 할당
                              4. WTHR은 Client와 인증 절차를 거쳐 세션 시작
                          • 워커 프로세스
                            • 클라이언트와 실제 통신을 하며, 사용자 요구 사항을 처리하는 프로세스
                            • Foreground Worker Process는 리스너를 통해 들어온 온라인 요청 처리
                            • Background Worker Process는 Internal Task나 Job Scheduler에 등록된 배치 작업을 수행
                            • CTHR(Control Thread)
                              • 각 워킹 프로세스마다 하나씩 생성, 서버 시작시에 지정된 개수의 워커 쓰레드를 생성
                              • 시그널 처리 담당
                              • I/O Multiplexing을 지원하며, 필요한 경우 워커 스레드 대신 메세지 송/수신 역할 수행
                            • WTHR(Worker Thread)
                              • 각 Worker Process마다 여러 개 생성 (10개), client가 보내는메세지를 받아 처리하고 그 결과를 리턴
                              • SQL Parsing, 최적화, 수행 등 DBMS가 해야 하는 대부분의 일 처리
                            • Background Process
                              • 사용자의 요청을 직접 받아들이지 않고 워커 스레드나 다른 배경 프로세스가 요청할 때, 혹은 정해진 주기에 따라 동작하며 주로 시간이 오래 걸리는 디스크 작업 담당
                              • 독립된 프로세스로서, 사용자의 요청과 비동기적으로 동작
                              • 감시 프로세스 (MONP: monitor process)
                                • Tibero 기동 시 최초로 생성되는 종료 시에도 마지막에 종료
                                • Tibero 기동 시, 리스너를 포함한 다른 프로세스를 생성, 주기적으로 각 프로세스 상태 점검
                                • 교착상태(Deadlock) 도 검사
                              • 매니저 프로세스(MGWP)
                                • 시스템 관리 용도 프로세스
                                • 관리자의 접속 요청을 받아 이를 시스템 관리 용도로 예약된 워커 스레드에 접속을 할당
                                • 기본적으로 워커 프로세스와 동일한 역할을 수행하지만 리스너를 거치지 않고, 스페셜 포트를 통해 직접 접속
                                • SYS 계정만 접속이 허용, LOCAL 에서만 접속 가능
                              • 에이전트 프로세스(AGNT: agent process)
                                • 시스템 유지를 위해 주기적으로 처리해야 하는 Tibero 내부의 작업을 담당
                                  • Internal Task나 Batch job이 언제 수행되어야 하는지 판단은 에이전트 프로세스가 하지만 실제 수행은 포어그라운드 혹은 백그라운드 워커 프로세스에게 의뢰하는 구조임
                                • 다중 스레드 기반 구조로 동작하며, 서로 다른 용도의 업무를 스레드별로 나누어 수행
                              • 데이터베이스 쓰기 프로세스 (DBWR)
                                • 데이터베이스에서 변경된 내용을 디스크에 기록하는 일과 연관된 스레드들이 모여 있는 프로세스
                                • 사용자가 변경한 블록을 디스크에 주기적으로 기록하는 스레드
                                • 리두 로그를 디스크에 기록하는 스레드
                                • 두 스레드를 통해 데이터베이스의 체크포인트 과정을 관할하는 체크포인트 스레드
                              • 복구 프로세스 (REWP)
                                • 복구 전용 프로세스
                                • Crash / Instance Recovery 수행

    Tibero Shared Memory(TSM)

    • 인스턴스에 대한 데이터와 제어 정보를 가지는 공유 데이터 영역
    • 사용자가 동시에 데이터를 공유
    • Database Buffer, Redo Log Buffer, SQL Cache, Data Dictionary Cache로 구성됨
    • Background Process는 인스턴스가 시작될 때 TSM 영역을 할당하고, 인스턴스가 종료되면 할당 해제
    • TSM의 전체 크기는 인스턴스가 시작될 때 생성되어 고정

    티베로 데이터베이스 저장 구조

    • 티베로 데이터베이스 파일
      • 하나 또는 그 이상의 Control files, Datafiles, 그리고 Redo log files
      • Datafiles
        • Table & Indexes 들과 같은 Logical structure들은 물리적으로 Datafiles에 저장되는 파일
      • Redo Log Files
        • 복구를 위하여 데이터베이스에서 변경된 모든 것을 기록하는 파일
      • Control Files
        • 데이터베이스의 물리적 구조와 상태를 기록하는 파일
    • 티베로 데이터베이스 파일 저장방식
      • Tibero Active Storage(TAS)
        • 티베로 데이터베이스에서 사용하는 전용 파일시스템
        • 티베로 TAC 환경에서 TAS를 기반으로 데이터베이스를 생성하여 운영할 수 있음
    • Datafiles
      • 티베로 데이터베이스는 데이터 파일이라는 구조에 데이터베이스 데이터를 저장함
      • 테이블스페이스는 하나 이상의 물리적인 Datafile을 가지며, 하나의 datafile은 오직 하나의 Tablespace에 포함
      • 세그먼트는 하나 이상의 데이터 파일에 걸쳐 있을 수 있지만, 여러 테이블스페이스에 걸쳐져 있는 것은 아님

    물리 저장 구조

    • 온라인 리두 로그 파일
      • 복구를 위해 데이터베이스 변경사항을 기록하고, 리두 로그 그룹은 적어도 2개 이상 순환하며 사용
      • 만약 데이터베이스의 운영 모드가 Archive 모드인 경우 Log Switch가 일어날 때 자동으로 log_archive_dest로 복사된다.
      • 온라인 리두 로그의 내용을 이용하여 아직 데이터파일에 기록되지 않은 커밋된 데이터를 복구함
      • 리두로그 버퍼(커밋되지 않은 트랜잭션, 커밋된 트랜잭션, 언두 데이터, 스키마 객체 관리를 위해 사용한 쿼리문)이 기록됨
    • Multiflexed Redo Log Files
      • Redo log file을 구성하는데 1개의 그룹에 2개 이상의 멤버를 동일 머신 상에서 다른 디스크에 분리하여 구성하기를 권장함
      • 특정 그룹에서 하나의 파일이 손실되어도 특이 사항이 없음
      • 그룹의 모든 멤버들은 동일한 사이즈와 내용을 가지고있음
    • Archived 리두 로그 파일
      • 아카이브 리두 로그 파일은 온라인 리두 로그 파일의 복사본임
      • 데이터베이스의 구성 요소는 아니지만 복구를 위해 사용되는 중요한 파일
      • 용도
        • 데이터베이스 백업
    • Control 파일
      • Control file들은 작은 바이너리 파일로 데이터베이스의 구조
      • 모든 데이터베이스 파일들과 로그 파일들은 컨트롤 파일에서 식별 가능
      • 데이터베이스의 이름은 컨트롤 파일에 저장됨
      • 컨트롤 파일은 마운트, 오픈시 사용됨
      • 복구시 필요한 동기화 정보 저장
      • 최소 다른 2개의 디스크에 컨트롤 파일을 따로 저장하기를 권장

    논리 저장 구조

    • 세그먼트와 익스텐트, 데이터 블록
    • UNDO 세그먼트
      • 언두 데이터는 트랜잭션의 기록을 보관한다
    •  
Designed by Tistory.