행위

오라클 아키텍처

DB CAFE

Dbcafe (토론 | 기여)님의 2019년 7월 16일 (화) 13:22 판 (리두 로그(REDO))
thumb_up 추천메뉴 바로가기


1 데이터베이스[편집]

  1. ORACLE_HOME
  2. ORACLE_BASE
  3. DBCA
  4. SID
  5. 인스턴스
  6. 데이터베이스 확인
  7. 인스턴스 시작
  8. 인스턴스 종료

2 클라이언트 어플리케이션[편집]

3 서버 프로세스[편집]

세션

리스너
세션과 서버프로세스 확인

4 데이터 파일[편집]

데이터파일과 테이블스페이스

테이블스페이스 종류
데이터파일과 테이블스페이스 확인
데이터 파일
블럭
데이터베이스 버퍼캐시

5 리두 로그(REDO)[편집]

  • v$log 로 확인 가능
  • 리두로그 버퍼가 가득 차면 아카이브파일로 기록

5.1 리두로그 파일[편집]

리두로그 버퍼 와 LGWR
  1. 아카이브 로그 모드 특징
  • 데이터베이스를 운영중인 상태에서 백업이 가능.
  • 시스템 테이블스페이스 외에는 온라인 복구가 가능하고, 복구중인 것은 제외한 다른 테이블스페이스는 복구중에도 운영 가능.
  • 부분 복구가 가능.
  • 백업파일과 아카이브 로그를 모두 유지해야 하며, 아카이브 로그는 많은 용량을 차지할 수 있으므로 디스크 용량 관리 필요


  1. 아카이브 로그모드
ARCHIVE LOG LIST;

5.2 아키이브 REDO 로그[편집]

  • 파일 크기 , 파일 사용 위치
SELECT group#
                , members
                , bytes
                , archived
                , status
         FROM v$log;

5.3 아키이브 REDO 로그파일[편집]

SELECT group#
                , status
                , member
       FROM v$logfile;
리두로그 다중화
리두로그 그룹확인
리두로그 파일확인
  • redo 로그 파일 위치 와 갯수 확인
SELECT group#
          , status
          , member
       FROM v$logfile;
로그스위치 실행
아카이브로그 모드 확인
ARCHIVE LOG LIST;
아카이브로그 모드 변경

1.DB종료 -> 2.DB MOUNT 모드로 시작 -> 3.아카이브 로그모드로 변경 -> 4.DB 오픈 -> 5. 아카이브 로그 파일 확인

1. 데이터베이스 종료

SQL> shutdown

2. 데이터베이스 마운트

SQL> startup mount

3. 아카이브 로그 모드로 변경

SQL> alter database archivelog;

4. 데이터베이스 오픈

  • DB가 start 안될경우 pfile 확인(spfile 오류,삭제된경우 => pfile로 spfile 생성)
SQL> alter database open;

5. 아카이브 로그 파일 확인

select GROUP#,A.MEMBERS, BYTES/1048576 MB, STATUS from V$LOG A;

일일 DB사용량(아카이빙 데이터) 계산

select trunc(first_time),count(*)*200,count(*)
  from v$log_history
  group by trunc(first_time)
  order by 2 desc
  ;

6 서버파라미터[편집]

서버파라미터

초기화파라미터
초기화파라미터 변경
최기화 파라미터 확인
텍스트 형식 초기화 파라미터 파일

7 컨트롤 파일[편집]

 - 데이터베이스 운영시 실시간 정보 저장 및 조회  
 - 파일 장애시 인스턴스 실패되어 중단됨  
 - 컨트롤 파일은 바이너리 파일로 직접 수정불가  
 - 수정하려면 서버프로세스에게 변경 요청 하거나 ALTER 문장 수행 해야함.  
 - 삭제시 복구 할수 있도록 이중화 필요  

8 메모리관리[편집]

PGA
PGA 관련 파라미터

WORKAREA_SIZE_POLICY는 PGA Run-Time 메모리 할당 방식을 지정해 주는 파라미터로, MANUAL과 AUTO 관리 방식으로 나뉜다.

