Postgresql 9.1.24 문서화 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.1 : 스포츠 토토 사이트 물리적 스토리지 | up | 55 장. 데이터베이스 물리적 스토리지 | 스포츠 토토 : 문서 : 9.1 : 토스트 |
이 섹션은 수준의 스토리지 형식을 설명합니다. 롤 토토 및 디렉토리.
데이터베이스 클러스터에 필요한 모든 데이터는 내에 저장됩니다. 클러스터의 데이터 디렉토리는 일반적으로라고합니다.pgdata(환경 변수의 이름 다음 그것은 그것을 정의하는 데 사용될 수 있습니다). 의 일반적인 위치pgdatais/var/lib/pgsql/data. 여러 클러스터, 관리 다른 서버 인스턴스에 의해 동일한 컴퓨터에 존재할 수 있습니다.
pgdata디렉토리에는 여러 가지가 포함되어 있습니다 과 같이 하위 디렉터 및 제어 롤 토토표 55-1. 이러한 필수 항목 외에도 클러스터 구성 롤 토토postgresql.conf, pg_hba.conf및pg_ident.conf전통적으로 저장되어pgdata(postgresql8.0 이상이 가능합니다 다른 곳에 유지하십시오).
표 55-1. 의 내용pgdata
항목 | 설명 |
---|---|
pg_version | 주요 버전 번호가 포함 된 롤 토토postgresql |
base | 디테이비 바이스를 포함하는 서브 디렉토리 하위 디렉터 |
글로벌 | 클러스터 전체 테이블을 포함하는 서브 디렉토리PG_DATABASE |
PG_CLOG | 트랜잭션 커밋 상태를 포함하는 하위 디렉토리 데이터 |
pg_multixact | multitransaction 상태 데이터를 포함하는 서브 디렉토리 (공유 행 잠금에 사용) |
pg_notify | 하위 디렉토리가 포함 된 상태를 포함합니다 데이터 |
PG_SERIAL | 커밋 된 정보를 포함하는 하위 디렉토리 직렬화 가능한 거래 |
PG_STAT_TMP | 임시 롤 토토을 포함하는 하위 디렉토리 통계 서브 시스템 |
PG_SUBTRANS | 서브 트랜잭션 상태를 포함하는 서브 디렉토리 데이터 |
PG_TBLSPC | 상징적 링크를 포함하는 하위 디렉토리 테이블 스페이스 |
PG_TWOPHASE | 준비를위한 상태 롤 토토을 포함하는 서브 디렉토리 업무 |
PG_XLOG | WAL을 포함하는 서브 디렉토리 (앞서 로그 쓰기) 롤 토토 |
postmaster.opts | 명령 줄 옵션을 서버를 녹화하는 롤 토토 마지막으로 시작되었습니다 |
postmaster.pid | 현재 Postmaster 프로세스를 기록하는 잠금 파일 ID (PID), 클러스터 데이터 디렉토리 경로, 우체국 마스터 시작 타임 스탬프, 포트 번호, Unix-Domain 소켓 디렉토리 경로 (Windows에서 비어 있음), 첫 번째 유효한 Listen_Address (ip 주소 또는*또는 그렇지 않은 경우 비어 있습니다 TCP에서 듣기) 및 공유 메모리 세그먼트 ID (이 서버 종료 후 롤 토토이 없습니다) |
클러스터의 각 데이터베이스마다 하위 디렉토리가 있습니다. 이내에pgdata/base, 데이터베이스의 OID의 이름을 딴pg_database. 이 하위 디렉토리는 다음과 같습니다 데이터베이스 파일의 기본 위치; 특히, 그것 시스템 카탈로그가 저장되어 있습니다.
각 테이블과 색인은 별도의 롤 토토에 저장됩니다. 을 위한 평범한 관계,이 롤 토토은 테이블의 이름을 따서 명명되거나 인덱스filenode숫자 에서 발견PG_CLASS.relfilenode. 그러나 일시적인 관계의 경우 롤 토토 이름은 양식입니다.tBBB_FFF, 여기서BBB백엔드의 백엔드 ID입니다 롤 토토을 생성하고FFFis 필레 노드 번호. 두 경우 모두 기본 파일 외에 (a/k/a 메인 포크), 각 테이블과 색인에는여유 공간지도(참조섹션 55.3)는 정보를 저장합니다 관계에서 이용 가능한 여유 공간에 대해. 여유 공간지도는입니다 Filenode 번호와 접미사와 함께 명명 된 파일에 저장_FSM. 테이블에도가시성 맵, 접미사와 함께 포크에 저장_vm, 어떤 페이지가 알려진지 추적합니다 죽은 튜플이 없습니다. 가시성 맵은에 더 설명되어 있습니다.토토 핫 : 문서 : 9.1 : 가시성 맵. 무제한 테이블 및 인덱스에는 초기화 포크로 알려진 세 번째 포크가 있습니다. 접미사와 함께 포크에 저장_init(참조배트맨 토토 : 문서 : 9.1 : 초기화 포크).
주의 |
테이블의 필레 노드는 종종 일치합니다
OID, 이건아님반드시 사건;
일부 작업,Truncate,
Reindex, 클러스터그리고 일부 형태의Alter Table, Filenode를 변경할 수 있습니다
OID 보존. 그 filenode를 가정하지 마십시오
표 OID는 동일합니다. 또한 특정 시스템 카탈로그의 경우
포함pg_class자체,pg_class.relfilenode0이 포함되어 있습니다. 실제
이 카탈로그의 필레 노드 수는 a에 저장됩니다
하위 수준 데이터 구조,를 사용하여 얻을 수 있습니다. |
테이블 또는 인덱스가 1GB를 초과하면 기가 바이트 크기세그먼트. 첫 번째 세그먼트의 파일 이름은 filenode와 동일합니다. 후속 세그먼트는 filenode.1, filenode.2 등입니다.이 배열 파일 크기 제한이있는 플랫폼의 문제를 피합니다. (실제로 1GB는 기본 세그먼트 크기 일뿐입니다. 세그먼트 구성 옵션을 사용하여 크기를 조정할 수 있습니다-with-segsize빌딩시PostgreSQL.) 원칙적으로 여유 공간지도 가시성 맵 포크도 여러 세그먼트가 필요할 수 있습니다. 이것은 실제로 일어나지 않을 것입니다.
잠재적으로 큰 항목이있는 열이있는 테이블 관련토스트테이블입니다 너무 큰 필드 값의 외부 저장에 사용 테이블 행을 적절하게 유지하려면pg_class.reltoastrelid테이블에서 그 링크토스트테이블. 보다섹션 55.2더 많은 정보.
표와 인덱스의 내용은 더 자세히 설명합니다PostgreSQL : 문서 : 9.1 : 데이터베이스 무지개 토토 레이아웃.
테이블 스페이스는 시나리오를 더 복잡하게 만듭니다. 각 사용자 정의 테이블 스페이스에는 내부에 상징적 링크가 있습니다.pgdata/PG_TBLSPC디렉토리 (즉, 테이블 스페이스에 지정된 위치테이블 스페이스 생성명령). 이 상징적 링크입니다 테이블 스페이스의 OID의 이름을 따서 명명되었습니다. 물리적 테이블 스페이스 내부 디렉토리에 의존하는 이름의 하위 디렉토리가 있습니다.PostgreSQL서버 버전 처럼PG_9.0_201008051. (이유 이 하위 디렉토리를 사용하면 연속적인 버전이 데이터베이스는 동일하게 사용할 수 있습니다생성 테이블 스페이스충돌이없는 위치 값) 버전 별 하위 디렉토리에는 각각에 대한 서브 디렉토리가 있습니다 테이블 스페이스에 요소가있는 데이터베이스는 데이터베이스의 OID. 테이블과 인덱스는 그 안에 저장됩니다 필레 노드 명명 체계를 사용하는 디렉토리. 그만큼pg_default테이블 스페이스는 액세스하지 않습니다PG_TBLSPC하지만에 해당합니다.pgdata/base. 마찬가지로pg_global테이블 스페이스는입니다 접근하지 않음PG_TBLSPC그러나 에 해당합니다.pgdata/global.
thePG_RELATION_FILEPATH ()
함수는 전체 경로를 보여줍니다 (pgdata20114_20378_FSM, _VM또는_init모두를 찾으려면
관계와 관련된 롤 토토.
임시 롤 토토 (더 많은 데이터 정렬과 같은 작업의 경우 메모리에 들어갈 수 있음) 내에서 생성됩니다pgdata/base/pgsql_tmp, 또는 내에서PGSQL_TMPa 테이블 스페이스 디렉토리 이외의 테이블 스페이스 인 경우pg_default가 그들에게 지정되어 있습니다. a의 이름 임시 롤 토토에는 양식이 있습니다.PGSQL_TMPPPP.NNN, 어디PPP의 PID입니다 백엔드 소유 및NNN해당 백엔드의 다른 임시 롤 토토을 구별합니다.