ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
하루에 한 문제씩 푼다는 결심 뒤로,,, 1주일도 아니고 2주일도 아니고 무려 한달만에 책을 폈다.
바로 시험보긴 글른거아닌가...? 2024년을 바라봐야하나 싶네;;
아무튼 공부한 내용을 정리해보자...
1. Undo / Redo
1) Undo 사용목적
- Transaction rollback
- Transaction recovery
- Read consistance
2) Redo 사용목적
- Database recovery(=Media recovery)
- Cache recovery
- Fast commit
3) 차이점
비슷하지만 다르다!
- UNDO는 되돌리는 것
- REDO는 다시하는것
4) Undo 메커니즘
- Snapshot Too Old
오라클은 데이터를 읽는 도중에 다른 트랜잭션에 의해 변경되었거나 변경이 진행중인 블록을 만나면 Undo 정보를 이용해서 과거 시점으로 되돌린 CR Copy 블록을 만들어서 읽음
필요한 Undo 블록이 다른 트랜잭션에 의해 재사용(Overwriting)된 상태면 CR Copy를 생성할 수 없는데, 이 때 Snapshow Too Old 에러가 발생함
5) Redo 메커니즘
- Log Force at Commit
트랜잭션의 영속성을 보장하려면 최소한 커밋 시점에는 로그를 메모리가 아닌 데이터 파일에 안전하게 기록해야 함
- Fast Commit
커밋 정보가 로그파일에 기록되어 있기만 하면, Instance crash가 발생하더라고 Redo log를 이용해 언제든 복구 가능하므로 사용자 프로세스는 안심하고 커밋을 완료할 수 있음
- Write Ahead Logging
DBWR가 버퍼캐시의 Dirty 블록들을 데이터파일에 기록하기 전에 먼저 LGWR가 해당 Redo 엔트리를 모두 Redo log file에 기록했음이 보장되어야 함
2. SGA / PGA
1) System Global Area(SGA)
- 시스템으로부터 자원을 할당받아 관리하는 오라클 시스템 영역
2) Program Global Area(PGA)
- 프로세스에 대한 데이터와 제어정보가 포함된 비 공유 메모리 영역
3) SGA 구성요소
- Buffer cache
오라클이 데이터를 읽고 수정하기 위해 디스크에 존재하는 데이터를 읽어 저장하는 메모리 공간
- Data dictionary cache
먼저 Data dictionary란 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공하는데, 오라클 데이터베이스는 명령이 실행될 때마다 이 Data dictionary에 접근함
오라클은 Data dictionary를 읽어들여 객체의 존재여부와 사용자에게 적합한 접근 권한이 있는지 확인하고, Database dictionary를 계속 갱신하여 데이터베이스의 구조, 데이터, 권한 등의 변경사항을 반영함
사용자가 Sql qurey를 질의할 때 parse 작업을 하는데, query에서 사용된 테이블이나 컬럼 혹은 사용자의 권한을 확인하는 작업을 진행하게 되는데, 이 때 Data dictionary를 참조하게 됨
이 때, Data dictionary cache에 로딩된 이후로 디스크에 저장된 Data dictionary의 정보에 대한 I/O가 발생하지 않고 바로 메모리 영역에서 읽어 사용할 수 있어 데이터 처리에 대한 효율을 얻을 수 있음
- Log buffer
사용자들이 Insert, Delete, Update의 Sql 작업을 실행하면 트랜잭션에 의해 만들어진 모든 변경 정보(변경 전 데이터와 변경 후 데이터)가 로그 버퍼에 저장됨
하지만 Log buffer에는 사용자의 모든 변경된 데이터를 저장해 둘 수 없으므로 이 데이터들을 영구히 저장하기 위해 LGWR에 의해 로그 파일에 기록
4) PGA 구성요소
- sort area
오라클에서 정렬이 필요하면 PGA 메모리에 sort area를 할당함
메모리 크기 안에서 정렬이 가능한지 여부에 따라 전체 데이터의 정렬 작업을 메모리 내에서 완료하는 메모리 소트(in-memory sort)와 할당받은 sort area 내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 디스크 소트(to-disk sort)로 나뉨
'자격증 > SQLP(SQL 전문가)' 카테고리의 다른 글
공부는 내년부터 해야겠다.. (0) | 2023.01.29 |
---|---|
[SQLP, SQL 전문가] 오늘부터 SQL 전문가 공부 시작! 20221127~20221128 (0) | 2022.11.27 |
[SQLP, SQL 전문가] 오늘부터 SQL 전문가 공부 시작! 20221126 (0) | 2022.11.26 |
[SQLP, SQL 전문가] 오늘부터 SQL 전문가 공부 시작! (2) | 2022.10.03 |
댓글