● MANUAL 방식

 - SORT_AREA_SIZE : Sort 작업을 위해 Oracle 프로세스가 최대로 사용할 수 있는 메모리 영역
 - SORT_AREA_RETAINED_SIZE : Sort 작업이 완료된 후 결과 값을 유저 프로세스로 전달하는 패치 작업이 완료될 때까지 유지할 메모리 영역
 - HASH_AREA_SIZE : Hash-Join 작업을 위해 Oracle 프로세스가 최대로 사용할 수 있는 메모리 영역
 - BITMAP_MERGE_AREA_SIZE : 비트맵 인덱스에 대한 Range Scan을 통해 추출된 비트맵들의 병합(Merge)을 위해 Oracle 프로세스가 최대로 사용할 수 있는 메모리 영역
 - CREATE_BITMAP_AREA_SIZE : 비트맵 인덱스 생성 시 Oracle 프로세스가 최대로 사용할 수 있는 메모리 영역

● AUTO 방식

- PGA_AGGREGATE_TARGET : DB에 접속된 모든 Oracle 서버 프로세스들의 가용 PGA Target 크기이며, 값이 0 이상 할당될 경우 WORKAREA_SIZE_POLICY는 AUTO로, 메모리 사용 후 즉시 OS로 반납시키는 _USE_REALFREE_HEAP는 TRUE로 자동 변경된다.
- _PGA_MAX_SIZE : 하나의 Oracle 프로세스당 최대로 사용할 수 있는 PGA 메모리 크기(Default 200MB)
- _SMM_MAX_SIZE : Serial 오퍼레이션을 위한 최대 Work Area 크기이며, PGA_AGGREGATE_TARGET과 _PGA_MAX_SIZE에 의해 자동으로 계산된다.
- _SMM_PX_MAX_SIZE : Parallel 오퍼레이션을 위한 개별 Slave 프로세스들의 최대 Work Area 크기이며, PGA_AGGREGATE_TARGET과 _PGA_MAX_SIZE에 의해 자동으로 계산된다. 6 DOP(Degree Of Parallelism)보다 큰 경우에만 적용되며, 6 DOP 이하일 경우 모든 Slave Process는 _SMM_MAX_SIZE 이내로 적용된다.
- _SMM_MAX_SIZE와 _SMM_PX_MAX_SIZE의 계산 방식 : Oracle 11g R2 자체 TEST 결과 _SMM_MAX_SIZE의 경우 _PGA_MAX_SIZE 값의 50%가 할당됐고, _SMM_PX_MAX_SIZE는 PGA_AGGREGATE _TARGET 값의 50%가 할당됐다. Oracle 내부의 계산방식이라 확신할 수는 없으나 자체 Test 결과 일정한 비율은 확인되고 있어 파라미터 값에 대한 예측이 어느 정도 가능하다.
SGA
Shared Pool
Large Pool
Java Pool
스트림 풀

9 메모리 관리방식[편집]

AMM

ASMM
APMM
수동공유 메모리 관리
수동 PGA 메모리 관리

10 백그라운드 프로세스[편집]

SMON

PMON
CKPT
백그라운드 프로세스 확인
패스워드 파일

11 로그파일[편집]

alert 로그

trace 로그
net service 로그

12 데이터 딕셔너리 뷰[편집]

13 스키마 오브젝트 와 데이터 저장방식[편집]

1.계정 과 스키마

계정확인
쿼터 확인
계정 프로파일 확인
권한주기 와 회수
특수한 시스템권한
오라클 기본계정
SYS 계정
SYSTEM 계정

14 테이블[편집]

row

column
PCTFREE
PCTUSED
로우 마이그레이션
로우 체이닝
로우 마이그레이션/체이닝 확인
로우 저장 블럭
ROWID
테이블 확인
테이블의 컬럼 정의 확인
제약
제약 확인
테이블 사이즈 계산

15 데이터 타입[편집]

오라클 데이터타입

문자형 데이터 타입
숫자형 데이터 타입
LOB 데이터 타입
ROWID 데이터 타입
데이터 타입과 크기

16 인덱스 구조[편집]

인덱스 종류

B-Tree INDEX
비트맵 인덱스
함수기반 인덱스
인덱스 확인
인덱스 컬럼 확인
시퀀스
시노님
디비링크
세그먼트
익스텐트
블럭
테이블스페이스
SQL 처리 과정
쿼리 처리 원리
변경 처리 원리
트랜잭션 처리 과정
커밋
롤백
세이브포인트
인스턴스 시작 과 종료
복구 처리 과정
오라클 NET SERVICE
리스너
tnsnames.ora
sqlnet.ora

17 작업 스케쥴링[편집]

DBMS_JOB

DBMS_SCHEDULER
1) 사용법