1. Vi 편집기 

 

세가지 모드(상태) 있다

1. 명령모드(esc 상태)

2. 입력모드(편집상태)- 편집기에서 i 누르면 insert 표시됨

명령모드(Last Line Mode)

 

- 실행하면 처음상태가 명령모드이다.

- 소문자 i 입력모드 insert모드 편집가능한상태, esc insert모드해제 커맨드가능한상태

 

 실습(임의의 파일을 만들어서 연습해보장)


DBWR 

메모리에서 변경된 버퍼를 디스크에 기록하는 프로세스


▶데이터버퍼캐쉬를 구성하는 버퍼의 종류

     1) Dirty Buffer : 변경은 완료 되었지만 디스크에 기록되지 않은 버퍼

     2) Pinned Buffer : 변경중인 버퍼

     3) Free Buffer : 변경이 완료된후 디스크에 기록된 버퍼


▶DBWR 활동 주기

     1) 체크포인트가 발생했을 경우

     2) Dirty Buffer의 수가 임계치에 도달했을 경우

     3) Free Buffer가 필요하여 데이터 버퍼 캐쉬에서 일정한 수의 버퍼를 검색하고도 Free Buffer를 찾지 못했을경우 

     4) 테이블 스페이스가 오프라인 또는 읽기전용모드로 변경될경우

     5) 테이블이 DROP되거나 TRUNCATE될 경우 

     6) 테이블 스페이스에 온라인 백업 명령이 수행 될 경우

     7) 주기적인 타임아웃에 의해 발생



LGWR

Redo Log Buffer에 기록된 내용을 Redo Rog File로 저장


Redo Log Buffer에서 사용하는 아키텍쳐

     1) 빠른 커밋 : 유저가 특정작업을 수행하고 커밋을 수행한후에는 즉시 데이터베이스에 저장하여 복구 및 조회를 할 수 있게 하겠다는                        것이다. (커밋 수행시 변경된 데이터 블록을 즉시 디스크로 저장하지않고 해당 데이터 블록에 대한 조회는 메모리에서                          수행하고 복구는 리두 로그파일에 기록된 내용을 이용하여 데이터베이스에 적용된 것과 같이 하겠다는 뜻)

     

     2) 선로그 기법 : DML 작업 시 실제 데이터에 대해 DML을 수행하기 전에 데이터들의 변경에 대한 내용을 Redo Log Buffer에 미리 

                         저장하게된다. (이래야지 작업중 장애가 발생하여도 복구를 수행 할수있다.)

     

     3) 동시 쓰기 : 커밋시 로그를 기록하는 부분에서 같은 시점에 커밋되는 작업들에 대해서는 동시에 리두로그파일에 기록한다는 의미


▶LGWR 활동주기

     1) Commit 수행시

     2) DBWR 프로세스가 데이터 버퍼캐쉬의 변경된 데이터 블록을 데이터파일에 적용하기전에 발생

     3) Redo Log Buffer의 1/3 이상이 사용되었을 경우 발생 

     4) 1MB 이상의 Redo Log가 생성되었을 경우 발생 

     5) 3초마다 발생



PMON

PMON 프로세스는 서버프로세스가 작업을 수행하는중 실패한 경우 활동한다.


▶PMON 역할

    1)실패한 프로세스가 수행중이던 트랜잭션 롤백

    2)실패한 프로세스가 획득했던 메모리, 락 및 기타 자원 할당해제


SMON

SMON역할

    1) 인스턴스 복구수행

    2) 데이터 블록의 연속된 공간 통합

    3) 임시 세그먼트 제거

    4) OPTIMAL 크기 유지


CKPT

데이터 버퍼 캐쉬의 변경된 데이터 블록을 데이터 파일에 기록하여 

메모리 내의 데이터와 데이터 파일에 저장된 데이터를 일치시키는 일련의 작업


CKPT 활동주기

1)로그스위치가 발생할 경우

2) 3초마다 발생

3) 테이블 스페이스가 오프라인으로 변경될 경우

4) 데이터 베이스가 정상적으로 종료될경우

5)사용자가 ALTER SYSTEM CHECKPOINT 명령으로 명시적인 체크포인트를 발생시킬 경우

6)체크포인트 관련 파라메터에서 정한 값에 의해 활동 주기가 되었을 경우


'오라클 양성반 25기' 카테고리의 다른 글

03.오라클 메모리  (0) 2016.09.28

PGA(Program Global Area)


- 데이터베이스에 접속하는 모든 유저에게 할당되는 각각의 서버프로세스가 독자적으로 사용하는 오라클 메모리 영역


 

 구조

내용 

렬공간(Sort Area)

