02.Oracle/DataBase

oracle 파일구조

1010 2009. 4. 4. 13:24
반응형
데이터베이스 : 물리적인 운영체제 파일들의 집합
인스턴스 : 오라클 프로세스들과 SGA
* 데이터베이스 파일 :
  - 파라미터 파일(parameter file) : 오라클 인스턴스에게 제어파일(control file)의 위치를
    알려주는 역할을 함(init<oracle_sid>.ora)
    + init<oracle_sid>.ora, tnsnames.ora, listener.ora, sqlnet.ora,
       protocol.ora, names.ora, cman.ora, ldap.ora
    + 가장 중요한 파일은 init.ora
    + oracle 8i까지는 pfile을 이용하였으나 9i부터는 spfile을 이용함
      오라클 구동시 : pfile = filename
  - 데이터 파일(data file) : 데이터베이스에 대한 테이블, 인덱스, 그리고 모드 세그먼트들
     을 포함
    + tablespace, segment, extent, block 으로 구성
    + segment : 데이터베이스의 객체들이 저장됨
    + extent : segment를 구성하며, 하나의 extent는 파일에서 연속적으로 할당된 공간을
                 의미
    + block : extent를 구성하며, 하나의 block은 가장 작은 저장 공간 할당 단위
                 오라클은 block단위로 디스크에 읽고 쓰며, 2kb, 4kb, 8kb, 16kb, 32kb의 크기
                 중에서 선택한다.(16k, 32k는 자주 사용되지 않음)
                 block은 block header, table directory, row directory, empty space,
                 data space 로 구성된다.
              ! block header : block의 종류(테이블, 인덱스등)에 대한 정보, 해당 block에 대
                해 현재 동작중이거나 과거 수행된 트랙잭션들에 대한 정보, 디스크에서의 블록
                의 위치등을 포함
              ! table directory : block에 저장된 행들의 테이블에 관한 정보를 포함
              ! row directory : block에 저장된 행들의 정보를 포함(결국 block에 저장된 행들
                에 대한 포인터 배열이다.)
     + block overheader : block header + table directory + row directory
  - 재실행 로그 파일(redo log file) : 트랜잭션에 대한 로그 정보를 포함
     + 사용자의 실수로 데이터를 삭제후 커밋을 하였다면 재실행 로그 파일을 이용하여
        데이터를 복구 할 수 있다.
     + 재실랭 로그 파일에는 온라인 재실행 로그와 아카이브 재실행 로그가 있다.
        온라인 재실행 로그 : ?
        아카이브 재실행 로그 : ?
  - 제어파일(control file) : 데이터 파일들의 위치와 상태에 대한 관련정보 포함
     + 파라미터파일(init.ora)은 오라클 인스턴스에게 제어파일의 위치를 알려줌
  - 임시파일(temp file) : 디스크 기반의 정렬과 임시 저장소로 사용
     + 정렬 연산의 중간 결과나 RAM에 충분한 공간이 없는경우 질의 결과를 저장하기 위해
       사용
     + 테이블이나 인덱스와 같은 영속적인 데이터 객체들은 결코 임시 파일에 저장되지 않
       지만 임시테이블 혹은 인덱스의 내용은 저장됨
     + 임시 파일에서 사용자의 세션동안 수행된 작업의 롤백 결정에 대하여 임시 파일들이
        UNDO는 할 수 있지만 REDO는 할 수 없음
        (그러므로 임시 데이터 파일은 백업불필요)
  - 패스워드 파일(password file) : 네트워크 환경에서 관리자적인 활동을 수행하는 사용자
    들을 인증하는 데 사용