Oracle Tablespace

이기현·2021년 1월 7일
0

Oracle

목록 보기
6/39

Oracle은 data를 저장할 때 논리적으로는 Tablespace에 저장하고 물리적으로는 datafiles에 저장한다.

오라클 database는 여러개의 tablespace로 구성된다. 오라클은 논리적 저장공간인 tablespace안에 data를 datafile형태로 저장한다.

Databases, tablespaces, and datafiles are closely related, but they have important differences:

  • An Oracle database consists of one or more logical storage units called tablespaces, which collectively store all of the database's data.
  • Each tablespace in an Oracle database consists of one or more files called datafiles, which are physical structures that conform to the operating system in which Oracle is running.

요약 :

  • Each database can have many Schema/User (Logical division).
  • Each database can have many tablespaces (Logical division).
  • A schema is the set of objects (tables, indexes, views, etc) that belong to a user.
  • In Oracle, a user can be considered the same as a schema.
  • A database is divided into logical storage units called tablespaces, which group related logical structures together. For example, tablespaces commonly group all of an application’s objects to simplify some administrative operations. You may have a tablespace for application data and an additional one for application indexes.

출처 : https://docs.oracle.com/cd/B19306_01/server.102/b14220/physical.htm

Tablespace의 종류

SYSTEM Tablespace

Data dictionary 정보들이 저장되어 있기 때문에 해당 테이블스페이스가 손상될 경우 오라클 서버는 정상적으로 구동되지 않는다. Data dictionary는 오라클 서버와 관련된 모든 정보를 저장하고 있는 핵심적인 Table, View를 의미한다. Data dictionary는 변경된 내용이 실시간으로 반영되는 동적영역(Dinamic Performance View) 과 실시간으로 반영되지 않는 정적영역(Static dictionary) 으로 구분할 수 있다.

  • 정적영역(Static dictionary)

DBA_XXX, USER_XXX, ALL_XXX 등으로 시작되는 테이블로써 오라클 서버의 상태가 'OPEN' 상태일 경우에만 조회가 가능하다.
ex) DBA_DATA_FILES, DBA_TABLESPACES

  • 종류
    • DBA_INDEXES
      DBA_INDEXES describes all indexes in the database.
  • 동적영역(Dinamic Performance View)

V$ XXX 등으로 시작되는 뷰로써 컨트롤 파일이나 메모리에서 데이터를 가져오며 오라클 서버의 상태가 'MOUNT' 이상인 상태에서 조회가 가능하다. ex) V$ DATAFILE, V$ TABLESPACE

  • 종류
    • V$ PROCESS
      displays information about the currently active processes.
    • V$ SESSION
      This view lists session information for each current session.

Data dictionary 중 정적영역(Static Dictionary)에 저장되는 오라클 서버의 주요 정보는 대략적으로 아래와 같이 나열할 수 있다.

  • 데이터베이스의 논리적인 구조와 물리적인 구조 정보
  • 객체의 정의와 공간 사용 정보
  • 제약조건에 관련된 정보
  • 사용자에 관련된 정보
  • Role, Privilege 등에 관련된 정보
  • 감사 및 보안등에 관련된 정보

SYSAUX Tablespace

Oracle10g 버전부터 등장한 테이블스페이스로써 오라클 서버 성능 튜닝을 위해 등장했다. 해당 테이블스페이스는 오라클 서버 튜닝에 관련된 데이터들이 저장되어 있다. 대표적으로 ADDM, ASH, AWR 기능에 관련된 데이터가 저장된다.

UNDO Tablespace

  • UNDO정보란? rollback을 가능하게 하기 위해서 필요로 하는 정보들, records of the actions of transcation 등의 정보로 구성된다.

Undo record가 사용되는 용도 :

  • Roll back transactions when a ROLLBACK statement is issued
  • Recover the database
  • Provide read consistency
  • Analyze data as of an earlier point in time by using Oracle Flashback Query
  • Recover from logical corruptions using Oracle Flashback features

TEMPORARY Tablespace

데이터를 임시적으로 저장하는 공간으로써 오라클 서버가 재기동 되면 저장된 데이터는 초기화 되는 것이 특징이다. 일반적으로 오라클 서버 메모리 영역인 PGA(Progrma Global Area) 공간이 부족하면 사용하기도 하며, 데이터의 반입 및 반출시에도 사용된다.

General Tablespace

사용자가 필요에 의해 생성하는 테이블스페이스를 통칭해서 일반 테이블스페이스라고 칭한다. 오라클을 이용하는 사용자가 얼마든지 생성과 삭제를 할 수 있다. 특별한 설정이 없다면, 사용자가 생성한 테이블 또는 뷰같은 오브젝트는 일반 테이블스페이스에 저장된다.

출처: https://wookoa.tistory.com/383 [Wookoa]

Oracle의 datafile의 물리적인 위치를 찾는 쿼리 :

SELECT FROM v$datafile;
SELECT
FROM DBA_DATA_FILES;
-> datafile은 .DBF (DataBase File) 형식으로 저장되어 있다.

    DBA_DATA_FILES 위치는

Schemas-> SYS -> Views

MSSQL에서 Filegroup이 Oracle의 Tablespace와 같은 역활을 한다

profile
실력을 쌓아가는 하루하루

0개의 댓글