2024. 4. 19. 17:49ㆍDBMS/ORACLE Admin
테이블 스페이스는 데이터베이스에서 테이블이나 인덱스 등의 논리적인 개체를 저장하는 공간을 나타내고 데이터베이스 파일 시스템에 의해 물리적인 데이터 파일에 대응된다.
데이터 블록(Data Block):
데이터베이스에서 데이터의 최소 저장 단위이다.
데이터 블록은 8KB 고정 크기로 나누어져 있으며 각 데이터 블록은 특정 테이블의 레코드를 저장하거나 인덱스 엔트리를 포함한다.
익스텐트(Extent):
연속적인 데이터 블록의 집합으로 연속적인 논리적 공간을 관리하기 위해 사용된다.
세그먼트(Segment):
테이블, 인덱스, 클러스터 등과 같은 논리적 개체를 나타내며 각 세그먼트는 하나 이상의 익스텐트로 구성되고 테이블이나 인덱스는 테이블 스페이스 내에서 자체 세그먼트를 가진다. ( 데이터 관리의 기본 단위 )
테이블 스페이스(Tablespace):
데이터베이스에서 테이블이나 인덱스와 같은 논리적 객체를 저장하는 물리적인 공간이다.
테이블 스페이스는 하나 이상의 데이터 파일로 구성되며, 각 데이터 파일은 특정 파일 시스템에 저장되며 특정 데이터베이스에 대한 저장소를 관리하고, 테이블과 인덱스를 저장하는 데 사용된다.
데이터베이스에서는 데이터 블록이 익스텐트를 형성하고, 익스텐트가 세그먼트를 형성하며, 세그먼트가 테이블 스페이스를 형성한다.
■ 테이블 스페이스 생성
SELECT FILE_ID,TABLESPACE_NAME,FILE_NAME from dba_data_files;
CREATE TABLESPACE example_ts
DATAFILE '/u01/app/oracle/oradata/orcl/example_ts01.dbf' SIZE 8G
AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
- 테이블 스페이스의 이름을 설정하고 실제 데이터 파일이 저장될 경로를 지정해야 한다.
- 데이터 파일의 초기 크기를 8GB로 지정한다.
- `AUTOEXTEND ON NEXT 1G`는 데이터 파일이 자동으로 다음 익스텐트를 1GB씩 확장하도록 지정한다. MAXSIZE UNLIMITED는 데이터 파일의 최대 크기를 제한하지 않음을 의미한다.
-- LOGGING: 스페이스에 대한 로그 기록을 활성화하 테이블 스페이스에 대한 변경 사항이 로그에 기록되어 데이터베이스의 일관성과 복구를 보장한다.
-- ONLINE : 테이블 스페이스가 온라인 상태이면 데이터베이스에 액세스할 수 있다.
-- PERMANENT: 테이블 스페이스를 영구적으로 설정하여 임시 테이블 스페이스와 구별한다. 영구적인 테이블 스페이스에는 영구적인 데이터가 저장된다.
-- EXTENT MANAGEMENT LOCAL AUTOALLOCATE: 익스텐트 관리 방법을 설정
LOCAL은 테이블 스페이스에 대한 로컬 익스텐트 관리를 사용 설정
AUTOALLOCATE는 익스텐트 할당을 자동으로 관리하도록 설정
- BLOCKSIZE 8K: 테이블 스페이스의 데이터 블록 크기를 설정
- SEGMENT SPACE MANAGEMENT AUTO: 이 부분은 세그먼트 공간 관리 방법을 설정
- FLASHBACK ON: 이 부분은 테이블 스페이스에 대한 플래시백을 활성화 플래시백을 사용하면 데이터베이스의 특정 시점으로 되돌릴 수 있다.
■ 임시 테이블 스페이스 생성
CREATE TEMPORARY TABLESPACE temp_ts
TEMPFILE '/u01/app/oracle/oradata/orcl/temp_ts01.dbf' SIZE 1G
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
■ 계정을 생성하고 해당 계정에 테이블 스페이스를 할당
CREATE USER test_user IDENTIFIED BY 1234
DEFAULT TABLESPACE example_ts
TEMPORARY TABLESPACE temp_ts
PROFILE DEFAULT
ACCOUNT UNLOCK
QUOTA UNLIMITED ON example_ts
PASSWORD EXPIRE;
- 생성할 계정의 이름, 암호 설정
- 계정이 사용할 기본 테이블 스페이스를 지정
- `QUOTA UNLIMITED ON example_ts`는 계정이 `example_ts` 테이블 스페이스에 무제한 용량으로 데이터를 저장할 수 있도록 설정할 수 있음
- 사용자가 생성한 객체(테이블, 인덱스 등)의 기본 저장 공간으로 example_ts 테이블스페이스를 지정,임시 테이블을 생성할 때 사용되는 임시 테이블스페이스로 temp_ts 테이블스페이스를 지정
- 사용자에게 example_ts 테이블스페이스에 대한 용량 제한을 설정하지 않고, 무제한으로 설정하여 example_ts 테이블스페이스에 데이터를 저장하는 데 제한 없도록한다.
- PASSWORD EXPIRE 사용자의 암호 만료를 활성화한다.
사용자가 처음 로그인할 때 암호를 변경해야 한다.(보안 강화)
- test_user라는 사용자가 생성되며, 이 사용자는 example_ts 테이블스페이스를 기본 저장 공간으로 사용하고, temp_ts 테이블스페이스를 임시 테이블스페이스로 사용한다. 사용자는 암호 '1234'를 사용하여 로그인할 수 있으며, 암호는 만료되어 처음 로그인 시 변경해야 한다. 사용자는 example_ts 테이블스페이스에 데이터를 저장할 때 용량 제한이 없다.
'DBMS > ORACLE Admin' 카테고리의 다른 글
Dedicated Server, Shared Server (0) | 2024.04.28 |
---|---|
스냅샷 주기 설정 (0) | 2024.04.24 |
임시 테이블 스페이스 (Temporary Tablespaces): 영구 테이블 스페이스 (Permanent Tablespaces): (0) | 2024.04.19 |
a-rows 컬럼이 나오지 않을 때 (0) | 2024.04.19 |
HIDDEN PARAM (0) | 2024.04.19 |