ORACLE

DBWR, LGWR 가 내려쓰는경우

더킹123 2022. 11. 7. 10:28
728x90

- 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

728x90