투씨에스지 기술 블로그

오라클 데이터 딕셔너리 본문

Oracle/Dictionary

오라클 데이터 딕셔너리

TOCSG 2016.03.10 13:07

 

1. 데이터 사전이란?

| 데이터 사전의 정의

 

데이터 사전(Data Dictionary)은 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공한다.

 

오라클 데이터베이스는 SQL이 수행될 때마다 데이터 사전을 액세스한다.

 

DB에서 작업이 진행되는 동안 오라클은 데이터 사전을 읽어 객체의 존재 여부와 사용자에게 적합한 액세스 권한이 있는지를 확인한다.

또한 오라클은 데이터 사전을 지속적으로 갱신하여 데이터베이스 구조, 감사, 사용자 권한, 데이터 등의 변경 사항을 반영한다.

 

데이터 사전은 데이터베이스 생성 과정 중에 catalog.sql이라는 스크립트를 수행하는 과정에서 생성되며, 모든 데이터 사전의 정보는 SYSTEM 테이블스페이스에 저장된다.

 

| 데이터 사전의 내용

 

데이터 사전에 저장되는 내용은 아래와 같다.

 

·         오라클의 사용자 정보

·         오라클 권한과 롤 정보

·         데이터베이스 스키마 객체 정보

·         무결성 제약조건에 관한 정보

·         데이터베이스의 구조 정보

·         데이터베이스의 성능 정보

·         기타 일반적인 DATABASE 정보

 

 

2. 데이터 사전의 분류

 데이터 사전은 크게 딕셔너리 뷰와 동적 성능 뷰로 구분된다.

 

| 데이터 딕셔너리 뷰

 

데이터베이스에 저장된 정보를 보여주므로 데이터베이스가 mount 또는 open이 되어야만 액세스가 가능한 데이터 사전이다.

뷰가 액세스할 수 있는 범위에 따라서 USER_, ALL_, DBA_의 영역으로 구분된다

 

 




ALL_

USER_

DBA_

 

[그림1] 데이터 딕셔너리 뷰 구분

 

 

 

1.     USER_XXXX

USER_로 시작하는 데이터 사전으로, 한 특정 사용자에게 종속되어 있고, 그 사용자가 소유하는 객체에 대한 정보를 조회할 수 있는 데이터 사전이다.

 

2.     ALL_XXXX

ALL_로 시작하는 데이터 사전으로, 한 특정 사용자에게 권한이 있는 객체 정보를 조회할 수 있는 데이터 사전이다.

자신이 조회하려는 객체의 주인이 아니더라도 그 객체에 접근할 수 있는 권한을 가지고 있다면 ALL_XXXX 뷰를 통하여 조회가 가능하다.

 

3.     DBA_XXXX

DBA권한을 가진 사용자 만이 조회할 수 있는 데이터 사전으로서 모든 오라클 데이터베이스 객체에 대한 정보를 볼 수 있다.

SELECT ANY TABLE 권한이 있는 사용자 또한 질의가 가능하며 다른 사용자가 질의하려면 앞에 SYS.이라는 접두어를 붙여야 한다.

 

|  동적 성능 뷰

 

1.     V$_XXXX

Dynamic Performance View라고도 하며, 현재 Database의 상태에 관한 정보로 주로 DBA에게만 액세스가 허용되어 있다.

주로 DBA의 모니터링 작업용 정보를 제공하며, X$ 테이블을 베이스로 하는 뷰이다.

데이터베이스를 shutdown 하면 뷰에 있는 데이터가 초기화되며, startup 이후에 성능 데이터가 누적값으로 저장된다.

 

2.     GV$_XXXX

오라클 RAC 환경에서 클러스터 내의 모든 인스턴스의 정보를 보여준다.

V$ 뷰와 마찬가지로 X$ 테이블을 베이스로 하는 뷰이다.

 

3.     X$_XXXX

X$ 뷰는 V$ 뷰가 보여주지 않는 정보를 보여준다.

X$ 테이블은 오라클의 메모리 정보를 볼 수 있는 SQL 인터페이스 뷰들로 Oracle 데이터베이스의 숨겨진 영역 중 하나이다.

공식적으로 오라클은 X$ 뷰에 대한 정보를 제공하지는 않고 있다.

 

 

3. 주요 데이터 사전

 

 

