DBWR, LGWR 가 내려쓰는경우
- pinned - 사용중
- clean - 정합성 유지
- free or unused - 안쓰거나 쓸수 있는 상태
- dirty - 정합성 유지 안된다
- 버퍼의 처음 상태는 free or unused
- 처음으로 누군가가 명령을 써서 사용하면 pinned(사용중)
- 복사해서 사용중 ->select 만 하면 reading 하고 끝 clean
- 버퍼내용을 바꾸고 있는 중 -> 수정까지 일어난 버퍼 dirty buffer
dirty buffer란?
- 원본과 내용이 다른 버퍼
pinned 와 dirty 는 재이용 불가
dirty buffer 가 원본과 같아지는 방법
1. rollback
2. dbwr가 데이터 파일에 기록시
DBWR가 내려쓰는 경우
1. 체크포인가 발생할때(shutdown, log switch, command, parameter)
2. 메모리양에 비해 더티버퍼가 많아졌을 때
3. no free buffer
4. time out
5. rac ping환경
6. 테이블스페이스 drop 이나 tuncate 할때
7. 테이블스페이스 offline
8. 테이블스페이스 read only
9. 테이블스페이스 begin backup
@@commit 하면 리두로그버퍼캐시를 내려쓰는 것@@
(보장)복구에 필요한 리두가 먼저 남아야만 dbwr 가 내려쓴다
LGWR가 내려쓰는 경우
1. 리두로그버퍼캐시가 1/3 이 찬 경우
2. 1M 기록해야 내용이 1M가 넘는 경우
3. commit
4. 3초마다
5. dbwr 가 내려쓰는 경우
- 1. 체크포인가 발생할때(shutdown, log switch, command, parameter)
- 2. 메모리양에 비해 더티버퍼가 많아졌을 때
- 3. no free buffer
- 4. time out
- 5. rac ping환경
- 6. 테이블스페이스 drop 이나 tuncate 할때
- 7. 테이블스페이스 offline
- 8. 테이블스페이스 read only
- 9. 테이블스페이스 begin backup