토토 베이 스페이스에서PostgreSQL데이터베이스 관리자가 데이터베이스 개체를 나타내는 파일을 저장할 수있는 파일 시스템에서 위치를 정의 할 수 있도록 허용합니다. 일단 생성되면, 데이터베이스 개체를 만들 때 토토 베이 스페이스를 이름으로 언급 할 수 있습니다.
토토 베이 스페이스를 사용하여 관리자는 a의 디스크 레이아웃을 제어 할 수 있습니다.postgresql설치. 이것은 적어도 두 가지 방법으로 유용합니다. 먼저, 클러스터가 초기화 된 파티션 또는 볼륨이 공간에서 실행되고 확장 될 수없는 경우, 다른 파티션에서 토토 베이 스페이스를 생성하고 시스템을 재구성 할 수있을 때까지 사용할 수 있습니다..
두 번째, 토토 베이 스페이스를 사용하면 관리자가 데이터베이스 개체의 사용 패턴에 대한 지식을 사용하여 성능을 최적화 할 수 있습니다. 예를 들어, 매우 많이 사용되는 인덱스는 고가의 고형 상태 장치와 같이 매우 빠르고 고도로 사용 가능한 디스크에 배치 할 수 있습니다. 동시에, 거의 사용되지 않거나 성능이 중요하지 않은 보관 된 데이터를 저장하는 토토 베이은 저렴하고 느린 디스크 시스템에 저장 될 수 있습니다.
메인 PostgreSQL 데이터 디렉토리 외부에 있더라도 토토 베이 스페이스는 데이터베이스 클러스터의 필수 부분이며할 수 없음자율 데이터 파일 모음으로 취급됩니다. 이들은 기본 데이터 디렉토리에 포함 된 메타 데이터에 의존하므로 다른 데이터베이스 클러스터에 첨부하거나 개별적으로 백업 할 수 없습니다. 마찬가지로, 토토 베이 스페이스 (파일 삭제, 디스크 고장 등)가 손실되면 데이터베이스 클러스터를 읽을 수 없거나 시작할 수 없을 수 있습니다. RAM 디스크와 같은 임시 파일 시스템에 토토 베이 스페이스를 배치하면 전체 클러스터의 신뢰성이 위험합니다.
토토 베이 스페이스를 정의하려면를 사용하십시오.PostgreSQL: Tài명령, 예 ::
토토 베이 스페이스 패스트 스페이스 위치 '/ssd1/postgresql/data';
위치는 기존의 빈 디렉토리 여야합니다.PostgreSQL운영 체제 사용자. 이후 토토 베이 스페이스 내에서 생성 된 모든 객체는이 디렉토리 아래의 파일에 저장됩니다. 토토 베이 스페이스가 없거나 손실되면 클러스터가 작동하지 않을 수 있으므로 위치는 탈착식 또는 과도 스토리지에 있어서는 안됩니다.
논리 파일 시스템 내에서 개별 파일의 위치를 제어 할 수 없기 때문에 논리 파일 시스템 당 하나 이상의 토토 베이 스페이스를 만드는 데는 별다른 점이 없습니다. 하지만,PostgreSQL그러한 제한을 시행하지 않으며 실제로 시스템의 파일 시스템 경계를 직접 알지 못합니다. 그것은 당신이 사용한다고 말하는 디렉토리에 파일을 저장합니다.
토토 베이 스페이스 자체의 생성은 데이터베이스 슈퍼 사용자로 수행해야하지만 그 후에는 일반 데이터베이스 사용자가이를 사용할 수 있습니다. 그렇게하려면 그들에게 |Create
그것에 대한 특권.
토토 베이, 인덱스 및 전체 데이터베이스를 특정 토토 베이 스페이스에 할당 할 수 있습니다. 그렇게하려면을 가진 사용자Create
지정된 토토 베이 스페이스의 권한은 토토 베이 스페이스 이름을 관련 명령에 매개 변수로 전달해야합니다. 예를 들어, 다음은 토토 베이 스페이스에서 테이블을 만듭니다Space1
:
토토 베이 foo (i int) 토토 베이 스페이스 공간 1; 생성
또는 사용default_tablespace매개 변수 :
set default_tablespace = space1; 토토 베이 생성 foo (i int);
언제default_tablespace
빈 문자열 이외의 어떤 것으로 설정되어 있으며, 암시 적으로 제공토토 베이 스페이스
조항토토 베이 생성
and색인 생성
명시적인 명령이없는 명령.
a도 있습니다.temp_tablespaces매개 변수는 임시 테이블 및 인덱스의 배치를 결정하고 큰 데이터 세트를 정렬하는 것과 같은 목적으로 사용되는 임시 파일을 결정합니다. 이것은 하나만이 아닌 토토 베이 스페이스 이름의 목록 일 수 있으므로 임시 객체와 관련된 부하가 여러 토토 베이 스페이스에 퍼질 수 있습니다. 목록의 임의의 멤버는 임시 객체를 만들 때마다 선택됩니다.
데이터베이스와 관련된 토토 베이 스페이스는 해당 데이터베이스의 시스템 카탈로그를 저장하는 데 사용됩니다. 또한 데이터베이스 내에서 생성 된 테이블, 인덱스 및 임시 파일에 사용되는 기본 토토 베이 스페이스입니다.토토 베이 스페이스
조항이 제공되며 다른 선택이 지정되지 않습니다.default_tablespace
또는temp_tablespaces
(적절한 경우). 이를 위해 토토 베이 스페이스를 지정하지 않고 데이터베이스가 생성 된 경우, 복사 한 템플릿 데이터베이스와 동일한 토토 베이 스페이스를 사용합니다..
데이터베이스 클러스터가 초기화 될 때 두 개의 토토 베이 스페이스가 자동으로 작성됩니다. 그만큼pg_global
토토 베이 스페이스는 공유 시스템 카탈로그에만 사용됩니다. 그만큼pg_default
토토 베이 스페이스는의 기본 토토 베이 스페이스입니다.Template1
andTemplate0
데이터베이스 (따라서 A에 의해 재정의되지 않는 한 다른 데이터베이스의 기본 토토 베이 스페이스가됩니다.토토 베이 스페이스
조항데이터베이스 생성
).
일단 생성되면 요청하는 사용자가 충분한 권한이있는 경우 모든 데이터베이스에서 토토 베이 스페이스를 사용할 수 있습니다. 즉, 토토 베이 스페이스를 사용하는 모든 데이터베이스의 모든 객체가 제거 될 때까지 토토 베이 스페이스를 삭제할 수 없습니다.
빈 토토 베이 스페이스를 제거하려면를 사용하십시오.스포츠 토토 베트맨 : 문서명령.
기존 토토 베이 스페이스 세트를 결정하려면를 검사하십시오.토토 사이트 추천 : 문서
시스템 카탈로그, 예를 들어
SPCNAME, SPCOWNER :: RESPORE, PG_TABLESPACE_LOCATE (OID)에서 PG_TABLESPACE; 선택합니다.
어떤 토토 베이 스페이스를 사용하는 데이터베이스를 찾을 수 있습니다. 보다표 9.76. 그만큼PSQL프로그램\ db
Meta-Command는 기존 토토 베이 스페이스를 나열하는 데 유용합니다.
디렉토리$ pgdata/pg_tblspc
클러스터에 정의 된 각각의 토토 베이 스페이스를 가리키는 상징적 링크가 포함되어 있습니다. 권장되지는 않지만 이러한 링크를 재정의하여 토토 베이 스페이스 레이아웃을 직접 조정할 수 있습니다. 어떠한 상황에서도 서버가 실행중인 동안이 작업을 수행합니다.