|  주요 데이터 딕셔너리 뷰

 

저장되는 정보의 유형에 따라 크게 4가지로 구분할 수 있다.

 

1.     오브젝트 관련 데이터 딕셔너리 뷰

DBA_OBJECTS

해당 데이터베이스에 존재하는 모든 오브젝트 정보

DBA_SEGMENTS

해당 데이터베이스의 모든 오브젝트 중 세그먼트에 대한 정보

DBA_TABLES

해당 데이터베이스에 존재하는 모든 테이블 목록 및 테이블에 관련된 모든 정보

DBA_INDEXES

해당 데이터베이스에 존재하는 모든 인덱스 목록 및 인덱스에 관련된 모든 정보

DBA_TAB_PARTITIONS

해당 데이터베이스에 파티션 테이블이 존재한다면 해당 데이터 딕셔너리 뷰에서 조회 가능

DBA_TAB_SUBPARTITIONS

해당 데이터베이스에 존재하는 파티션 중 복합 파티션 테이블이 존재한다면 해당 데이터 딕셔너리 뷰에서 조회 가능

DBA_IND_PARTITIONS

해당 데이터베이스에 파티션 인덱스가 존재한다면 해당 데이터 딕셔너리 뷰에서 조회 가능

DBA_IND_SUBPARTITIONS

해당 데이터베이스에 존재하는 파티션 중 복합 파티션 인덱스가 존재한다면 해당 데이터 딕셔너리 뷰에서 조회 가능

DBA_VIEWS

해당 데이터베이스에 존재하는 모든 뷰 목록 및 뷰에 관련된 모든 정보

DBA_TRIGGERS

해당 데이터베이스에 존재하는 모든 트리거 목록 및 트리거에 관련된 모든 정보

DBA_SYNONYMS

해당 데이터베이스에 존재하는 모든 동의어 목록 및 동의어에 관련된 모든 정보

DBA_ROLLBACK_SEGS

해당 데이터베이스에 존재하는 모든 언두 세그먼트의 정보

 

2.     유저 및 권한 관련 데이터 딕셔너리 뷰

DBA_USERS

데이터베이스에 존재하는 모든 유저에 대한 정보

DBA_TS_QUOTAS

데이터베이스 유저별로 각 테이블스페이스에 할당된 공간을 확인

MAX_BYTES 컬럼이 -1의 값이라면 해당 테이블스페이스에 대해 공간 사용에 대한 제한이 없다는 것을 의미

DBA_TAB_PRIVS

유저 또는 롤 별로 테이블에 대한 권한 부여 현황을 확인

DBA_SYS_PRIVS

유저 또는 롤 별로 부여된 시스템 권한을 확인

DBA_ROLES

데이터베이스에 존재하는 모든 롤을 확인

DBA_ROLE_PRIVS

유저 및 롤에 할당된 롤을 확인

 

3.     스토리지 관련 데이터 딕셔너리 뷰

DBA_TABLESPACES

데이터베이스에 존재하는 모든 테이블스페이스에 대해 조회

DBA_SEGMENTS

데이터베이스에 존재하는 오브젝트 중 용량이 할당된 모든 세그먼트를 조회

DBA_EXTENTS

각 세그먼트별로 할당된 익스텐트에 대해 조회

DBA_DATA_FILES

각각의 테이블스페이스를 구성하는 데이터 파일의 정보를 확인

DBA_TEMP_FILES

지역 관리 임시 테이블스페이스에 대한 임시 파일 정보를 확인할 수 있는 데이터 딕셔너리 뷰

DBA_FREE_SPACE

테이블스페이스별로 사용 가능 여유 공간을 확인할 수 있는 데이터 딕셔너리 뷰

 

4.     기타 데이터 딕셔너리 뷰

DBA_TAB_COLS

테이블을 구성하는 모든 컬럼 정보를 확인

DBA_IND_COLUMNS

테이블에 생성되어 있는 인덱스들의 컬럼 구성 정보를 확인

DBA_PART_KEY_COLUMNS

파티션 테이블에 대해 파티션 키 컬럼을 확인

 

|  주요 동적 성능 뷰

 

동적 성능 뷰는 출력되는 정보에 따라 다양한 성능 뷰가 존재한다.

 

1.     세션 관련 동적 성능 뷰

