
각각 들어있는 물건들이 세그먼트
테이블세그먼트
인덱스세그먼트
롤백세그먼트
각각 세그먼트의 정보가 들어있음

빨간 그릇이 테이블스페이스
가장 큰 그릇이 데이터 베이스
테이블 스페이스를 만든 기억이 없음 이유는
SYSTEM 테이블 스페이스는 이미 만들어져있음
SYSTEM 테이블스페이스
- DATA Dictionary wjdqh, Stored Procedured의 정의 , Package, Trigger 포함 (SYSTEM 테이블스페이스에 들어있는 포함된것들)
- SYSTEM Rollback Segment (변형되기전 데이터를 어딘가에 가지고 있어야하는데 그게 롤벡 세그먼트임 )
- 사용자 데이터 포함 가능
Non-SYSTEM 테이블 스페이스 (시스템테이블스페이스 외에 것들이 다 논시스템테이블 스페이스)
- 보다 융통성 있게 데이터베이스를 관리 가능
- Temporary Segment (세그먼트긴한데 임시로 사용되는 거) , Application Data Segment (어플리케이션에서 발생되는 데이터들을 담는곳), Index Segment (쿼리의 속도를 높이기 위해서 ) , User Data Segment
-Rollback Segment : 특별한 성격의 Non-System 테이블스페이스이며, 사용중인 Rollback Segment 가 있으면 Off-Line, 읽기 전용으로 전환할 수 없으며, System 테이블스페이스처럼 복구되어야만 한다, 다시 말하면, 복구를 하기 위해 전체 데이터베이스를 Off-Line하여 복구 해야한다.

Storage 구조
db블럭 : 오라클의 최소 IO 단위
DATA FILE : 테이블스페이스는 데이터 파일들로 구성된다, OSBLOCK 으로 구성된다
EXTENT : 연속된 디비블럭 하나의 익스텐트는 또 여러개의 디비블럭인데 그 디비블럭들이 모여 익스텐트
Rollback에 밑줄 친 이유 : A에서 B로 데이터를 바꿈 근데 커밋을 하지 않은 상태 근데 다른사용자가 똑같은걸 조회 했지만 A로 보여줌 그래서 읽기 일관성을 제공하기위한 롤벡세그먼트

지금까지 설멍한 내용을 한장으로 보여준것
테이블스페이스를 100MG 로 만들었으면 그 이상 공간을 사용 할 수 없다.
15메가짜리 extent(테이블) 을 만들어라 근데 그 데이터가 넘으면 옆에 남은 NextExtent 에서 5m가를 받아라

CREATE TABLESPACE 테이블스페이스명
DATAFLE 파일스페이스명
DEFAULT STORAGE ..명
CREATE TABLESPASCE
DATAFLE
DEFAULT STORAGE( ININTIAL 2M
CREATE TABLESPASCE test_data
DATAFLE 'f:/oracle..' SIZE 10M
DEFAULT STORAGE( ININTIAL 2M
NEXT 1M
MINEXTENTS 1 -- 최소 하나이상의 EXTENTS 생성
MACEXTENTS 121 --최대 121개의 EXTENTS 생성
PCTINCREASE 0); -- PCTINCREASE는 NEXT에 할당된 것을 퍼센트로 보여줌


테이블스페이스를 만들었을때 예제

더이상 테이블 스페이스가 필요가 없을때 삭제하는 방법
그 안에 오브젝트나 세그먼트나 같이 제거 되지 않음.
그 안에 다 지우고싶을때는,
INCLUDING CONTENTS 를 쓰게 되면 테이블스페이스안에꺼 까지 다 삭제 가능
CASCADE CONSTRAINTS : 폴링키로 참조 중인것을 다 참조없애주는거

요약
https://www.youtube.com/watch?v=EhIFSh-qQgc 참고
'DATABASE > Oracle' 카테고리의 다른 글
| oracle과 postgresql 차이에 느낀 사람순번가공방법 (0) | 2023.01.08 |
|---|
댓글