TABLESPACE 생성

2024. 4. 19. 17:49DBMS/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 테이블스페이스에 데이터를 저장할 때 용량 제한이 없다.

 

 

 

 
 
반응형