[Oracle] DBWn 프로세서

·2025년 8월 21일

오라클 관리

목록 보기
21/163

DBWn에서 n의 의미
: 0 ~ n번까지 띄울 수 있어서


이론1. update문의 처리과정

💡 UPDATE 를 하면 데이터 파일에서 해당 데이터를 찾아서 메모리에서 UPDATE 를 합니다.

그러면 데이터 파일의 SCOTT의 데이터와 메모리에 올라온 SCOTT의 데이터의 차이가 발생합니다.

이 변경된 버퍼를 Dirty buffer 라고 하고 이 더티 버퍼를 데이터 파일에 내려쓰는 백그라운드 프로세서가 DBWR 입니다.


실습1. DBWn 백그라운드 프로세서가 작동하고 있는지 조회하시오

select  pname, spid
  from  v$process
  where pname  like  'DBW%';
  
  
  DBW0	3265

실습2. DBWR가 OS에 프로세서로 존재하는지 확인하시오

[oracle@ora19c ~]$ ps -ef |grep 3265 | grep -v grep
oracle    3265     1  0 11:06 ?        00:00:00 ora_dbw0_ORA19

💡 지금은 db가 바쁘지 않아서 1개가 떠있는데 dirty buffer가 많아지면 자동으로 dbwr의 갯수가 늘어남


📌 dba가 알아야할 필수 용어

  1. free buffer
    : 비어있는 버퍼
     
  2. pinned buffer
    : 비어있지 않은 버퍼
    (데이터가 변경되지 않은 버퍼)
     
  3. dirty buffer
    : 비어있지 않은 버퍼
    (데이터가 변경되어서 디스크의 데이터와 서로 일치하지 않는 버퍼)

문제1. dbwr_io_slaves 파라미터의 갯수를 3으로 설정하고 db를 내렸다 올리시오

SQL>  alter system set dbwr_io_slaves=3 scope=spfile;

시스템이 변경되었습니다.

SQL> shutdown immediate

SQL> startup 

SQL> show parameter dbwr

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dbwr_io_slaves                       integer     3

0개의 댓글