본 포스트의 출처http://altibase.tistory.com/130
-------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
"How to 알티베이스 4"에서는 알티베이스 데이타 딕셔너리에 대해서 알아보겠습니다.
----------------------------------------------------------------------------------------------------------------------------
알티베이스 데이타 딕셔너리(DATA Dictionary)란 무엇인가?
- 알티베이스의 데이타 딕셔너리란 데이타베이스가 생성될 때 만들어 지는 데이타베이
스를 관리하기 위해 유용한 정보들이 존재한 곳입니다.
이러한 딕셔너리는 데이타베이스 객체 정보를 저장하는 메타테이블과 시스템 프로
세스 정보를 저장하는 프로세스 테이블로 나뉘어질 수 있습니다.
메타테이블
- 메타테이블은 시스템이 테이터베이스 객체를 관리하기 위해 생성하는 시스템 정의
테이블로 사용자가 생성하는 일반 테이블과 동일한 구조를 가집니다.
이러한 메타테이블이 사용하는 데이타 타입 및 레코드 저장 형태는 일반 테이블과
동일 합니다. 하지만 메타테이블은 이름이 "SYS_"로 시작하며 종류는 다음과 같습
니다.
알티베이스는 구동 시 데이타베이스 객체 정보를 로딩하고, "DDL(Data Definition
Language) - 데이터" 정의어문 수행 시 데이타베이스 객체 정보를 조회, 저장 및 변경
하기 위해 이 메타테이블을 사용합니다.
Meta Table Name | Description |
SYS_COLUMNS_ | 칼럼 메타 테이블 |
SYS_CONSTRAINTS_ | 제약 조건 메타 테이블 |
SYS_CONSTRAINT_COLUMNS_ | 제약 조건 관련 칼럼 메타 테이블 |
SYS_DATABASE_ | 데이터베이스 메타 테이블 |
SYS_GRANT_OBJECT_ | 객체 권한 메타 테이블 |
SYS_GRANT_SYSTEM_ | 시스템 권한 메타 테이블 |
SYS_INDEX_COLUMNS_ | 인덱스 키 칼럼 메타 테이블 |
SYS_INDICES_ | 인덱스 메타 테이블 |
SYS_PRIVILEGES_ | 권한 메타 테이블 |
SYS_PROCEDURES_ | 저장 프로시저 및 함수 메타 테이블 |
SYS_PROC_PARAS_ | 저장 프로시저 및 함수의 파라미터 메타 테이블 |
SYS_PROC_PARSE_ | 저장 프로시저 및 함수 구문 메타 테이블 |
SYS_PROC_RELATED_ | 저장 프로시저 및 함수 접근 테이블 메타 테이블 |
SYS_REPLICATIONS_ | 이중화 메타 테이블 |
SYS_REPL_HOSTS_ | 이중화 호스트 메타 테이블 |
SYS_REPL_ITEMS_ | 이중화 테이블 메타 테이블 |
SYS_TABLES_ | 테이블 메타 테이블 |
SYS_TBS_USERS_ | 테이블스페이스 사용자 메타 테이블 |
SYS_TRIGGERS_ | 트리거 메타 테이블 |
SYS_TRIGGER_DML_TABLES_ | 트리거 접근 테이블 메타 테이블 |
SYS_TRIGGER_STRINGS_ | 트리거 구문 메타 테이블 |
SYS_TRIGGER_UPDATE_COLUMNS_ | 트리거 변경 칼럼 메타 테이블 |
SYS_USERS_ | 사용자 메타 테이블 |
SYS_VIEWS_ | 뷰 메타 테이블 |
SYS_VIEW_PARSE_ | 뷰 구문 메타 테이블 |
SYS_VIEW_RELATED_ | 뷰 접근 테이블 메타 테이블 |
이처럼 중요한 메타테이블의 소유자는 시스템 사용자로 일반 사용자는 메타테이블의
접근이 제한적입니다.
그럼 실제로 메타테이블을 조회해 보겠습니다.
* SQL 화면 출력이 짤리는 것을 방지하기 위해서 ISQL 명령어중 출력옵션 제어 명
령어인 "SET LINESIZE <숫자: default(100)>"을 사용하겠습니다.
ISQL은 차차 알아보도록 할께요.
성능 뷰 테이블
- 성능 뷰(performance view)는 알티베이스 시스템 내부의 정보, 즉 시스템 메모리
프로세스 상태, 세션, 버퍼 등의 메모리 구조를 일반 테이블 형태로 나타내어 사용자
가 모니터링이 가능하도록 해 주는 구조를 말합니다.
"DML(Data Management Language) - 데이터 조작어" 중 select(테이블에서 조건에
맞는 튜플을 검색함)로 테이블을 검색하는 것처럼, 알티베이스 운용 시 사용되는
메모리 객체(ex. 세션정보, 로그정보)에 관한 내용을 검색함으로써 운용하는데 있어
편의성을 제공하고 있습니다.
성능 뷰 테이블은 V$로 시작하며 종류는 다음과 같습니다.
Fixed Table Name | Description |
V$ALLCOLUMN | 성능 뷰를 구성하는 칼럼 정보 |
V$ARCHIVE | 아카이브 관련 정보와 백업 정보 |
V$BUFFPAGEINFO | 버퍼 메니저의 버퍼 프레임 통계 정보 |
V$BUFFPOOL_STAT | 버퍼 풀 hit ratio를 비롯, 버퍼 풀 관련 통계 정보 |
V$DATABASE | 메모리 데이터베이스 공간의 내부 정보 |
V$DATAFILES | 테이블스페이스에서 사용하는 데이타 파일의 정보 |
V$DISKGC | 디스크 공간 회수 (disk garbage collection) 정보 |
V$DISKTBL_INFO | 디스크 테이블 정보 |
V$MEMTBL_INFO | 메모리 테이블 정보 |
V$FLUSHINFO | 버퍼 플러쉬 정보 |
V$INDEX | 테이블의 인덱스 정보 |
V$INSTANCE | 현재 알티베이스의 다단계 startup 정보 |
V$LATCH | 버퍼 풀의 버퍼 제어 블록(BCB) latch 정보와 read or write가 try된 페이지에 대하여 read/ write latch에 대한 통계 정보 |
V$LFG | 그룹커밋 관련 통계값 |
V$LOCK | 현재 시점에서 데이터베이스의 모든 테이블 lock 노드 정보 |
V$LOCK_WAIT | 트랜잭션의 락 대기 상태 정보 |
V$LOG | 로그 앵커 정보 |
V$LOCK_STATEMENT | Lock과 statement정보 |
V$MEMGC | 메모리 공간 회수 (memory garbage collect) 정보 |
V$MEMSTAT | 알티베이스 프로세스가 사용하는 메모리 통계 정보 |
V$MUTEX | 알티베이스 프로세스에서 사용되고 있는 동시성 제어 관련 mutex 통계 정보 |
V$PLANTEXT | SQL의 실행 계획 텍스트 정보 |
V$PROCTEXT | 저장 프로시저의 텍스트 정보를 나타냅니다 |
V$PROPERTY | 알티베이스 내부에 설정된 프로퍼티(Property) 정보 |
V$REPEXE | 리플리케이션 관리자 정보 |
V$REPGAP | 리플리케이션 송신자의 작업 로그 파일이 현재 생성된 최근 로그 파일간의 차이 정보 |
V$REPRECEIVER | 리플리케이션 수신자 정보 |
V$REPRECEIVER_TRANSTBL | 리플리케이션 송신자의 트랜잭션 테이블 정보 |
V$REPSYNC | SYNC 중인 테이블의 정보 |
V$REPSENDER | 리플리케이션 송신자 정보 |
V$REPSENDER_TRANSTBL | 리플리케이션 수신자의 트랜잭션 테이블 정보 |
V$SEQ | 시퀀스 관련 정보 |
V$SERVICE_THREAD | Multiplexing 관련 서비스 쓰레드(Thread) 정보 |
V$SESSION | 알티베이스 내부에 생성된 클라이언트에 대한 세션 정보 |
V$SESSIONMGR | 알티베이스의 세션 통계 정보 |
V$STATEMENT | 현재 알티베이스에 생성된 모든 세션의 구문 정보 |
V$SQLTEXT | 시스템에서 수행되는 SQL의 텍스트 정보 |
V$TABLE | 모든 성능 뷰의 레코드 및 칼럼 정보 |
V$TABLESPACES | 테이블스페이스 정보 |
V$TRACELOG | 트레이스 로깅 정보 |
V$TRANSACTION | 트랜잭션 객체 정보 |
V$TRANSACTION_MGR | 알티베이스 트랜잭션 관리자 정보 |
V$UNDO_BUFF_STAT | Undo table space의 버퍼 풀 관련 통계 정보 |
V$VERSION | 데이터베이스 버전 관련 정보 |
V$CATALOG | 저장관리자의 System catalog table. |
V$DISK_BTREE_HEADER | 디스크 BTREE 인덱스들의 헤더 정보 |
V$MEM_BTREE_HEADER | 메모리 BTREE 인덱스들의 헤더 정보 |
V$MEM_BTREE_NODEPOOL | 메모리 BTREE 인덱스를 위한 노드 풀 정보 |
V$MEM_TABLESPACES | 현재 Memory에 생성된 Tablespace들에 대한 정보를 표시한다. |
V$MEM_TABLESPACE_ CHECKPOINT_PATHS |
Memory tablespace의 backup 파일이 저장되는 위치를 표시한다 |
V$MEM_TABLESPACE_ STATUS_DESC |
Memory tablespace상태 값의 의미 (offline, online, dropped등) |
V$STABLE_MEM_DATAFILES | 현재 Memory DB에 생성된 Datafile들의 정보. |
V$DB_FREEPAGELISTS | 현재 Memory DB의 Free Page List들의 정보를 보여준다. |
V$SEGMENT | 현재 Disk DB에 생성된 Segmemt들의 정보를 보여준다. |
V$UNDO_TBS | 현재 Disk DB에 생성된 Undo Tablespace정보를 보여준다. |
V$DATATYPE | DATABASE에서 제공하는 TYPE 정보 |
V$SESSTAT | Session 정보 |
V$STATNAME | 통계정보의 종류와 ID |
V$ST_ANGULAR_UNIT | Geometry Data의 각도 단위 정보 |
V$ST_AREA_UNIT | Geometry Data의 면적 단위 정보 |
V$ST_LINEAR_UNIT | Geometry Data의 거리 단위 정보 |
V$SYSSTAT | 통계정보의 종류 및 해당 값 |
정말 많은 데이터베이스 관련 정보를 확인 할 수 있는데요. 알티베이스 자체에 대한
모니터링 기능은 필수적으로 필요한 것이며 그 만큼 관리지에게 편의성을 제공하여
성능에 대한 분석을 쉽고 빠르게 할 수 있도록 도와줍니다.
성능 뷰는 알티베이스 운용과정에서 사용되는 대부분의 내부 메모리 구조체를
뷰 형태로 제공하며, 해당 테이블에 대한 조회를 하는 순간에 그 데이타가 실시간으
로 생성되기 때문에 언제나 프로세스 내부의 최신 정보를 얻을 수 있습니다.
그럼 성능 뷰 전체목록을 iSQL에서 select 명령어를 통해서 조회해 보겠습니다.
성능 뷰는 언제나 읽기 전용 속성을 가지고 있습니다. 만일 sys로 접근해서 변견을
시도한다면, 알티베이스는 에러를 내고, 해당 트랜잭션에 대한 부분철회를 수행할
것입니다.
이렇게 오늘은 데이타 딕셔너리에 대해서 알아봤습니다. 저도 아직은 모든 메타테이블
과 성능 뷰 테이블의 각각의 기능을 알지 못하지만 하나씩 만저보고 결과를 모니터링
하면서 배워 나가고 있습니다. 뭐든지 많이 해보고 경험해 볼 수록 실력이 쑥쑥~ 자란
다고 생각해요.
알티베이스를 마스터 하는 그날까지 함께 노력해 보도록 하겠습니다.
오늘도 정말 수고하셨구요. 다음 How to 알티베이스 5에서는 iSQL과 DDL(데이터정의
어), DML(데이터조작어), DCL(데이터제어어)를 알아볼까 합니다.