4. REDO LOG BUFFER
- DATABASE에서 발생한 모든 변경사항 저장, 데이터 베이스 장애 시 복구 담당
발생한 트렌젝션의 old와 new 데이터를 쌍으로 가지고 저장한다.
순차적으로 사용하고 모두 사용되면 처음부터 다시 쓰는 Circular Buffer.
Buffer의 내용이 모두 차면 LGWR 프로세스에 의해 Redo Log File에 기록한다.
* Redo Log File
최소 두 개의 파일과 두 개의 그룹과 하나의 멤버로 구성되어 있다.
그룹간에는 크기가 달라도 되지만 효율성 측면으로 같게 해주는 것이 좋다.
기본적으로 세 개의 파일로 생성되며 1번 파일이 모두 쓰여지면 2번으로 이동하며
그 다음 3번 파일로 이동한다.
1번으로 다시 쓸 때는 덮어 쓰는 것이 기본으로 설정되어 있고 이 것을 노아카이브모드라고한다. 아카이브모드로 설정을 변경하면 1번 파일에 다시 덮어 쓸 경우 백업본을
생성한다.
그룹의 멤버는 미러링으로 여러 개 생성할 수 있으며 디스크 폴트를 대비해 다른 디스크에 두는 것이 안전하다. 미러링으로 구성하면 같은 정보가 동시에 기록된다.
5. UPDATE 문의 처리 과정
1) UPDATE문 수행
2) Server Process는 데이터를 찾기 위해 Database Buffer Cache를 검색한다.
없을 경우 Data File의 내용을 Database Buffer Cache에 복사한다.
3) 다른 프로세스나 세션에 의해 수정이 될 수 없게 행 단위 LOCK을 건다.
4) 변경 전/후의 데이터를 모두 Redo Log Buffer에 저장한다.
- rowid, 날짜, 사용자, 쿼리 등 모든 정보를 기록한다.
5) 변경전의 데이터를 UNDO SEGMENT에 저장한다.
a. 데이터를 Database Buffer Cache 의 다른 셀로 복사해 둔다.
b. 원본 셀에 데이터를 기록한다. 복사한 셀은 Undo Segment에 기록한다.
c. 복사 된 셀을 프리 버퍼로 만든다.
6) 변경된 데이터를 Database Buffer Cache 에 저장한다.
* UNDO SEGMENT
변경되기 전의 데이터를 저장하여 롤백, 읽기 일관성, 복구에 사용된다.
6. PROGRAM GLOBAL AREA
각각의 서버 프로세스 마다 고유하게 존재.
정렬, 커서의 상태 정보, 세션 정보 등을 저장.
[UNIT 3] PROCESS & FILE
1. PROCESS
데이터 베이스 관리에 필요한 기능을 담당.
1) SERVER PROCESS
- User Process로부터 전달받은 SQL문의 요청을 받아 들이고 실행 후 결과를 다시
User Process에게 돌려 준다.
SQL문을 전달 받았을 때의 역할
a. 문법 체크
b. 테이블이나 컬럼의 존재 여부 체크
c. 권한 체크
d. 실행
e. Select 문일 경우 유저에게 데이터를 전달
2) USER PROCESS
- 작성된 SQL문장을 Server Process에게 전달
3) BACKGROUND PROCESS
- PMON, SMON, CKPT, DBWR, LGWR 은 반드시 존재해야 한다.
a. PMON : 서버 프로세스 감시, 리소스 정리(서버 프로세스 LOCK 해제)
- DDL,DCL, 세션 정상 종료 : 자동 COMMIT
- 세션 비정상 종료 : 자동 Roll Back
b. SMON : 데이터베이스 시작 시 일관성 검사, Recovery 담당,
데이터 파일 조각 모으기
c. DBWR : Database Buffer Cache 의 데이터를 데이터 파일로 내려쓰는 역할
d. LGWR : Redo Log Buffer 의 데이터를 Redo Log File로 내려 쓰는 역할
- Commit 되지 않아도 메모리는 제한된 크기이므로 파일에 쓰여질 수도 있다.
e. CKPT : 데이터베이스의 모든 변경 사항을 디스크로 저장 시키는 역할
- 주업무는 동기화( Control File, Data File, Redo Log File)
- Commit -> LGWR -> Redo Log File -> CKPT -> DBWR -> Data File -> CKPT
-> Control File -> CKPT
2. File
1) Control File
- 데이터베이스 스타트업 단계인 MOUNT,OPEN,ACCESS할 때 필요
- Recovery에 필요한 동기화 된 정보 저장
- 최소 두 개의 컨트롤 파일을 다른 디스크에 만드는 것을 권장
2) Data File
- 반드시 1개 이상은 존재 해야 한다.
3) Redo Log File
- 위에서 설명 하였음.
4) Parameter File
- SGA 영역의 각 크기를 결정
- Archived Redo Log File이름, Undo Tablespace 이름
- Control File 위치와 이름
- MTS 설정 및 기타 서버 옵션 설정
startup 할 때 spfile을 먼저 찾고 pfile을 찾는다. Spfile은 에디터로 수정이 불가
pfile은 텍스트 형식으로 수정이 가능하다.
* 파라메터 값 수정하기
ALTER SYSTEM “파라미터명” = “파라미터값”
[Scope = MEMORY | SPFILE | BOTH ]
SPFILE 옵션을 주려면 spfile로 시작을 해야 되고 변경된 사항은 재 시작해야 설정이
적용 된다. Pfile을 수정 하는 것보다 이렇게 고치는 것을 권장한다.
[UNIT 4] DATABASE의 STARTUP과 SHUTDOWN
1. STARTUP & SHUTDOWN
SHUTDOWN -> NOMOUNT -> MOUNT -> OPEN
1) NOMOUNT : INSTANCE의 STARTUP, SGA할당 B/G Process Startup
- Parameter 파일을 읽어서 SGA를 할당
- DATABASE를 새로 생성, Control File을 다시 생성
2) MOUNT : 데이터 베이스 파일들과 INSTANCE를 붙인다.
- Control File을 읽고 동기화 정보 확인
- 물리적 구조 변경, Data File 이름 변경, 아카이브 모드 변경, Recover
3) OPEN : 동기화 검사를 통해 무결성이 검증되면 OPEN, USER 접속 가능
* STARTUP 옵션
a) FORCE : Shutdown Abort 후 Restart
b) RESTRICT : 일반 사용자의 접근을 차단
c) PFILE=file명 : 특수 작업이 필요할 때 임시적으로 사용할 때
d) EXCLUSIVE|PARALLEL|SHARED : instance 수 제한
e) OPEN [RECOVER]|NOMOUNT|MOUNT
-> NOMOUNT 단계에서 OPEN 단계로 점프 할 수 없다. 단계적으로 OPEN
f) READ ONLY : 읽기 전용으로 OPEN
- ALTER DATABASE DB명 OPEN READ ONLY;
* SHUTDOWN 옵션
a) NORMAL : 유저가 접속을 끊을 때까지 기다린다.
b) TRANSACTIONAL : 현재 수행중인 트렌젝션이 종료될 때 까지 기다림.
c) IMMEDIATE : 모두 RollBack 시키고 유저의 접속을 강제로 해지 시킴.
d) ABORT : 강제 종료. 권장 안함.
2. ORACLE DATABASE 인증
1) OS인증 : 로컬 인증방식
2) Password File 인증 : 원격지 인증 방식
parameter file 중에서 Remote Database 인증 관련 3가지 옵션
a. remote_login_passwordfile=none : OS 인증 방식 사용
b. remote_login_passwordfile=exclusive : 원격지 인증 (1:1)
c. remote_login_passwordfile=shared : 원격지 인증 (1:N)
2-1) password file 인증 방법
c:\> orapwd file=PWD<SID>.ora password=암호 entries=허용인원수
이렇게 password file을 만들어 준다.
Parameter file에서 remote_login_passwordfile=none 부분이 none이면 안 된다.
오라클을 리스타트 하면 적용이 된다.
3. SESSION 관리
1) RESTRICTED SESSION
a. STARTUP RESTRICT 으로 오라클을 STARTUP 하면 RESTRICED 권한을 가진
유저만이 접속 할 수 있다.
* 유저에거 RESTRICTED 권한 주기
- Grant restricted session to USER명
b. alter 명령어로 SESSION 설정 변경
ALTER SYSTEM ENABLE RESTRICTED SESSION; 설정
ALTER SYSTEM DISABLE RESTRICTED SESSION; 해제
* 설정 확인 방법
- SELECT logins FROM v$instance;
2) 특정 SESSION SHUTDOWN
a. 유저 확인
SELECT username,status,sid,serial# FROM v$session;
b. 해당 유저의 sid와 serial#를 이용하여 KILL
ALTER SYSTEM KILL SESSION ‘sid,serial#’;
4. DYNAMIC VIEW & TRACE FILE
1) DYNAMIC VIEW
Session 이나 INSTANCE의 상태 정보를 알기 위해 V$로 시작하는
Data Dictionary View 검색
메모리나 컨트롤 파일로부터 정보를 읽어 오는 동적 뷰.
NOMOUNT |
V$SGA |
V$SESSION | |
V$INSTANCE | |
V$PARAMETER | |
V$OPTION | |
V$VERSION | |
V$PROCESS | |
MOUNT |
V$CONTROLFILE |
V$DATAFILE | |
V$LOGFILE | |
V$THREAD | |
V$DATAFILE_HEADER |
2) TRACE FILE
에러 원인 분석을 위한 FILE
Trace File 활성화 방법
a. Parameter 값 수정 : SQL_TRACE = TURE
- BACKGROUND_DUMP_DEST : B/G Process의 Trace File과 파일 위치
- USER_DUMP_DEST : Server Process의 Trace File과 파일 위치
- MAX_DUMP_FILE_SIZE : Trace File의 최대 크기, OS 블록 단위로 지정
b. 현제 Session에 적용 : ALTER SESSION SET SQL_TRACE = TRUE;
댓글