티스토리 뷰

PostgreSQL TABLESPACE

TABLESPACE 는 데이터베이스 객체가 파일 시스템상에 저장되는 물리적인 공간을 의미한다.

ORACLE 이나 PostgreSQL 에서만 사용되는 용어이다.
※ SQL-Server, MySQL, Sybase 에서는 사용하지 않는 생소한(?) 용어다.

테이블스페이스를 생성하면 데이터베이스 생성 시 별도의 LOCATION 을 지정할 수 있다.

테이블스페이스를 이용하여 데이터베이스의 목적에 따라 저장소를 다르게 사용하는 운영이 가능해 지며,
장애 대응 및 복구 등의 용도로도 활용이 가능하다.

TABLESPACE 생성과 DATABASE 생성 관련 간단한 예제를 통해 확인해 보도록 하겠다.


  • TABLESPACE 에서 사용할 LOCATION 에 해당하는 디렉토리가 존재해야 하며 디렉토리에 대한 ownership 이 있어야 한다.
-- 존재하지 않는 디렉토리일 경우 에러발생
CREATE TABLESPACE tbs1
LOCATION 'D:\tablespace\tbs_what?';

********** Error **********
ERROR: directory "D:/tablespace/tbs_what?" does not exist
SQL state: 58P01
  • TABLESPACE 를 생성
CREATE TABLESPACE tbs1
LOCATION 'D:\tablespace\tbs1';


Synopsis :
CREATE TABLESPACE tablespace_name
    [ OWNER { new_owner | CURRENT_USER | SESSION_USER } ]
    LOCATION ’directory’
    [ WITH ( tablespace_option = value [, ... ] ) ]
  • DATABASE 생성
CREATE DATABASE mydb
  WITH TABLESPACE = tbs1;

Synopsis :
CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
        [ TEMPLATE [=] template ]
        [ ENCODING [=] encoding ]
        [ LC_COLLATE [=] lc_collate ]
        [ LC_CTYPE [=] lc_ctype ]
        [ TABLESPACE [=] tablespace_name ]
        [ ALLOW_CONNECTIONS [=] allowconn ]
        [ CONNECTION LIMIT [=] connlimit ] ]
        [ IS_TEMPLATE [=] istemplate ]
  • Sybase 의 경우 DISK INIT 명령어로 Device 를 생성하고 CREATE DATABASE 를 실행한다.
DISK INIT NAME='mydisk_dat'
physname='/dev/mydisk_dat'
size='300M'
go

DISK INIT NAME='mydisk_log'
physname='/dev/mydisk_log'
size='30M'
go

CREATE DATABASE pubs
ON mydisk_dat = 300     
LOG ON mydisk_log = 30
GO
  • SQL-SERVER 는 CREATE DATABASE 구문에 ON / LOG ON 옵션에서 DISK 에 대한 정보를 기재한다.
CREATE DATABASE Sales  
ON   
( NAME = Sales_dat,  
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\saledat.mdf',  
    SIZE = 10,  
    MAXSIZE = 50,  
    FILEGROWTH = 5 )  
LOG ON  
( NAME = Sales_log,  
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\salelog.ldf',  
    SIZE = 5MB,  
    MAXSIZE = 25MB,  
    FILEGROWTH = 5MB ) ;

출처 : https://msdn.microsoft.com/ko-kr/library/ms176061.aspx

'RDBMS > PostgreSQL' 카테고리의 다른 글

PostgreSQL) Sequence 생성, 활용, 초기화  (0) 2016.08.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함