PostgreSQL/install

6. PostgreSQL RHEL 설치: 테이블 스페이스 생성 및 추가 변경 방법

최 재호 2025. 1. 20. 09:40

 

0. 사전 접속

# su 접속
su -

# postgres 접속
sudo -i -u postgres

# psql cli 접속
psql

 

1. 테이블 스페이스 생성 (따로 생성하지 않아도 됨.)

# 테이블 스페이스 생성 
# (해당 폴더 생성 및 소유자, 권한 설정이 완료 되어 있어야 함.)
CREATE TABLESPACE ts_jhdb LOCATION '/mnt/pgsql/jhdb';

 

 2. 이미 생성된 데이터베이스의 테이블스페이스 경로 변경

PostgreSQL에서는 직접 데이터베이스의 테이블스페이스를 변경할 수 없지만, 다음과 같은 방법으로 우회할 수 있습니다.

(1) 새로운 테이블스페이스 생성

먼저 새로운 테이블스페이스를 생성합니다.

CREATE TABLESPACE new_tablespace LOCATION '/new/path/to/tablespace';

(2) 데이터베이스의 모든 객체를 새로운 테이블스페이스로 이동

데이터베이스의 테이블, 인덱스 등 객체를 새 테이블스페이스로 이동하려면 ALTER 명령을 사용합니다.

ALTER TABLE my_table SET TABLESPACE new_tablespace;
ALTER INDEX my_index SET TABLESPACE new_tablespace;

모든 테이블과 인덱스를 이동하려면 반복적으로 실행해야 합니다.

(3) 데이터베이스 자체 테이블스페이스 변경 (우회 방법)

PostgreSQL은 데이터베이스의 기본 테이블스페이스를 변경할 수 없으므로, 다음과 같은 절차로 데이터베이스를 복사하여 테이블스페이스를 변경합니다

 

1. 데이터베이스 덤프 생성

pg_dump -Fc my_database > my_database.dump
 

 

2. 기존 데이터베이스 삭제:

DROP DATABASE my_database;
 
3. 새로운 테이블스페이스를 사용하여 데이터베이스 생성
CREATE DATABASE my_database TABLESPACE new_tablespace;
 
4.덤프 복원:
pg_restore -d my_database my_database.dump

이 절차를 통해 데이터베이스의 기본 테이블스페이스를 변경할 수 있습니다.


주의사항

  • 새로운 테이블스페이스 경로는 PostgreSQL 사용자에게 충분한 권한이 있어야 합니다.
  • 데이터베이스를 삭제 및 재생성할 경우 기존 연결을 끊어야 하며, 작업 전 데이터 백업을 권장합니다.
 
 
728x90
반응형