SQLP 문의사항 - SCN, redo log buffer 등 혼동되기 쉬운 개념들에 대해서
작성자
강민 김
작성일
2025-06-05 06:28
조회
1659
질문 원글
중간중간에 설명이 애매한 부분들이 있어서 계속 따로 알아보고 정리해가면서 공부하는데 .. 이번 강의 30분정도 보고나서 따로 제가 정리한 내용들은 commit 하거나 리두로그 버퍼가 꽉차면 scn이 증가한다고 하셨는데, redo log buffer가 LGWR가 flush 하는 경우는 scn증가 안한다고 하네요 rollback하면 로그에서 삭제하신다고 하셨는데 rollback한다고 redo log에서 바로 삭제되는 구조가 아니라 rollback도 redo log에 기록되는 구조로 알고 있습니다 따라서 redo log는 삭제되거나 줄어들 수 없구요 29분 19초 DBWr 언급해주신 부분.. 트랜잭션 커밋 시 LGWR프로세스가 redo log buffer내용을 redo log file로 디스크에 기록하는건 맞지만, DBWriter은 바로 작동하는게 아니라 나중에 한가할때 반영하지않나요..? 로그파일을 믿고 커밋한다는건 redo log file에 바로바로 기록해서이지 ( 리두로그 파일이 디스크에 있고) DBWr가 바로바로 반영해서는 아닌걸로.. 알고 있습니다 제가 알고있는 내용과 다른점이 있다면 설명 부탁드립니다 제가 실무자라 강의 들으면서 계속 맞냐 틀리냐 판단하면서 강의 듣는게 힘들어서요
답변
꼼꼼하게 수강해주시고 너무나 좋은 질문을 주셔서 감사합니다.
1. SCN(System Change Number)의 증가 시점
질문 요지: "commit하거나 redo log buffer가 꽉 차면 SCN이 증가한다고 하셨는데..."
답변: SCN은 주로 트랜잭션 커밋 시 증가합니다. Redo Log Buffer가 가득 차서 LGWR(Log Writer)이 flush를 수행하더라도, SCN이 반드시 증가하는 것은 아닙니다. SCN은 데이터베이스의 변경을 추적하는 고유 번호로, 트랜잭션의 커밋 시점에 증가하여 데이터의 일관성을 유지합니다.
참고: Oracle 공식 문서 및 오라클 성능고도화 교재의 설명에 따르면, SCN은 트랜잭션 커밋 시 증가하며, LGWR의 flush와는 직접적인 관련이 없습니다.
2. Rollback과 Redo Log의 관계
질문 요지: "rollback하면 로그에서 삭제하신다고 하셨는데 rollback도 redo log에 기록되는 구조로 알고 있습니다"
답변: 맞습니다. Rollback도 Redo Log에 기록됩니다. Oracle은 모든 트랜잭션의 변경 사항을 Redo Log에 기록하여 데이터 복구를 가능하게 합니다. Rollback 시에도 Undo 데이터를 생성하며, 이 Undo 데이터 역시 Redo Log에 기록됩니다. 따라서, Redo Log는 삭제되거나 줄어들지 않으며, 순차적으로 기록됩니다.
참고: Oracle의 공식 문서 및 오라클 성능고도화 서적의 설명에 따르면, Rollback도 Redo Log에 기록되며, Redo Log는 삭제되지 않습니다.
3. DBWR(Database Writer)의 작동 시점
질문 요지: "DBWriter은 바로 작동하는게 아니라 나중에 한가할때 반영하지않나요?"
답변: 정확합니다. DBWR는 커밋 시점에 즉시 작동하지 않습니다.
DBWR는 다음과 같은 경우에 작동하여 변경된 데이터 블록을 데이터 파일에 기록합니다
Checkpoint 발생 시
Buffer Cache에 더 이상 공간이 없을 때
특정 시간 간격으로 주기적으로
따라서, 커밋 시점에는 LGWR만이 즉시 작동하며, DBWR는 이후에 작동합니다.
4. Redo Log Buffer의 Flush 조건
질문 요지: "redo log buffer가 LGWR가 flush 하는 경우는 scn증가 안한다고 하네요"
답변: Redo Log Buffer는 다음과 같은 조건에서 LGWR에 의해 디스크로 플러시됩니다:
트랜잭션 커밋 또는 롤백 시
Redo Log Buffer가 일정 크기(예: 1/3 또는 1MB)에 도달했을 때
3초마다 주기적으로
DBWR가 LGWR에게 플러시를 요청할 때
이러한 플러시는 SCN 증가와 직접적인 관련이 없습니다.
감사합니다.
중간중간에 설명이 애매한 부분들이 있어서 계속 따로 알아보고 정리해가면서 공부하는데 .. 이번 강의 30분정도 보고나서 따로 제가 정리한 내용들은 commit 하거나 리두로그 버퍼가 꽉차면 scn이 증가한다고 하셨는데, redo log buffer가 LGWR가 flush 하는 경우는 scn증가 안한다고 하네요 rollback하면 로그에서 삭제하신다고 하셨는데 rollback한다고 redo log에서 바로 삭제되는 구조가 아니라 rollback도 redo log에 기록되는 구조로 알고 있습니다 따라서 redo log는 삭제되거나 줄어들 수 없구요 29분 19초 DBWr 언급해주신 부분.. 트랜잭션 커밋 시 LGWR프로세스가 redo log buffer내용을 redo log file로 디스크에 기록하는건 맞지만, DBWriter은 바로 작동하는게 아니라 나중에 한가할때 반영하지않나요..? 로그파일을 믿고 커밋한다는건 redo log file에 바로바로 기록해서이지 ( 리두로그 파일이 디스크에 있고) DBWr가 바로바로 반영해서는 아닌걸로.. 알고 있습니다 제가 알고있는 내용과 다른점이 있다면 설명 부탁드립니다 제가 실무자라 강의 들으면서 계속 맞냐 틀리냐 판단하면서 강의 듣는게 힘들어서요
답변
꼼꼼하게 수강해주시고 너무나 좋은 질문을 주셔서 감사합니다.
1. SCN(System Change Number)의 증가 시점
질문 요지: "commit하거나 redo log buffer가 꽉 차면 SCN이 증가한다고 하셨는데..."
답변: SCN은 주로 트랜잭션 커밋 시 증가합니다. Redo Log Buffer가 가득 차서 LGWR(Log Writer)이 flush를 수행하더라도, SCN이 반드시 증가하는 것은 아닙니다. SCN은 데이터베이스의 변경을 추적하는 고유 번호로, 트랜잭션의 커밋 시점에 증가하여 데이터의 일관성을 유지합니다.
참고: Oracle 공식 문서 및 오라클 성능고도화 교재의 설명에 따르면, SCN은 트랜잭션 커밋 시 증가하며, LGWR의 flush와는 직접적인 관련이 없습니다.
2. Rollback과 Redo Log의 관계
질문 요지: "rollback하면 로그에서 삭제하신다고 하셨는데 rollback도 redo log에 기록되는 구조로 알고 있습니다"
답변: 맞습니다. Rollback도 Redo Log에 기록됩니다. Oracle은 모든 트랜잭션의 변경 사항을 Redo Log에 기록하여 데이터 복구를 가능하게 합니다. Rollback 시에도 Undo 데이터를 생성하며, 이 Undo 데이터 역시 Redo Log에 기록됩니다. 따라서, Redo Log는 삭제되거나 줄어들지 않으며, 순차적으로 기록됩니다.
참고: Oracle의 공식 문서 및 오라클 성능고도화 서적의 설명에 따르면, Rollback도 Redo Log에 기록되며, Redo Log는 삭제되지 않습니다.
3. DBWR(Database Writer)의 작동 시점
질문 요지: "DBWriter은 바로 작동하는게 아니라 나중에 한가할때 반영하지않나요?"
답변: 정확합니다. DBWR는 커밋 시점에 즉시 작동하지 않습니다.
DBWR는 다음과 같은 경우에 작동하여 변경된 데이터 블록을 데이터 파일에 기록합니다
Checkpoint 발생 시
Buffer Cache에 더 이상 공간이 없을 때
특정 시간 간격으로 주기적으로
따라서, 커밋 시점에는 LGWR만이 즉시 작동하며, DBWR는 이후에 작동합니다.
4. Redo Log Buffer의 Flush 조건
질문 요지: "redo log buffer가 LGWR가 flush 하는 경우는 scn증가 안한다고 하네요"
답변: Redo Log Buffer는 다음과 같은 조건에서 LGWR에 의해 디스크로 플러시됩니다:
트랜잭션 커밋 또는 롤백 시
Redo Log Buffer가 일정 크기(예: 1/3 또는 1MB)에 도달했을 때
3초마다 주기적으로
DBWR가 LGWR에게 플러시를 요청할 때
이러한 플러시는 SCN 증가와 직접적인 관련이 없습니다.
감사합니다.
전체 39
| 번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
| 공지사항 |
SQLD 학습 자료 관련 파일
관리자
|
2024.07.10
|
추천 0
|
조회 3824
|
관리자 | 2024.07.10 | 0 | 3824 |
| 공지사항 |
SQLP 과정 예시 파일
관리자
|
2024.05.09
|
추천 0
|
조회 3894
|
관리자 | 2024.05.09 | 0 | 3894 |
| 32 |
기기등록
곽현준
|
2026.04.16
|
추천 0
|
조회 426
|
곽현준 | 2026.04.16 | 0 | 426 |
| 31 |
실습데이터 문의 (SCOTT 파일 데이터 누락)
장원석
|
2026.02.22
|
추천 0
|
조회 530
|
장원석 | 2026.02.22 | 0 | 530 |
| 30 |
실습데이터 문의
조우석
|
2026.01.04
|
추천 0
|
조회 646
|
조우석 | 2026.01.04 | 0 | 646 |
| 29 |
2026년도 SQLP 대비 가능 여부 문의 건.
신민섭
|
2025.11.11
|
추천 0
|
조회 1072
|
신민섭 | 2025.11.11 | 0 | 1072 |
| 28 |
기기등록
subin5495
|
2025.07.21
|
추천 0
|
조회 1285
|
subin5495 | 2025.07.21 | 0 | 1285 |
| 27 |
Oracle 11g / 19c
mario1018
|
2025.07.19
|
추천 0
|
조회 1413
|
mario1018 | 2025.07.19 | 0 | 1413 |
| 26 |
SQLP 문의사항 - SCN, redo log buffer 등 혼동되기 쉬운 개념들에 대해서
강민 김
|
2025.06.05
|
추천 0
|
조회 1659
|
강민 김 | 2025.06.05 | 0 | 1659 |
| 25 |
SQLP 9강 옵티마이저 연산 - 선택도 관련하여 질의합니다.
이유미
|
2025.05.31
|
추천 0
|
조회 1628
|
이유미 | 2025.05.31 | 0 | 1628 |
|
강민 김
|
2025.06.05
|
추천 0
|
조회 1520
|
강민 김 | 2025.06.05 | 0 | 1520 | |
| 24 |
2025년 시험 대비 가능 여부 확인부탁드려요
이유미
|
2025.05.19
|
추천 0
|
조회 1645
|
이유미 | 2025.05.19 | 0 | 1645 |
| 23 |
SQLP 교재는 별도 구입해야되나요?
이유미
|
2025.05.18
|
추천 0
|
조회 1658
|
이유미 | 2025.05.18 | 0 | 1658 |
| 22 |
강의내용 중 질문드립니다.
leiyoung
|
2025.05.11
|
추천 0
|
조회 1618
|
leiyoung | 2025.05.11 | 0 | 1618 |
|
강민 김
|
2025.05.14
|
추천 0
|
조회 1757
|
강민 김 | 2025.05.14 | 0 | 1757 | |
| 21 |
수업 기간연장 문의
최여정 최여정
|
2025.05.08
|
추천 0
|
조회 1711
|
최여정 최여정 | 2025.05.08 | 0 | 1711 |
| 20 |
sqlp 자료
김채원
|
2024.12.30
|
추천 0
|
조회 2478
|
김채원 | 2024.12.30 | 0 | 2478 |
| 19 |
오라클 실행 오류
강세희
|
2024.11.14
|
추천 0
|
조회 2417
|
강세희 | 2024.11.14 | 0 | 2417 |
| 18 |
sqpd
신이재
|
2024.11.06
|
추천 0
|
조회 2484
|
신이재 | 2024.11.06 | 0 | 2484 |