이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 22.6. 토토 결과 스페이스버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

19.6. 범퍼카 토토스페이스

범퍼카 토토스페이스PostgreSQL데이터베이스 관리자가 파일에서 위치를 정의하도록 허용 데이터베이스 개체를 나타내는 파일을 저장할 수 있는 시스템 저장되었습니다. 범퍼카 토토스페이스가 생성되면 이름으로 참조 가능 데이터베이스 객체를 생성할 때.

관리자는 범퍼카 토토스페이스를 사용하여 디스크를 제어할 수 있습니다 a의 레이아웃포스트그레SQL설치. 이는 적어도 두 가지 면에서 유용합니다. 첫째, 만약 클러스터가 초기화된 파티션 또는 볼륨이 부족해졌습니다. 공간이 부족하고 확장할 수 없는 경우 범퍼카 토토스페이스를 생성할 수 있습니다. 다른 파티션으로 구성되어 시스템이 준비될 때까지 사용됩니다. 재구성되었습니다.

둘째, 범퍼카 토토스페이스를 통해 관리자는 다음에 대한 지식을 사용할 수 있습니다. 성능을 최적화하기 위한 데이터베이스 개체의 사용 패턴. 예를 들어, 매우 많이 사용되는 인덱스는 다음 위치에 배치될 수 있습니다. 고가의 솔리드 디스크와 같이 매우 빠르고 가용성이 높은 디스크 상태 장치. 동시에 아카이브된 데이터를 저장하는 테이블 거의 사용되지 않거나 성능에 중요하지 않은 항목을 저장할 수 있습니다. 저렴하고 느린 디스크 시스템에서.

범퍼카 토토스페이스를 정의하려면 다음을 사용하세요.범퍼카 토토스페이스 생성명령, 에 대한 예:

범퍼카 토토스페이스 fastspace 위치 생성 '/mnt/sda1/postgresql/data';

위치는 기존의 빈 디렉토리여야 합니다. 소유한 사람은 다음과 같습니다.포스트그레SQL시스템 사용자. 이후에 범퍼카 토토스페이스 내에서 생성된 모든 객체는 이 디렉토리 아래의 파일에 저장됩니다.

참고:보통 만드는 데 별 의미가 없습니다. 논리적 파일 시스템당 하나 이상의 범퍼카 토토스페이스를 사용하므로 내의 개별 파일 위치를 제어할 수 없습니다. 논리 파일 시스템. 그러나PostgreSQL그러한 것을 시행하지 않습니다 제한 사항이 있으며 실제로는 파일을 직접 인식하지 못합니다. 시스템의 시스템 경계. 단지 파일을 다음 위치에 저장합니다. 사용하도록 지시한 디렉토리입니다.

범퍼카 토토스페이스 생성 자체는 데이터베이스로 이루어져야 합니다 슈퍼유저이지만 그 이후에는 일반 데이터베이스 사용자를 허용할 수 있습니다. 그것을 활용하기 위해. 그렇게 하려면 그들에게 다음을 부여하십시오.생성권한이 있습니다.

테이블, 인덱스 및 전체 데이터베이스를 다음에 할당할 수 있습니다. 특정 범퍼카 토토스페이스. 그렇게 하려면 다음을 가진 사용자가생성주어진 범퍼카 토토스페이스에 대한 권한이 통과되어야 합니다 관련 명령에 대한 매개변수로 범퍼카 토토스페이스 이름을 지정합니다. 에 대한 예를 들어, 다음은 범퍼카 토토스페이스에 테이블을 생성합니다.공간1:

CREATE TABLE foo(i int) TABLESPACE space1;

또는 다음을 사용하세요.default_tablespace매개변수:

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

언제default_tablespace다음으로 설정됨 빈 문자열이 아닌 경우 암시적을 제공합니다.범퍼카 토토스페이스만들기 표그리고색인 생성명령 명시적인 내용이 없습니다.

데이터베이스와 연결된 범퍼카 토토스페이스는 다음을 저장하는 데 사용됩니다. 해당 데이터베이스의 시스템 카탈로그 및 임시 파일 해당 데이터베이스를 사용하는 서버 프로세스에 의해 생성됩니다. 게다가, 그것은 생성된 테이블과 인덱스에 대해 선택된 기본 범퍼카 토토스페이스입니다. 데이터베이스 내에서(없는 경우)범퍼카 토토스페이스절이 제공됩니다(명시적으로 또는 통해default_tablespace) 객체가 생성될 때. 범퍼카 토토스페이스를 지정하지 않고 데이터베이스를 생성한 경우 복사된 템플릿 데이터베이스와 동일한 범퍼카 토토스페이스를 사용합니다. 에서.

두 개의 범퍼카 토토스페이스가 자동으로 생성됩니다.initdb.pg_global범퍼카 토토스페이스는 공유 시스템 카탈로그에 사용됩니다.pg_default범퍼카 토토스페이스는 기본 범퍼카 토토스페이스입니다.템플릿1그리고템플릿0데이터베이스(따라서 재정의되지 않는 한 다른 데이터베이스의 기본 범퍼카 토토스페이스도 마찬가지입니다. 에 의해범퍼카 토토스페이스데이터베이스 생성).

한번 생성된 범퍼카 토토스페이스는 모든 데이터베이스에서 사용할 수 있습니다. 요청하는 사용자에게 충분한 권한이 있는 경우. 이는 다음을 의미합니다. 모든 개체가 모두 포함될 때까지 범퍼카 토토스페이스를 삭제할 수 없습니다. 범퍼카 토토스페이스를 사용하는 데이터베이스가 제거되었습니다.

빈 범퍼카 토토스페이스를 제거하려면 다음을 사용하십시오.드롭 범퍼카 토토스페이스명령.

기존 범퍼카 토토스페이스 세트를 확인하려면 다음을 검사하십시오.pg_tablespace시스템 카탈로그, 예

pg_tablespace에서 spcname 선택;

psql프로그램\dbmeta-command는 또한 다음을 나열하는 데 유용합니다. 기존 범퍼카 토토스페이스.

PostgreSQL광범위하게 만듭니다 구현을 단순화하기 위해 심볼릭 링크 사용 범퍼카 토토스페이스. 이는 범퍼카 토토스페이스를 사용할 수 있음을 의미합니다.지원하는 시스템의 경우 심볼릭 링크.

디렉토리$PGDATA/pg_tblspc각각의 내장되지 않은 항목을 가리키는 기호 링크가 포함되어 있습니다. 클러스터에 정의된 범퍼카 토토스페이스 권장하지는 않지만, 범퍼카 토토스페이스 레이아웃을 재정의하여 수동으로 조정할 수 있습니다. 이 링크들. 두 가지 경고: 포스트마스터가 작업 중인 동안에는 그렇게 하지 마십시오. 달리기; 포스트마스터를 다시 시작한 후 다음을 업데이트하세요.pg_tablespace새 항목을 표시하는 카탈로그 위치. (그렇지 않으면,pg_dump할 것이다 이전 범퍼카 토토스페이스 위치를 계속 표시합니다.)