Order By 또는 Group By 등의 정렬을 수행하기 위한 공간이며 해당 공간에서만 정렬이 완료된다면 이를 메모리 정렬이라 한다. 해당 정렬 메모리 공간이 부족하다면 디스크(임시테이블스페이스)를 이용하게된다.

세션정보(Session Infomation)

서버프로세스에 의해 추출된 결과 값을 전달하기 위해 필요한 유저 프로세스의 세션 정보를 저장한다.

커서상태정보(Cursor State)

해당 SQL의 파싱 정보가 저장되어 있는 주소를 저장한다.

변수저장공간(Stack Space)

SQL 문장에 바인드 변수를 사용했을 경우 해당 바인드 변수를 저장하는 공간이다. 


파싱

  1. SQL을 실행하면 제일먼저 SQL 파서(parser)가 SQL 문장에 문법적 오류가 없는지 검사(Syntax 검사)
  2. 문법적 오류가 없다면 의미상 오류가 없는지 검사(Semantic 검사, 오브젝트 존재유무등)
  3. 검사를 다 마치면, 사용자가 발생한 SQL과 그 실행계획이 라이브러리캐시(프로시저캐시)에 캐싱되어 있는지 확인
  4. 캐싱되어 있다면 소프트파싱, 캐싱되어있지 않다면 하드파싱

 파싱종류

 내용

소프트 파싱

 Shared Pool에 저장된 정보를 재사용하는것

하드 파싱

 Shared Pool에 저장된 정보를 재사용하지못하고 다시 구문분석을 수행 하는것


SGA(System Global Area)


- 오라클이 데이터를 읽거나 변경하기 위해 사용하는 공용 메모리 영역


Shared Pool

SGA를 관리하는 메커니즘, 파라메터 정보, 실행된 SQL, SQL 분석/실행정보 및 오라클 오브젝트 정보를 저장하는 메모리공간


고정영역(Permanent Area), 동적영역(Dynamic Area) 로 나뉜다.

LRU 알고리즘을 이용하여 메모리 공간이 관리된다.

 Permanent Area(고정영역)

 Dynamic Area(동적영역)

1) 오라클 SGA를 관리하는 메커니즘 저장 

2) 오라클 파라메터 정보 저장


고정영역의 크기는 파라메터 설정값 등을 고려하여 자동으로 할당 

사용자가 지정할수없다.

Library Cache 와 Data Dictionary로 구분됨.


Library Cache

1) DB에 접속한 유저가 실행한 SQL 저장

2) Recursive SQL( 오라클 내부 SQL) 저장

3) Parse Tree ( SQL에 대한 분석정보) 저장

4) Execution Plan(실행계획) 저장


Data Dictionary =Row Cache

1)오라클 오브젝트정보(테이블,인덱스,함수 및 트리거) 저장

2) 오라클 오브젝트 권한 정보저장



LRU 알고리즘 : 최근에 가장 적게 사용한 메모리 공간을 필요시 가장 먼저 사용하는 오라클 메모리 관리기법


Data Buffer Cache

오라클이 데이터를 읽고 수정하기 위해 디스크에 존재하는 데이터를 읽어 저장하는 메모리 공간

1) 디스크블록을 메모리로 읽어온후 해당블록을 읽거나 가공

2) LRU 알고리즘에 의해 관리

3) DB_CACHE_SIZE 파라메터로 기본데이터 버퍼캐쉬의 크기 결정

4) SGA영역중 가장많은 크기차지(디스크에서 읽고 기록하는 속도보다 메모리에서 읽고 기록하는 속도가 더 빠르기 때문에 DB성능향상을                                             위해서 디스크 I/O없이 메모리에서 읽어오는 것이 좋다.) 



Redo Log Buffer 

오브젝트 및 데이터 변경시 생성되는 로그를 저장하는 SGA 메모리 공간

1) 오브젝트가 변경되거나 DML작업에 의해 데이터가 변경되는 경우 로그를 리두 로그 버퍼에 생성한다.

2) 로그들은 서버프로세스에 의해 리두 로그 버퍼에 기록된후 LGWR프로세스에 의해 리두로그파일에 저장된다.


Large Pool 

공유풀의 부하를 감소시키는 역할

UGA 영역저장

RMAN의 정보저장

병렬 프로세스의 정보저장

I/O 슬레이브 프로세스의 정보저장


Java Pool

자바명령을 구문분석할 경우 사용하는 메모리 공간 

JAVA_POOL_SIZE 파라메터로 자바풀 지정


'오라클 양성반 25기' 카테고리의 다른 글

04. 오라클 프로세스  (0) 2016.09.28

+ Recent posts