카테고리 없음

[모각코 7주차] 결과 (18:00 ~21:00)

ddd12347 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 세그먼트
    • 언두 데이터는 트랜잭션의 기록을 보관한다
  •