-
[모각코 7주차] 결과 (18:00 ~21:00)카테고리 없음 2022. 8. 19. 09:08
티베로 인스턴스
- 프로세스 구조
- 대규모 사용자 접속을 수용하는 다중 프로세스 및 다중 스레드 기반의 아키텍쳐 구조
- Listener
- 클라이언트의 새로운 접속 요청을 받아 이를 유휴한 워커 프로세스에 할당
- 클라이언트와 워커 프로세스간에 중계 역할을 담당하며, 별도의 실행 파일인 tblistener를 사용하여 작업
- 모니터링 프로세스에 의해서 생성되며 외부에서 강제 종료하더라도 자동으로 재시작 됨
- 클라이언트의 새로운 접속 요청이 이루어지는 순서
- Client가 접속 요청
- Listener는 현재 빈 WTHR(워커 쓰레드)가 있는 프로세스를 찾아 이 사용자의 접속 요청을 CTHR(컨트롤 쓰레드)에 넘겨줌
- 요청을 받은 CTHR은 자기 자신의 WTHR 상태를 체크해서 일하지 않는 WTHR 할당
- 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이 언제 수행되어야 하는지 판단은 에이전트 프로세스가 하지만 실제 수행은 포어그라운드 혹은 백그라운드 워커 프로세스에게 의뢰하는 구조임
- 다중 스레드 기반 구조로 동작하며, 서로 다른 용도의 업무를 스레드별로 나누어 수행
- 시스템 유지를 위해 주기적으로 처리해야 하는 Tibero 내부의 작업을 담당
- 데이터베이스 쓰기 프로세스 (DBWR)
- 데이터베이스에서 변경된 내용을 디스크에 기록하는 일과 연관된 스레드들이 모여 있는 프로세스
- 사용자가 변경한 블록을 디스크에 주기적으로 기록하는 스레드
- 리두 로그를 디스크에 기록하는 스레드
- 두 스레드를 통해 데이터베이스의 체크포인트 과정을 관할하는 체크포인트 스레드
- 복구 프로세스 (REWP)
- 복구 전용 프로세스
- Crash / Instance Recovery 수행
- 프로세스 구조
- 대규모 사용자 접속을 수용하는 다중 프로세스 및 다중 스레드 기반의 아키텍쳐 구조
- Listener
- 클라이언트의 새로운 접속 요청을 받아 이를 유휴한 워커 프로세스에 할당
- 클라이언트와 워커 프로세스간에 중계 역할을 담당하며, 별도의 실행 파일인 tblistener를 사용하여 작업
- 모니터링 프로세스에 의해서 생성되며 외부에서 강제 종료하더라도 자동으로 재시작 됨
- 클라이언트의 새로운 접속 요청이 이루어지는 순서
- Client가 접속 요청
- Listener는 현재 빈 WTHR(워커 쓰레드)가 있는 프로세스를 찾아 이 사용자의 접속 요청을 CTHR(컨트롤 쓰레드)에 넘겨줌
- 요청을 받은 CTHR은 자기 자신의 WTHR 상태를 체크해서 일하지 않는 WTHR 할당
- 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이 언제 수행되어야 하는지 판단은 에이전트 프로세스가 하지만 실제 수행은 포어그라운드 혹은 백그라운드 워커 프로세스에게 의뢰하는 구조임
- 다중 스레드 기반 구조로 동작하며, 서로 다른 용도의 업무를 스레드별로 나누어 수행
- 시스템 유지를 위해 주기적으로 처리해야 하는 Tibero 내부의 작업을 담당
- 데이터베이스 쓰기 프로세스 (DBWR)
- 데이터베이스에서 변경된 내용을 디스크에 기록하는 일과 연관된 스레드들이 모여 있는 프로세스
- 사용자가 변경한 블록을 디스크에 주기적으로 기록하는 스레드
- 리두 로그를 디스크에 기록하는 스레드
- 두 스레드를 통해 데이터베이스의 체크포인트 과정을 관할하는 체크포인트 스레드
- 복구 프로세스 (REWP)
- 복구 전용 프로세스
- Crash / Instance Recovery 수행
- 프로세스 구조
- 대규모 사용자 접속을 수용하는 다중 프로세스 및 다중 스레드 기반의 아키텍쳐 구조
- Listener
- 클라이언트의 새로운 접속 요청을 받아 이를 유휴한 워커 프로세스에 할당
- 클라이언트와 워커 프로세스간에 중계 역할을 담당하며, 별도의 실행 파일인 tblistener를 사용하여 작업
- 모니터링 프로세스에 의해서 생성되며 외부에서 강제 종료하더라도 자동으로 재시작 됨
- 클라이언트의 새로운 접속 요청이 이루어지는 순서
- Client가 접속 요청
- Listener는 현재 빈 WTHR(워커 쓰레드)가 있는 프로세스를 찾아 이 사용자의 접속 요청을 CTHR(컨트롤 쓰레드)에 넘겨줌
- 요청을 받은 CTHR은 자기 자신의 WTHR 상태를 체크해서 일하지 않는 WTHR 할당
- 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이 언제 수행되어야 하는지 판단은 에이전트 프로세스가 하지만 실제 수행은 포어그라운드 혹은 백그라운드 워커 프로세스에게 의뢰하는 구조임
- 다중 스레드 기반 구조로 동작하며, 서로 다른 용도의 업무를 스레드별로 나누어 수행
- 시스템 유지를 위해 주기적으로 처리해야 하는 Tibero 내부의 작업을 담당
- 데이터베이스 쓰기 프로세스 (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를 기반으로 데이터베이스를 생성하여 운영할 수 있음
- Tibero Active Storage(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 세그먼트
- 언두 데이터는 트랜잭션의 기록을 보관한다
- 프로세스 구조