batch job :
batch 란? 일을 바로바로 처리하는 것이 아니라, 일을 모았다가 한번에 작업을 처리하는 것을 말한다. 배치는 대량의 데이터를 특정 시간에 프로그램을 실행하여 일괄적으로 처리하는 특징을 갖는다.
티베로 데이터베이스 파일의 구조 :
DataFile : 테이블, 인덱스 들과 같은 논리적 구조들은 물리적으로 데이터 파일에 저장이 된다.
Redo Log File : 복구를 위한 데이터베이스의 변경된 모든 것을 길록하는 파일
Control File : 물리적 구조와 상태를 기록하는 파일
논리 볼륨 (Logical Volume) 이란?
데이터파일의 구조 : 파일 헤더 + 사용공간 / 미사용공간
- 파일헤더 : 데이터 사이즈 정보, 체크 포인트* TSN, 파일 고유 식별 절대번호, 테이블스페이스에서 식별하기 위한 상대번호 등의 메타 정보들을 포함하고 있다
- 사용공간
- 미사용공간 : 한번 이상 사용되었던 공간과, 한번도 사용되지 않은 미사용공간으로 나뉜다.
* 체크 포인트 ?
스키마 객체 (Schema Object) 란? 스키마는 테이블, 뷰, 인덱스 등의 집합체로써, 각종 오브젝트를 포함하며, 동일한 이름의 유저에 의해 소유된다. 스키마 오브젝트는 논리적인 데이터 저장 구조로써, 디스크의 물리적 파일과 1대1 대응을 하지 않고, 논리적인 구조인 테이블 스페이스에 저장된다. 쿼리의 대상이 되는 것들을 통칭하여 스키마 객체라고 부른다.
리두 로그 파일의 종류 : Online Redo Log Files, Multiplexed Redo Log Files, Archived Redo Log Files (pg.11~12)
컨트롤파일 (Control File) :
Segment & Extent :
익스텐트 Extent 란? 연속된 데이터베이스 블럭의 집합이다.
세그먼트 Segment 란? tablespace 내 특정 구조에 대한 모든 데이터를 갖고 있는 하나 혹은 하나 이상의 익스텐트의 집합이다 .
데이터 블록 이란? : 데이터베이스 I/O의 단위이자, 논리저장구조의 최소 단위가 데이터 블록이다. 운영체제 블록 크기와 다를 경우 배수 단위로 데이터 블록의 크기를 설정해야한다.
테이블스페이스 (tablespace) 란? : 세그먼트를 저장하는 논리 저장소, 한개 이상의 데이터 파일이나 임시파일을 사용하여 데이터를 저장한다.
테이블 (table) : 테이블은, 말 그대로 해석을 하자면 표를 의미한다. 데이터베이스에서 실제 데이터가 저장되는 논리적 구조를 테이블이라고 부르는데, 일반적인 표의 구조와 마찬가지로 행(로우, row)과 열(컬럼, columnn)로 이루어져 있다. 테이블의 종류로는 일반 테이블과 *파티션 테이블이 있다.
* Partition 이란? DB의 규모가 너무 클 경우, 너무 커다란 테이블을 가지고 작업을 하게 되면 성능 측면에서 문제가 발생하게 되는데, 이를 해결하기 위해 '파티션' 이라는 단위로 테이블을 쪼개서 관리를 한다. 파티셔닝이란 논리적인 데이터 element 를 다수의 entity로 쪼개는 행위를 뜻하는 일반적인 용어이다.
(파티셔닝 부분 참고 : https://gmlwjd9405.github.io/2018/09/24/db-partitioning.html)
* 파티션 테이블 이란? 지속적으로 용량이 증가하는 논리적 테이블을 어러 개의 물리적인 공간으로 나누어 성능을 향상시킨 테이블. 각 파티션 테이블은 별개의 세그먼트에 저장되어 개별적으로 관리가 가능하다.
파티션 테이블의 장점 :
- 개선된 가용성 : 파티션은 독립적으로 관리가 가능하다. Backup and Restore 를 파티션 별로 작업이 가능하다. 같은 테이블에서 Unavaliable 한 파티션은 다른 파티션에 영양을 주지 않는다.
- 관리의 편의성
사용자가 지정한 값으로 파티션이 가능하고, 테이블스페이스 간에 파티션 이동이 가능하다. 파티션 레벨에서 SELECT, DELETE, UPDATE 가 가능하다.
- 개선된 성능
데이터를 액세스할 때 액세스 하는 범위를 줄여 퍼포먼스를 향상시킨다.
가상머신 스냅샷이란?
스냅샷은 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술을 의미합니다. Windows OS의 복원 지점과 같이 장애나 데이터 손상 시 스냅샷을 생성한 시점으로 데이터를 복구할 수 있습니다.
스냅샷은 원본 데이터를 그대로 복사해 다른 곳에 저장하는 백업과 달리 초기 생성 시 혹은 데이터의 변경이 있기 전까지는 스토리지의 공간을 차지하지 않습니다. 또 메타데이터(데이터에 대한 부가적인 정보)의 복사본에 해당하기 때문에 생성하는 데 오랜 시간이 걸리지 않고, 장애 상황이 발생해도 빠르게 데이터를 복원할 수 있습니다.
티베로의 기능
Tibero 는 대용량 처리를 위한 아키텍처를 기반으로, 고성능 처리를 지원
- 비용 기반 Optimizer
- 다양한 Index/Partition 기술
- 고성능 병렬 처리 및 압축
티베로 프로세스 구조 : 리스너 + 워커 프로세스 + 백그라운드 프로세스
티베로가 인스턴스를 기동하는 부분의 작동과정은 오라클의 작동과정과 거의 유사하다. 티베로에서 오라클의 명령어가 거의 다 작동하는 것은, 오라클과 구조가 거의 유사하기 때문이라고 생각한다.
mount, nomount 차이 ?
사용자 관리 -> 티베로가 설치되면, 다음 6개의 계정 (SYS, SYSCAT, OUTLN, SYSGIS, TIBERO, TIBERO01)이 자동으로 생성된다. 데이터베이스 관리자는 기본 계정 이외에 업무에 필요한 사용자 계정을 추가로 생성하고 관리해야한다.
- SYS : 데이터베이스 관리를 위한 계정으로서 시스템 패키지, 동의어, 사용자, 역할, 가상 테이블, 시퀀스, 동적 뷰 등을 생성하고 관리한다
- SYSCAT : 데이터베이스 관리를 위한 정적 카탈로그 뷰를 생성하고 관리하는 계정이다
- OUTLN : 동일한 SQL을 수행할 때 항상 같은 질의 플랜으로 수행될 수 있게 관련 힌트를 저장하는 등의 일을 하는 계정이다
- SYSGIS : GIS 와 관련된 테이블 생성 및 관리하는 계정이다
- TIBERO/TIBERO1 은 CONNECT< RESOURCE, DBA 역할이 부여된 샘플 사용자 계정이다
사용자를 관리하면서, 권한을 부여할수도 있는데, 그럴때는 GRANT 명령어가 사용이 된다. 반대로 권한이 부여된 사용자로부터 권한을 회수할 수도 있는데, 그럴땐 REVOKE 를 통해 스키마 오브젝트 또는 시스템 권한을 회수할 수 있다.
# 권한 부여
GRANT SELECT ANY TABLE TO tibero WITH ADMIN OPTION;
# 권한 회수
# 스키마 오브젝트 권한 회수
REVOKE SELECT, UPDATE (EMPLOYEE_NAME, ADDRESS) ON EMPLOYEE
FROM tibero;
# 시스템 권한 회수
REVOKE SELECT ANY TABLE FROM tibero;
롤 (Role) 이란? 여러 권한을 모아놓은 집합이며, 하나의 단위로서 사용자에게 부여한다. 롤을 생성하거나 수정, 부여하기 위해서는 그에 맞는 권한이 필요하다.
오브젝트 관리
1. 스키마 객체
2. 테이블
3. 인덱스 : 원하는 데이터를 빠르게 검색하기 위하여 사용하는 데이터 구조. 인덱스는 테이블과는 별도의 스키마 오브젝트 이므로, 독립적으로 생성, 제거, 변경 제거가 가능하다.
4. 파티션 테이블 :
5. 파티션 인덱스 :
6. 뷰 (VIEW) : SELECT 문장으로 표현되는 질의에 이름을 부여하여 정의한 가상의 테이블 . 따라서 SQL 문장 내에서 테이블과 동일하게 사용한다. 뷰를 통한 데이터 변경이 가능하다.
- 모든 뷰에 대한 질의 연산은 가능하지만, 삽입, 갱신, 삭제 연산이 불가능한 연산이 존재한다.
- 삽입, 갱신, 삭제 연산을 수행할 수 있는 뷰를 갱신 가능한 뷰 (updatable view) 라고 한다.
7. 동의어 (SYNONYM) : 오브젝트에 대한 별칭 (ALIAS (?) )
8. 시퀀스 : 순차적으로 부여하는 고유번호이다. 주로 새로운 데이터에 유일한 고유번호를 자동으로 부여할때 사용한다.
9. 잡 (JOB) : Tibero 에서는 주기적으로 데이터베이스에 주가된 JOB을 검사하여, 사용자가 설정한 시각이 되면 해당되는 JOB을 실행한다.
JOB의 특징 :
- JOB을 추가 또는 변경하는 경우 커밋을 실행하지 않아도 자동으로 커밋이 되며, JOB 내에서 실행한 작업도 자동으로 커밋된다.
- JOB 실행이 실패한 경우에는 재실행되며, 16번 실패하게 되면 해당 JOB은 broken 상태가 된다.
'TABA > Tibero' 카테고리의 다른 글
October 6th Backup (0) | 2022.10.06 |
---|---|
TABA Sep 26th (2) - Tibero Database 저장구조 (0) | 2022.09.26 |
TABA Sep 26th (1) - About Tmax Tibero (0) | 2022.09.26 |