hyeonga_code
Database_76_ORACLE 구조_ORACLE DBMS, COMMIT 처리, CKPT 본문
-- Oracle 구조
-- Oracle DBMS_관계형 데이터베이스 관리 시스템
-- 정보를 관리하는 데 있어 개방적이고 종합적이며 통합적인 접근 방식을 제공하는 데이터베이스 관리 시스템입니다.
-- 서버 구조
-- Instanace : Memory + Process
-- 데이터베이스 : DB를 구성하는 파일의 집합입니다.(디스크)
1) 서버 프로세스
1-1) [ Instance ]
-- PGA_Program Global Area : 프로그램 글로벌 영역
-- 공유되지 않습니다.
-- 서버 프로세스에 의해 쓰기가 가능합니다.
-- 포함 : 정렬 영역, 세션 정보, Cursor State, Stack Space
-- 서버 프로세스들이 각각 가지고 있습니다.
1-1-1) [ SGA_System Global Area ] : 시스템 공유 영역
-- Oracle이 시스템으로부터 자원을 할당 받아 관리하는 시스템 영역입니다.
1-1-1-1) [ 데이터베이스 버퍼 캐시 ]
-- 가장 최근에 사용된 블록을 저장합니다.
-- 버퍼 크기 : DB_BLOCK_SIZE를 기반으로 합니다.
-- 버퍼 수 : DB_BLOCK_BUFFERS에 의해 정의됩니다.
1-1-1-2) [ 리두 로그 버퍼 ] : 올려둔 버퍼를 기록합니다. DML만 남기게 됩니다.
-- LOG_BUFFER에 의해 정의된 크기를 가집니다.
-- Instance를 통해 변경된 사항을 기록합니다.
-- 연속적으로 사용합니다.
-- 순환 버퍼입니다.
1-1-1-3) [ Shared Pool ]
-- 라이브러리 캐시는 SQL 문 텍스트, 구문 분석된 코드 및 실행 계획을 포함합니다.
-- 데이터 딕셔너리 캐시는 테이블, 열, 기타 객체 정의 및 권한을 포함합니다.
-- Shared PooL은 SHARED_POOL_SIZE에 의해 크기가 조정됩니다.
-- 단편화가 심하게 일어날 수 있습니다.
1-1-1-1-1) [ 라이브러리 캐시 ]
1-1-1-1-2) [ 데이터 딕셔너리 캐시 ]
1-1-2) [ 백그라운드 프로세스 ]
1-1-2-1) [ 필수 백그라운드 프로세스 ]
-- 문제가 발생하는 경우 DB가 중단됩니다.
1-1-2-1-1) [ DBWn_Database Writer ] : 버퍼 캐시에 있는 수정된 버퍼의 내용을 데이터 파일에 기록합니다.
1-1-2-1-2) [ LGWR_Log Writer ] : 데이터베이스 버퍼 캐시에서 발생한 모든 변화를 기록합니다.
-- SGA의 리두로그 버퍼에 생겨나며 트랜잭션이 완료되었을 때 LGWR가 리두로그 버퍼의 내용을 온라인 리두로그 파일에 기록합니다.
1-1-2-1-3) [ CKPT_Check Point ]
-- 변경된 데이터베이스 버퍼를 디스크 내의 데이터 파일로 저장하는 것을 보장합니다.
-- 변화된 데이터 블록의 수, 일정 시간을 두고 DBWn 프로세스가 데이터베이스 버퍼를 데이터 파일로 저장하도록 명령합니다.
-- 체크 포인트가 발생하면 데이터 파일과 컨트롤 파일의 헤더를 갱신합니다.
1-1-2-1-4) [ SMON_System Monitor ] : 오라클 인스턴스를 관리하는 프로세스입니다.
-- 오라클 인스턴스 fail시 인스턴스를 복구하는 역할입니다.
-- 인스턴스를 자동으로 복구할 수 있습니다.( 디스크 장애는 복구 불가 )
-- 데이터 파일의 빈 공간을 연결하여 하나의 큰 빈공간으로 만듭니다.
-- 더 이상 사용하지 않는 임시 블록 세그먼트들을 재사용할 수 있게 합니다.
1-1-2-1-5) [ PMON_Process Monitor ] : 각 프로세스들을 감시하는 프로세스입니다.
-- 비정상 종료된 유저 프로세스 데이터베이스의 접속을 정리합니다.
-- 정상적으로 작동하지 않는 프로세스들을 감시하여 종료시킵니다.
-- 비정상적으로 종료된 프로세스들에게 할당된 SGA 리소스를 재사용할 수 있게 합니다.
-- 커밋되지 않은 트랜잭션을 롤백시킵니다.
1-1-2-2) [ 기타 백그라운드 프로세스 ]
1-2) [ 데이터 베이스 ]
1-2-1) [ 데이터 파일 ] : 용량을 좌우합니다.
1-2-2) [ 콘트롤 파일 ]
1-2-3) [ 온라인 리두 로그 파일 ]
-- [ 백업 파일 ] : 데이터 파일, 콘트롤 파일, 온라인 리두 로그 파일을 백업합니다.
-- [ 파라미터 파일 ]
-- [ 네트워크 파일 ]
-- [ 아카이브된 로그 파일 ]
-- 리두 로그는 복구를 위함입니다.
-- 램 : 주 기억 장치
-- 하드디스크 : 보조 기억 장치
-- COMMIT 처리
-- 서버 프로세스에서 리두 로그 버퍼를 지나 LGWR > 리두 로그 파일로 들어가게 됩니다.
-- 데이터를 복구하는 경우 사용하는 곳에 저장합니다.
-- 복구 파일을 저장하면서 메모리에 커밋 직후의 데이터가 저장되어 있습니다.
-- CKPT : 커밋한 데이터를 계속 호출하는 경우 데이터가 데이터베이스에 저장되기 어렵습니다.
-- 메모리의 데이터를 정기적으로 백업하는 작업입니다.
-- 데이터베이스를 재시동하는 것이 아닙니다.
'Oracle Database' 카테고리의 다른 글
Database_78_DATABASE DB_테이블 스페이스 (0) | 2023.08.28 |
---|---|
Database_77_DATABASE DB 연결_SELECT, SHUTDOWN (0) | 2023.08.27 |
Database_75_정규화 (0) | 2023.08.27 |
Database_74_데이터베이스 설계_E-R 모델 (0) | 2023.08.26 |
Database_73_SQL FUNDAMENTALS_실습 3 (0) | 2023.08.25 |