
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
반응형
'PostgreSQL > install' 카테고리의 다른 글
7. PostgreSQL RHEL 설치: 데이터 베이스 생성 (0) | 2025.01.20 |
---|---|
5. PostgreSQL RHEL 설치: 테이블 스페이스 용 디스크 마운트 (0) | 2025.01.08 |
4. PostgreSQL RHEL 설치: 사용자 생성 및 패스워드 설정 (0) | 2025.01.08 |
3. PostgreSQL RHEL 설치: 데이터베이스 접속 허용 및 방화벽 설정 (0) | 2025.01.07 |
2. PostgreSQL RHEL 설치: OS 사용자 계정 전환 후 CLI 접속 (1) | 2025.01.07 |