관리 프레임워크

  • 데이터베이스 Instance
  • 리스너
  • 관리 인터페이스
    • Database Control
    • 관리 에이전트 (grid control 사용시)

초기화 파라미터 파일

instance가 시작되면 초기화 파라미터 파일 읽음.

  • 서버 파라미터 파일(SPFILE): 일반적으로 사용되는 초기화 파라미터 파일. 데이터베이스 서버가 읽고 쓸 수 있는 이진 파일. 수동으로 편집하면 안된다. 종료 및 시작과 상관없이 계속 유지.
  • 텍스트 초기화 파라미터 파일: 서버는 읽을 수 있지만, 쓸 수 없다. 종료 및 시작과 관계없이 초기화 파라미터 설정을 유지하려면 해당 설정을 수동으로 설정, 변경. SPFILE을 찾을 수 없을 때 자동으로 검색.

다음과 같은 유형의 초기화 파라미터 값이 있다.

  • Boolean
  • String
  • Integer
  • 파라미터 파일
  • Reserved
  • Big Inteager

다른 파라미터로부터 계산되는 파생 파라미터의 값은 변경해서는 안된다. 일부 파라미터는 운영체제에 종속적이다. ex) DB_BLOCK_SIZE

기본 파라미터

  • DB_NAME\, DB_DOMAIN : Global Database Name
  • DB_RECOVERY_FILE_DEST\, DB_RECOVERY_FILE_DEST_SIZE : Fast Recovery Area
  • SGA_TARGET : 모든 SGA 구성 요소의 전체 크기 지정
  • UNDO_TABLESPACE : undo space 관리 테이블스페이스 방법 지정
  • COMPATIBLE 초기화 파라미터 및 취소 불가능한 호환성

초기화 파라미터

  • CONTROL_FILES: 하나 이상의 control file 이름을 지정.
  • DB_FILES: 해당 데이터베이스에 대해 열 수 있는 최대 데이터베이스 파일 수 지정
  • PROCESSES: Oracle 서버에 동시에 연결할 수 있는 OS User Process의 최대 ㅜ 지정
  • DB_BLOCK_SIZE: 오라클 데이터베이스 블록 크기를 바이트 단위로 지정. 생성시 설정, 차후 변경 불가
  • DB_CACHE_SIZE: 표준 블록 버퍼 캐시 크기 지정. 16MB 이상, SGA_TARGET이 설정된 경우 0, 그렇지 않으면 48MB
  • SGA_TARGET: 모든 SGA 구성 요소의 전체 크기 지정. 설정할 경우 다음 메모리 풀의 크기가 자동 지정
    • DB_CACHE_SIZE (버퍼 캐시)
    • SHARED_POOL_SIZE
    • LARGE_POOL_SIZE
    • JAVA_POOL_SIZE
    • STREAMS_POOL_SIZE
  • MEMORY_TARGET: Oracle 시스템 전체에서 사용 가능한 메모리 지정. SGA 및 PGA를 늘리거나 줄이면서 MEMORY_TARGET 값에 맞게 메모리 튜닝
  • PGA_AGGREGATE_TARGET: PGA 메모리 양 지정. SGA에 포함되지 않음.
  • SHARED_POOL_SIZE: Shared Pool의 크기를 바이트 단위로 지정.
  • UNDO_MANAGEMENT: 시스템에서 사용할 undo space 관리 모드를 지정.

파라미터 확인

Image

초기화 파라미터 유형

  • Static parameter: Instance 또는 전체 DB에 영향을 주며, init.ora 또는 SPFILE의 내용을 변경해서 수정. 현재 Instance에 대해서는 수정할 수 없다.
  • Dynamic Parameter: 데이터베이스가 온라인 상태인 동안 변경 가능.
    • session level parameter: 유저 세션에만 영향. 국가별 설정 등. 세션이 끝나면 파라미터도 만료.
    • system level parameter: 전체 데이터베이스 및 모든 세션에 영향.

데이터베이스 시작

Image 데이터베이스를 열 때에 데이터 파일이나 온라인 리두 로그 파일이 없다면 Oracle 서버는 오류 반환.

SQL> startup
SQL> startup nomount
SQL> alter database mount;
SQL> alter databse open;

데이터베이스 종료

종료 모드

종료 모드 A I T N
새로운 연결 허용 N N N N
현재 세션 종료 시까지 대기 N N N Y
현재 트랜잭션 종료 시까지 대기 N N Y Y
체크포인트 적용 및 파일 닫기 N Y Y Y
  • ABORT: 종료 전 최소한의 작업 수행. 다시 시작하기 전에 recovery가 수행되어야 함.
  • IMMEDIATE: 가장 일반적으로 사용. 커밋되지 않은 트랜잭션은 롤백.
  • TRANSACTIONAL: 기존 트랜잭션 종료 가능, 새 트랜잭션을 시작하지는 않음.
  • NORMAL: 세션의 연결이 끊길 때까지 대기

