[DB] POSTGRESQL

[PostgreSQL] Tablespace 관리

mewoni 2020. 4. 1. 10:50
반응형

1. TABLESPACE란?

 DB 내의 물리적인 부분으로 DB object 내 실제 데이터를 저장하는 공간이다. 단지 데이터베이스 저장소 위치를 지정하며, 논리적인 데이터베이스 구조나 스키마를 지정하지 않는다. (동일 스키마 내의 다른 오브젝트는 서로 다른 테이블스페이스에 위치할 수 있다.)

 

 POSTGRESQL에서 TABLESPACE의 의미 또한 타 DB의 TABLESPACE 역할과 동일하며 DBA가 Database Object가 저장된 파일 시스템 장소를 정의할 수 있도록 한다.

 

 

2. TABLESPACE 조회

\db

 

 

3. TABLESPACE 생성

 ■ CREATE TABLESPACE [tablespace_name];

 ■ option

  (1) OWNER [user_name]

   - 입력하여 TABLESPACE를 소유하는 USER를 지정한다. 생략할 경우 접속되있던 USER가 default 값으로 저장되며 SUPERUSER만이 TABLESPACE를 생성할 수 있지만 권한을 부여받은 다른 USER가 생성하는 것도 가능하다.

 

  (2) LOCATION 'directory'

   - TABLESPACE에 사용될 DIRECTORY를 지정한다.

 

 ■ TABLESPACE의 Directory를 설정할 때, USER가 해당 Directory에 대한 권한을 가지고 있어야 한다.

  - TABLESPACE를 위한 Directory를 생성하고 생성한 Directory에 권한을 부여해준다.

 

 ■ CREATE TABLESPACE [ts_name] OWNER [user_name] LOCATION ' [directory path] ';

 

예시) CREATE TABLESPACE POSTGRESQL_SPACE LOCATION '/db_space';

 

4. TABLESPACE 변경

 

 ■ ALTER TABLESPACE [ts_name] RENAME TO [new_tb_name];  // TABLESPACE 이름 변경

 ■ ALTER TABLESPACE [ts_name] OWNER TO [user_name];  // TABLESPACE OWNER 변경

 

5. TABLESPACE 삭제

 

 ■ DROP TABLESPACE [ts_name];

  - TABLESPACE를 삭제해도 OS 내 Directory는 삭제되지 않습니다.

 

 

반응형