22.6. 배트맨 토토 스페이스

배트맨 토토 스페이스에서postgresql데이터베이스 관리자가 데이터베이스 개체를 나타내는 파일을 저장할 수있는 파일 시스템에서 위치를 정의 할 수 있도록 허용합니다. 일단 생성되면, 데이터베이스 개체를 만들 때 배트맨 토토 스페이스를 이름으로 언급 할 수 있습니다.

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

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

경고

메인 PostgreSQL 데이터 디렉토리 외부에 있더라도 배트맨 토토 스페이스는 데이터베이스 클러스터의 필수 부분이며할 수 없음자율 데이터 파일 모음으로 취급됩니다. 이들은 기본 데이터 디렉토리에 포함 된 메타 데이터에 의존하므로 다른 데이터베이스 클러스터에 첨부하거나 개별적으로 백업 할 수 없습니다. 마찬가지로, 배트맨 토토 스페이스 (파일 삭제, 디스크 고장 등)를 잃어버린 경우 데이터베이스 클러스터를 읽을 수 없거나 시작할 수 없습니다. RAM 디스크와 같은 임시 파일 시스템에 배트맨 토토 스페이스를 배치하면 전체 클러스터의 신뢰성이 위험합니다.

배트맨 토토 스페이스를 정의하려면를 사용하십시오.배트맨 토토 스페이스 생성명령, 예 ::

배트맨 토토 스페이스 패스트 스페이스 위치 '/ssd1/postgresql/data';

위치는 기존의 빈 디렉토리 여야합니다.PostgreSQL운영 체제 사용자. 이후 배트맨 토토 스페이스 내에서 생성 된 모든 객체는이 디렉토리 아래의 파일에 저장됩니다. 배트맨 토토 스페이스가 없거나 손실되면 클러스터가 작동하지 않을 수 있으므로 위치는 탈착식 또는 과도 스토리지에 있어서는 안됩니다.

note

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

배트맨 토토 스페이스 자체의 생성은 데이터베이스 슈퍼 사용자로 수행해야하지만 그 후에는 일반 데이터베이스 사용자가이를 사용할 수 있습니다. 그렇게하려면 그들에게 |Create그것에 대한 특권.

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

테이블 foo (i int) 배트맨 토토 스페이스 공간 1; 생성 테이블 생성

또는 사용default_tablespace매개 변수 :

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

언제default_tablespace빈 문자열 이외의 어떤 것으로 설정되어 있으며, 암시 적으로 제공배트맨 토토 스페이스조항테이블 생성색인 생성명시적인 명령이없는 명령.

a도 있습니다.temp_tablespaces매개 변수는 임시 테이블 및 인덱스의 배치를 결정하고 대형 데이터 세트 정렬과 같은 목적으로 사용되는 임시 파일을 결정합니다. 이것은 하나만이 아닌 배트맨 토토 스페이스 이름의 목록 일 수 있으므로 임시 객체와 관련된 부하가 여러 배트맨 토토 스페이스에 퍼질 수 있습니다. 목록의 임의의 멤버는 임시 객체를 만들 때마다 선택됩니다.

데이터베이스와 관련된 배트맨 토토 스페이스는 해당 데이터베이스의 시스템 카탈로그를 저장하는 데 사용됩니다. 또한 데이터베이스 내에서 생성 된 테이블, 인덱스 및 임시 파일에 사용되는 기본 배트맨 토토 스페이스입니다.배트맨 토토 스페이스절이 제공되며 다른 선택은에 명시되어 있지 않습니다.default_tablespace또는temp_tablespaces(적절한 경우). 이를 위해 테이블 ​​스페이스를 지정하지 않고 데이터베이스가 생성 된 경우, 복사 한 템플릿 데이터베이스와 동일한 배트맨 토토 스페이스를 사용합니다.

데이터베이스 클러스터가 초기화 될 때 두 개의 배트맨 토토 스페이스가 자동으로 작성됩니다. 그만큼pg_global배트맨 토토 스페이스는 공유 시스템 카탈로그에 사용됩니다. 그만큼pg_default배트맨 토토 스페이스는의 기본 배트맨 토토 스페이스입니다.template1andTemplate0데이터베이스 (따라서 A에 의해 재정의되지 않는 한 다른 데이터베이스의 기본 배트맨 토토 스페이스가됩니다.배트맨 토토 스페이스조항데이터베이스 생성).

일단 생성되면 요청하는 사용자가 충분한 권한이있는 경우 모든 데이터베이스에서 배트맨 토토 스페이스를 사용할 수 있습니다. 즉, 배트맨 토토 스페이스를 사용하는 모든 데이터베이스의 모든 객체가 제거 될 때까지 배트맨 토토 스페이스를 삭제할 수 없습니다.

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

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

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

thePSQL프로그램\ dbMeta-Command는 기존 배트맨 토토 스페이스를 나열하는 데 유용합니다.

PostgreSQL상징적 링크를 사용하여 배트맨 토토 스페이스의 구현을 단순화합니다. 이것은 배트맨 토토 스페이스를 사용할 수 있음을 의미합니다전용기호 링크를 지원하는 시스템에서.

디렉토리$ pgdata/pg_tblspc클러스터에 정의 된 각각의 배트맨 토토 스페이스를 가리키는 상징적 링크가 포함되어 있습니다. 권장되지는 않지만 이러한 링크를 재정의하여 배트맨 토토 스페이스 레이아웃을 직접 조정할 수 있습니다. 어떤 상황에서도 서버가 실행중인 동안이 작업을 수행합니다. Postgresql 9.1 이상에서를 업데이트해야합니다.PG_TABLESPACE새 위치가있는 카탈로그. (그렇지 않으면pg_dump이전 배트맨 토토 스페이스 위치를 계속 출력합니다.)

정정 제출

문서에 올바른 것이 없다면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면