본문 바로가기

스터디72

CH1.오라클 아키텍처 - 4.Redo , 5. Undo 4.Redo Redo? 오라클은 데이터파일과 컨트롤파일에 가해지는 모든 변경사항을 하나의 Redo 로그 엔트리로써 Redo 로그에 기록합니다. Redo 로그는 Online Redo log와 Archive redo log로 구성됩니다. Online Redo 로그는 redo 로그 버퍼에 버퍼링된 로그 엔트리를 기록하는 파일로써 최소 두 개 이상의 파일로 구성됩니다. 현재 사용 중인 redo 로그 파일이 가득차면 다음 redo 로그 파일로 로그 스위칭이 발생하며, 모든 로그 파일이 가득차면 다시 첫번째 redo 로그 파일부터 재사용하는 라운드 로빈 방식으로 운영되고 있습니다. Archived redo 로그는 online redo 로그가 재사용되기 전에 다른 위치로 백업해둔 파일을 말합니다. archive lo.. 2019. 12. 19.
CH1.오라클 아키텍처 - 3.버퍼 LOCK 1)버퍼 lock이란? 아주 짧은 순간일지라도 두 개 이상의 프로세스가 동시에 버퍼 내용을 읽고 쓴다면, 문제가 생길 수 있습니다. 이를 막기 위해 캐시된 버퍼 블록을 읽거나 변경하려는 프로세스는 먼저 버퍼 헤더로부터 버퍼 lock을 획득해야 합니다. 버퍼 lock을 획득했다면 래치를 곧바로 해제합니다. 또 다른 안정장치를 마련해 두었기때문에 이제 안심하고 블록을 읽고 쓸 수 있습니다. 버퍼 내용을 읽기만 할때는 Share 모드, 변경할 때는 Exclusive 모드로 lock을 설정합니다. 액세스를 직렬화하기 위한 매커니즘이므로 당연히 Exclusive 모드 lock은 한 시점에 하나의 프로세스만 얻을 수 있습니다. Select문이더라도 블록 클린아웃이 필요할 때는 버퍼 내용을 변경하는 작업이므로 Exc.. 2019. 12. 18.
CH1.오라클 아키텍처-2.DB 버퍼 캐시 1절의 기본 아키텍쳐에서 잠깐 알아봤던 시스템들에 대해 좀 더 디테일하게 정리한 내용입니다. 2. DB 버퍼 캐시 오라클은 빠른 데이터입출력을 위해 SGA공유 메모리를 이용하는데, 구체적으로 사용자가 입력한 데이터를 데이터파일에 저장하고 이를 다시 읽는 과정에서 거쳐가는 캐시 영역은 DB 버퍼캐시입니다. 1)블록 단위 I/O 오라클은 블록단위 I/O 단위로 이루어 집니다. 메모리 버퍼 캐시에서 버퍼 블록을 액세스할 때뿐만 아니라, 데이터파일에 저장된 데이터 블록을 DB버퍼 캐시로 적재하거나 캐시에서 변경된 블록을 다시 데이터파일에 저장할때도 블록단위로 처리합니다. 데이터파일에서 버퍼 캐시로 블록을 적재할 때, 인덱스를 경유한 테이블 액세스 시에는 한번에 한 블록씩 읽는 single read block으로.. 2019. 12. 17.
CH1.오라클 아키텍쳐 - 1.기본 아키텍쳐 1.기본 아키텍쳐 오라클은 데이터베이스(데이터를 저장하는 파일집합)와 이를 액세스하는 프로세스 사이에 SGA라고 하는 메모리 캐시 영역을 두고 있습니다. 워드 프로세스와 비슷한 개념으로 작동하지만 차이점음 많은 프로세스가 동시에 데이터를 액세스한다는 사실입니다. 이 때문에 사용자 데이터를 보호하는 LOCK은 물론 공유 메모리 영역인 SGA(Shared Global Area)상에 위치한 데이터 구조에 대한 액세스를 직렬화 하기 위한 LOCK 매커니즘도 필요해집니다. 오라클에서는 아래와 같이 데이터베이스와 인스턴스를 구분하고 있습니다. 데이터베이스= 디스크에 저장된 데이터 집합 인스턴스=SGA공유메모리영역과 이를 액세스하는 프로세스집합 서버프로세스가 하는일은 Parse-Execute-Petch의 역할을 하며.. 2019. 12. 16.