V$TRANSACTION

현재 언두 데이터를 사용하는 모든 작업에 대해 실시간 조회

V$SESSION

현재 데이터베이스에서 작업을 수행하거나 또는 수행하지 않더라도 접속해있는 모든 세션 정보

V$PROCESS

데이터베이스에 접속한 운영체제 프로세스별로 하나의 로우씩 추출

V$SQL

해당 데이터베이스에서 수행된 SQL을 조회

 

2.     대기 이벤트 관련 동적 성능 뷰

V$SESSION_WAIT

현재 세션에서 발생하고 있는 대기 이벤트를 확인

V$EVENT_NAME

해당 뷰는 동적 성능 뷰는 아니지만 동적 성능 뷰에서 발생하는 모든 이벤트에 대한 정보를 저장하고 있는 참조성 뷰

V$SESSION_EVENT

현재 데이터베이스에 접속해 있는 세션들의 대기 이벤트 값들에 대한 누적 값을 확인

V$SYSTEM_EVENT

오라클 데이터베이스 기동 이후 대기 이벤트에 대한 모든 누적 값을 확인할 수 있는 동적 성능 뷰

V$SESSION_WAIT_HISTORY

현재 접속해 있는 세션별로 가장 최근 10개의 대기 이벤트를 저장하는 동적 성능 뷰

 

3.     파라미터 관련 동적 성능 뷰

V$NLS_PARAMETERS

National Language Support(언어 현지화)를 위한 파라미터를 확인

V$PARAMETER

현재 접속한 세션에 적용되는 파라미터 값을 조회

V$SPPARAMETER

서버 파라미터 파일에 저장된 정보들로, 만약 서버 파라미터파일을 사용하지 않고 인스턴스를 시작한 경우에는 모든 ISSPECIFIED 컬럼의 값이 FALSE로 표기됨

V$SYSTEM_PARAMETER

전체 시스템에 적용되는 파라미터 값을 조회

 

4.     메모리 관련 동적 성능 뷰

V$SGAINFO

SGA 영역의 구성 정보

V$SGASTAT

SGA 영역의 세부 구성 정보

V$PGASTAT

PGA 영역의 통계 정보

V$SGA_TARGET_ADVICE

SGA_TARGET 파라미터 설정을 위한 ADVISOR의 통계 정보

V$PGA_TARGET_ADVICE

PGA_AGGREGATE_TARGET 파라미터 설정을 위한 ADVISOR의 통계 정보

V$MEMORY_TARGET_ADVICE

MEMORY_TARGET 파라미터 설정을 위한 ADVISOR의 통계 정보

V$MEMORY_DYNAMIC_COMPONENTS

동적으로 변경되는 SGA 영역의 요소들에 대한 정보

 

5.     파일 및 백업 관련 동적 성능 뷰

V$BACKUP

온라인 데이터 파일들의 백업 상태를 조회

V$BACKUP_SET

컨트롤 파일에 저장된 백업 셋의 정보를 조회

V$RMAN_BACKUP_JOB_DETAILS

RMAN 백업 작업에 대한 상세 정보를 조회

V$RMAN_OUTPUT

메모리 상에 저장된 RMAN의 화면 출력 메시지를 조회

V$RMAN_STATUS

진행 중이거나 작업이 완료된 RMAN 작업 정보로 진행이 완료된 정보는 컨트롤 파일에 기록되며, 진행 중인 작업은 메모리에 저장됨

V$RMAN_CONFIGURATION

RMAN 백업 설정 정보 조회

 

6.     기타 동적 성능 뷰

V$DATABASE

해당 데이터베이스의 기본 정보를 제공

V$INSTANCE

해당 데이터베이스의 인스턴트 정보를 제공

V$SGASTAT

해당 데이터베이스의 메모리 정보를 확인할 수 있는 동적 성능 뷰

V$BACKUP

해당 데이터베이스의 모든 데이터 파일에 대해 백업 여부를 확인

V$LOCK

현재 데이터베이스에 수행중인 모든 락(Lock) 정보를 확인

 

 

.그림. 투씨에스지 윤병훈 부장

 



 

'Oracle > Dictionary' 카테고리의 다른 글

오라클 데이터 딕셔너리  (0) 2016.03.10
0 Comments
댓글쓰기 폼