본문 바로가기
728x90
반응형

SQLP4

[SQLP] Redo 오라클은 데이터파일과 컨트롤 파일에 가해지는 모든 변경사항을 하나의 Redo 로그 엔트리로서 Redo 로그에 기록(데이터파일에 대한 변경은 캐시된 블록 버퍼를 통해 이루어짐) - Online Redo 로그 : Redo 로그 버퍼에 버퍼링된 로그 엔트리를 기록하는 파일이며, 최소 두 개 이상의 파일로 구성됨. 현재 사용 중인 Redo 로그 파일이 꽉 차면 다음 Redo 로그 파일로 로그 스위칭이 발생. 계속 Redo 로그를 써 나가다가 모든 Redo 로그 파일이 꽉 차면 다시 첫 번째 Redo 로그 파일로부터 재사용하는 라운드 로빈 방식 사용 - Offline Redo(Archived Redo) 로그 : Online Redo 로그가 재사용되기 전에 다른 위치로 백업해 둔 파일 Redo 로그의 3가지 목적 .. 2024. 1. 15.
[SQLP] 버퍼 LOCK (1) 버퍼 LOCK - 두 개 이상의 프로세스가 동시에 버퍼 내용을 읽고 쓴다면 문제가 생길 수 있기 때문에, 캐시된 버퍼 블록을 읽거나 변경하려는 프로세스는 먼저 버퍼 헤더로부터 버퍼 LOCK을 획득해야 함 - 버퍼 LOCK을 획득했다면 래치를 곧바로 해제 - Share 모드 LOCK : 버퍼 내용을 읽기만 할 때 - Exclusive 모드 LOCK : 버퍼 내용을 변경하고자 할 때(한 시점에 하나의 프로세스만 얻을 수 있음) - 해시 체인 래치를 획득하고 목적한 버퍼를 찾았는데 다른 프로세스가 버퍼 LOCK을 Exclusive 모드로 점유하고 있다면, 버퍼 헤더에 있는 버퍼 LOCK 대기자 목록에 자신을 등록하고 일단 래치를 해제 - 대기자 목록에서 waiting → 버퍼 LOCK 해제됨 → 버퍼 .. 2024. 1. 15.
[SQLP] DB 버퍼 캐시 DB 버퍼캐시 : 사용자가 입력한 데이터를 데이터파일에 저장하고 이를 다시 읽는 과정에서 거쳐가는 캐시 영역(SGA 구성요소) (1) 블록 단위 I/O : 오라클에서 I/O는 블록 단위로 이루어져 있음 - 블록 단위 처리(1) : 메모리 버퍼캐시 → 버퍼블록을 액세스할 경우 - 블록 단위 처리(2) : 데이터파일에 저장된 데이터 블록을 DB 버퍼 캐시로 적재할 경우 - 블록 단위 처리(3) : 캐시에서 변경된 블록을 다시 데이터파일에 저장할 경우 - DBWR 프로세스 : 버퍼 캐시로부터 변경된 블록(Dirty 버퍼 블록)을 주기적으로 데이터 파일에 기록하는 작업을 수행(성능향상을 위해 한 번에 여러 블록 처리) - 블록 단위로 읽는다는 의미 : 하나의 레코드에서 하나의 컬럼만을 읽고자 하더라도 레코드가 .. 2024. 1. 15.
[SQLP] 오라클 기본아키텍처 오라클은 데이터베이스와 이를 액세스하는 프로세스 사이에 SGA(System Gloval Area 또는 Shared Global Area)라고 하는 메모리 캐시 영역을 두고 있다. ※ SGA는 서버 프로세스와 백그라운드 프로세스가 공통으로 액세스하는 데이터와 제어 구조를 담는다. 디스크를 경유한 입출력 : 물리적으로 액세스 암이 움직이면서 헤드를 통해 데이터를 읽고 씀 메모리 캐시를 통한 입출력 : 전기적 신호에 불과하기 때문에 디스크 I/O에 비교할 수 없이 빠름 많은 프로세스가 동시에 데이터를 액세스 → 사용자 데이터를 보호하는 Lock은 물론 공유 메모리 영역인 SGA상에 위치한 데이터 구조에 대한 액세스를 직렬화 하기 위한 LOCK 메커니즘(Latch, 래치)도 필요 오라클은 블록 단위로 읽고, 저.. 2024. 1. 14.
728x90
반응형