일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- pg_dumpall
- pgcrypto
- sql문 짤릴 때
- PostgreSQL Admin
- PostgreSQL 테이블스페이스 관리
- PostgreSQL Install
- PostgreSQL 테이블스페이스 생성 삭제
- PostgreSQL Backup and Recovery
- oracle
- oracle error
- dblink 삭제
- PostgreSQL 외부 접속 방법
- table lock 조치 방법
- Database 생성 삭제 조회 변경
- pg_hba.conf
- sql문 전체 출력 방법
- Linux
- psql 복구
- PostgreSQL Parameter 설정 방법
- PostgreSQL 기동 정지
- 다른계정에서 dblink 삭제방법
- pg_basebackup
- db upgrade
- PostgreSQL Database 관리
- PostgreSQL Parameter
- multitenant
- PostgreSQL 스키마 관리
- 아카이브로그 삭제
- 19c tde
- PostgreSQL 아키텍처
- Today
- Total
인성장
[PostgreSQL] 테이블스페이스 관리(생성, 삭제 등) 본문
테이블스페이스 관리
PostgreSQL의 테이블스페이스는 데이터베이스 관리자가 데이터베이스 객체를 나타내는 파일을 저장할 수 있는 파일 시스템의 위치를 정의할 수 있게 해줍니다. 테이블스페이스를 사용함으로써 관리자는 디스크 레이아웃을 제어할 수 있고, 디스크 용량을 더욱 용이하게 관리할 수 있도록 도와줍니다.
테이블스페이스 생성 시 주의할 점은 테이블스페이스를 생성하기 전 테이블스페이스을 위치시킬 디렉토리 경로는 운영체제 상에서 미리 생성되어 있어야 하고, 빈 디렉토리여야 합니다. 그리고 OS상의 postgres 계정 소유여야 합니다.
테이블스페이스 생성
CREATE TABLESPACE [tablespace_name] OWNER [username] LOCATION '/path';
# mkdir /pgdata
# chown -R postgres:dba /pgdata
# su - postgres
$ psql
postgres=# CREATE TABLESPACE pgtbl OWNER postgres LOCATION ‘/pgdata’;
테이블스페이스 삭제 방법
DROP TABLESPACE pgdata;
* 테이블스페이스 삭제는 현재 접속한 데이터베이스가 해당 테이블스페이스를 사용하고 있거나 해당 테이블스페이스를 사용하고 있는 객체 하나라도 있으면 삭제가 되지 않습니다.
데이터베이스 Default Tablespace 변경
ALTER DATABASE [database_name] SET DEFAULT_TABLESPACE=[new_tablespace_name];
ALTER DATABASE postgres SET DEFAULT_TABLESPACE=pgdata;
테이블스페이스 Owner 변경
ALTER TABLESPACE [tablespace_name] OWNER TO [username];
ALTER TABLESPACE pgdata OWNER TO postgres;
테이블스페이스 디렉토리 경로 확인
SELECT spcname,pg_tablespace_location(oid) FROM pg_tablespace;
* 테이블스페이스 별 OS 상 디렉토리 경로를 찾고 싶을 때 유용합니다.
특정 테이블 테이블스페이스 이동
ALTER TABLE [table_name] SET TABLESPACE [tablespace_name];
ALTER TABLE testtable SET TABLESPACE pgdata;
테이블스페이스 별 총 사용량 측정
SELECT spcname, pg_size_pretty(pg_tablespace_size(spcname)) FROM pg_tablespace;