종료 옵션

  • SHUTDOWN NORMAL: 모든 유저가 연결을 끊을 때까지 종료하지 않고 대기.
  • SHUTDOWN TRANSACTIONAL: 진행 중인 트랜잭션이 종료되면 클라이언트의 연결이 해제.
  • SHUTDOWN IMMEDIATE: 현재 처리하고 있는 SQL문이 완료되지 않음. 활성 트랜잭션을 롤백, 모든 유저를 해제. 이후 시작시 recovery는 필요 없다. IMMEDIATE는 Enterprise Manager를 사용할 때의 기본 종료 모드.
  • SHUTDOWN ABORT: 현재 처리중인 SQL문이 즉시 종료. 롤백되지 않고, 다음 번 시작 시 Instance Recovery가 필요하며, 자동으로 수행
SQL> shutdown
SQL> shutdown transactional
SQL> shutdown immediate
SQL> shutdown abort

Alert Log

$ORACLE_BASE/diag/rdbms/<db_name>/<SID>/trace

  • 시작 시 사용된 기본값이 아닌 초기화 파라미터
  • 발생한 모든 내부 오류(ORA-600), 블록 손상 오류(ORA-1578), deadlock 오류(ORA-60)
  • CREATE, ALERT, DROP DATABSE 및 TABLESPACE SQL 문 및 STARTUP, SHUTDOWN, ARCHIVE LOG 및 RECOVER와 같은 Enterprise Manager 또는 SQL * Plus문과 같은 관리작업
  • shared server 및 디스패처 프로세스의 기능과 관련된 일부 메시지 및 오류
  • Materialized View의 자동 Refresh 중에 발생한 오류

Trace file 사용

  • 각 서버 프로세스와 백그라운드 프로세스는 연관된 Trace file에 정보 기록.
  • Trace file의 파일 이름에는 Trace file을 생성한 프로세스의 이름이 포함되어 있지만, 작업 큐 프로세스(Jnnn)에 의해 생성되는 파일 제외.
  • ADR(Automatic Diagnostic Repository)
    • Trace, Alert Log, 상태 모니터 보고서 등 데이터베이스 진단 데이터를 저장하는데 사용하는 시스템 중앙 추적 및 로깅 Repository

Dynamic Performance 뷰

  • 데이터베이스 instance의 작업 및 성능에 대한 동적 데이터 집합.
  • 데이터베이스에 있는 일반 테이블이 아니므로 마운트되거나 열리기 전에 일부 뷰를 사용할 수 있다.
  • 포함하는 정보
    • 세션
    • 파일 상태
    • 작업 진행 상황
    • Lock
    • 백업 상태
    • 메모리 사용 및 할당
    • 시스템 및 세션 파라미터
    • SQL 실행
    • 통계 및 Metric
SQL> SELECT sql_text, executions FROM v$sql WHERE cpu_time > 200000;
SQL> SELECT * FROM v$session WHERE machine = 'EDRSR9P1' and logon_time > SYSDATE -1;
SQL> SELECT sid, ctime FROM v$lock WHERE block > 0;

고려 사항

  • 뷰는 SYS 유저가 소유.
  • 사용 시점에 따라 서로 다른 뷰 사용 가능.
    • instance가 시작된 경우
    • 데이터베이스가 마운트 된 경우
    • 데이터베이스가 열린 경우
  • V$FIZED_TABLE을 query하면 모든 뷰 이름을 볼 수 있다.
    • v-dollar 뷰라고 부른다.
  • 데이터가 동적이기 떄문에 읽기 일관성이 보장되지 않음,

데이터 딕셔너리

  • 데이터베이스에 대한 메타 데이터
  • 데이터베이스에 있는 모든 객체의 이름과 속성 포함.
  • 기본 테이블에 저장되지만, 테이블을 직접 읽는 대신 미리 정의된 뷰를 사용하여 테이블에 액세스 가능.
  • 특성
    • 오라클 데이터베이스 서버가 유저, 객체, 제약 조건 및 저장 영역에 대한 정보를 찾는데 사용
    • 객체 주조나 정의가 수정될 때 데이터베이스에 의해 유지 관리
    • 유저가 데이터베이스 정보를 query하는 데 사용.
    • SYS 유저가 소유
    • SQL을 사용해서 직접 수정 불가.

데이터 딕셔너리 뷰

Image

SQL> SELECT table_name, tablespace_name FROM user_tables;
SQL> SELECT sequence_name, min_value, max_value, increment by FROM all_sequences WHERE sequence_owner IN ('MDSYS', 'XDB');
SQL> SELECT USERNAME, ACCOUNT_STATUS FROM dba_users WHERE ACCOUNT_STATUS = 'OPEN';
SQL> DESCRIBE dba_indexes;