2014-12-20 3 views
1

내 컴퓨터에 약 10 개의 postgresql 데이터베이스가 있습니다. 일부는 거대하고 일부는 작습니다. 작은 디스크를 그대로 둔 채로 거대한 디스크를 새로운 디스크로 옮기고 싶습니다. 이것이 가능한가? 그렇다면 어떻게해야합니까? 내가 찾은 모든 방법은 전체 data 디렉토리를 새 위치로 이동하는 방법이지만, 이는 모두 데이터베이스로 이동하기 때문에 일부만 이동하려고합니다.일부 postgresql 데이터베이스를 다른 디렉토리로 이동

+0

보조 노트 : 여기 당신은 그것을 할 수있는 방법이야'() pg_database_size ('DB_NAME') pg_size_pretty를 선택합니다'의 디스크 크기를 찾는 데 도움이 db 그리고 PostgreSQL이 설치된 OS를 언급하십시오 –

답변

6

테이블 스페이스를 사용하여 이동할 수 있습니다. 그런 다음

CREATE TABLESPACE dbspace LOCATION '/data/dbs';

,

ALTER DATABASE dbname SET TABLESPACE dbspace;

+1

테이블과 인덱스를 변경하여 새로운 테이블 스페이스로 옮기는 것을 잊지 마십시오. ALTER DATABASE는 새 테이블과 인덱스의 기본 위치 만 변경하며 이전 테이블과 인덱스는 이동하지 않습니다. –

+0

@FrankHeikens 반대로,'ALTER DATABASE dbname SET TABLESPACE dbspace'는'postgresql 9.1'에서 사용할 때 기존 테이블과 인덱스를 옮겼습니다. [ "이 명령은 데이터베이스의 이전 기본 테이블 스페이스에있는 테이블이나 인덱스를 새로운 테이블 스페이스로 물리적으로 이동합니다."] (http://www.postgresql.org/docs/9.1/static/sql-alterdatabase.html) –

관련 문제