이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 22.6. 토토 결과 스페이스버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

19.6. 사설 토토 스페이스

사설 토토 스페이스에서postgresql데이터베이스 관리자가 파일의 위치를 ​​정의하도록 허용합니다 데이터베이스 개체를 나타내는 파일이 될 수있는 시스템 저장. 일단 생성되면 사설 토토 스페이스는 이름으로 참조 할 수 있습니다. 데이터베이스 개체를 만들 때.

사설 토토 스페이스를 사용하여 관리자는 디스크를 제어 할 수 있습니다 A의 레이아웃PostgreSQL설치. 이것은 적어도 두 가지 방법으로 유용합니다. 먼저 클러스터가 초기화 된 파티션 또는 볼륨이 부족합니다. 공간을 확장 할 수없고, 사설 토토 스페이스는 다른 파티션 및 시스템이 될 때까지 사용됩니다 재구성.

두 번째, 사설 토토 스페이스를 사용하면 관리자가 지식을 사용할 수 있습니다 데이터베이스 개체의 사용 패턴은 성능을 최적화합니다. 예를 들어, 매우 많이 사용되는 인덱스는 비싼 고체와 같이 매우 빠르고 고도로 사용 가능한 디스크 상태 장치. 동시에 보관 된 데이터를 저장하는 테이블 거의 사용되지 않거나 성능이 중요하지 않은 것은 저장 될 수 있습니다. 저렴하고 느린 디스크 시스템에서.

사설 토토 스페이스를 정의하려면 사용사설 토토 스페이스 생성예:

사설 토토 스페이스 빠른 공간 만들기 위치 '/mnt/sda1/postgresql/data';

위치는 기존의 빈 디렉토리 여야합니다. 소유자PostgreSQL시스템 사용자. 이후 사설 토토 스페이스 내에서 생성 된 모든 객체 이 디렉토리 아래에 파일에 저장됩니다.

참고 :일반적으로 제작에는 많은 점이 없습니다 논리 파일 시스템 당 하나 이상의 사설 토토 스페이스. a 내에서 개별 파일의 위치를 ​​제어 할 수 없습니다 논리 파일 시스템. 하지만,PostgreSQL그러한 어떤 것도 시행하지 않습니다 제한 사항, 실제로 파일을 직접 알지 못합니다. 시스템의 시스템 경계. 파일을 저장합니다 당신이 사용한다고 말하는 디렉토리.

사설 토토 스페이스 자체의 생성은 데이터베이스로 수행해야합니다. SuperUser이지만 그 후에는 일반 데이터베이스 사용자를 허용 할 수 있습니다. 그것을 사용하기 위해. 그렇게하려면 그들에게 |생성그것에 대한 특권.

사설 토토, 인덱스 및 전체 데이터베이스를 할당 할 수 있습니다 특정 사설 토토 스페이스. 그렇게하려면을 가진 사용자생성지정된 사설 토토 스페이스의 권한은 통과해야합니다 사설 토토 스페이스 이름은 관련 명령의 매개 변수입니다. 을 위한 예, 다음은 사설 토토 스페이스에 테이블을 만듭니다Space1:

테이블 foo (i int) 사설 토토 스페이스 공간 1; 생성

또는 사용default_tablespace매개 변수 :

set default_tablespace = space1;
테이블 생성 foo (i int);

언제default_tablespace빈 줄 외에는 무엇이든 암시 적으로 제공사설 토토 스페이스조항생성 테이블색인 생성명령 명백한 것이 없습니다.

데이터베이스와 관련된 사설 토토 스페이스는 해당 데이터베이스의 시스템 카탈로그 및 임시 파일 해당 데이터베이스를 사용하여 서버 프로세스에 의해 생성됩니다. 게다가 생성 된 테이블 및 인덱스에 대해 선택한 기본 사설 토토 스페이스입니까? 데이터베이스 내에서사설 토토 스페이스조항이 제공됩니다 (명시 적으로 또는 viadefault_tablespace) 객체가 생성 될 때. 사설 토토 스페이스를 지정하지 않고 데이터베이스가 생성 된 경우 복사 된 템플릿 데이터베이스와 동일한 사설 토토 스페이스를 사용합니다. 에서.

두 사설 토토 스페이스가 자동으로initdb. 그만큼pg_global사설 토토 스페이스는 공유 시스템 카탈로그에 사용됩니다. 그만큼pg_default사설 토토 스페이스는 기본 사설 토토 스페이스입니다 그만큼template1andTemplate0데이터베이스 (따라서 재정의하지 않는 한 다른 데이터베이스의 기본 사설 토토 스페이스 A사설 토토 스페이스조항데이터베이스 생성).

일단 생성되면 모든 데이터베이스에서 사설 토토 스페이스를 사용할 수 있습니다. 요청하는 사용자에게 충분한 권한이있는 경우. 이것은 의미합니다 모든 객체가 모든 물체가 될 때까지 사설 토토 스페이스를 삭제할 수 없습니다. 사설 토토 스페이스를 사용한 데이터베이스가 제거되었습니다.

빈 사설 토토 스페이스를 제거하려면를 사용하십시오.드롭 사설 토토 스페이스명령.

기존 사설 토토 스페이스 세트를 결정하려면를 검사하십시오.pg_tablespace시스템 카탈로그 예

pg_tablespace에서 spcname을 선택하십시오;

thePSQL프로그램\ dbMeta-Command는 또한 목록에 유용합니다 기존 사설 토토 스페이스.

PostgreSQL광범위하게 만듭니다 구현을 단순화하기 위해 기호 링크 사용 사설 토토 스페이스. 이것은 사설 토토 스페이스를 사용할 수 있음을 의미합니다전용지원하는 시스템 상징적 링크.

디렉토리$ pgdata/pg_tblspc지정되지 않은 각각을 가리키는 상징적 링크가 포함되어 있습니다. 클러스터에 정의 된 사설 토토 스페이스. 권장하지는 않지만 재정의하여 사설 토토 스페이스 레이아웃을 직접 조정할 수 있습니다. 이 링크. 두 가지 경고 : 서버가있는 동안 그렇게하지 마십시오. 달리기; 서버를 다시 시작한 후 업데이트PG_TABLESPACE새를 보여주는 카탈로그 위치. (그렇지 않으면pg_dump의지 오래된 사설 토토 스페이스 위치를 계속 보여줍니다.)