이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 65.1. 데이터베이스 사설 토토 레이아웃버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

58.1. 윈 토토 파일 레이아웃

이 섹션은 윈 토토 수준의 스토리지 형식을 설명합니다. 그리고 디렉토리.

전통적으로, a에서 사용하는 구성 및 데이터 파일 윈 토토 클러스터는 클러스터 데이터 내에 함께 저장됩니다 일반적으로이라고하는 디렉토리pgdata정의). 의 일반적인 위치pgdatais/var/lib/pgsql/data. 다수의 다른 서버 인스턴스에서 관리하는 클러스터는 같은 기계.

thepgdata디렉토리에는 여러 가지가 포함되어 있습니다 과 같이 하위 디렉터 및 제어 윈 토토표 58-1. ~ 안에 이러한 필수 항목에 추가, 클러스터 구성 윈 토토postgresql.conf, pg_hba.confpg_ident.conf전통적으로 저장되어pgdata(PostgreSQL8.0 이상이 가능합니다 다른 곳에 배치하십시오).

표 58-1. 의 내용pgdata

항목 설명
pg_version 주요 버전 번호가 포함 된 윈 토토PostgreSQL
base 다이타베이스 하위 디렉토리를 포함하는 서브 디렉토리
글로벌 클러스터 전체 테이블을 포함하는 서브 디렉토리pg_database
PG_CLOG 트랜잭션 커밋 상태 데이터를 포함하는 하위 디렉토리
pg_multixact MultItransaction 상태 데이터를 포함하는 하위 디렉토리 (사용 공유 행 잠금)
pg_notify 서브 디렉토리가 포함 된 청취/알림 상태 데이터
PG_SERIAL 커밋 된 정보를 포함하는 하위 디렉토리 직렬화 가능한 거래
PG_SNAPSHOTS 내보내기 스냅 샷을 포함하는 하위 디렉토리
PG_STAT 통계에 대한 영구 윈 토토을 포함하는 하위 디렉토리 하위 시스템
PG_STAT_TMP 통계에 대한 임시 윈 토토을 포함하는 하위 디렉토리 하위 시스템
PG_SUBTRANS 서브 트랜잭션 상태 데이터를 포함하는 서브 디렉토리
PG_TBLSPC 테이블 스페이스에 대한 상징적 링크를 포함하는 하위 디렉토리
PG_TWOPHASE 준비를위한 상태 윈 토토을 포함하는 하위 디렉토리 업무
PG_XLOG WAL을 포함하는 서브 디렉토리 (앞서 로그 쓰기) 윈 토토
postmaster.opts 명령 줄 옵션을 녹음하는 윈 토토 서버가 마지막으로 시작
postmaster.pid 현재 Postmaster 프로세스 ID (PID)를 기록하는 잠금 파일, 클러스터 데이터 디렉토리 경로, Postmaster Start Timestamp, Port 숫자, Unix-Domain 소켓 디렉토리 경로 (Windows에서 비어 있음) 유효한 Listen_Address (IP 주소 또는*, 또는 TCP에서 듣지 않으면 비워짐) 및 공유 메모리 세그먼트 ID (이는 서버 종료 후 윈 토토이 없습니다)

클러스터의 각 윈 토토에 대해 내에 서브 디렉토리가 있습니다.pgdata/base, 윈 토토의 OID의 이름을 따서 명명되었습니다pg_database. 이 하위 디렉토리는 기본값입니다 윈 토토 파일의 위치; 특히 시스템 카탈로그가 저장되어 있습니다.

각 테이블과 색인은 별도의 윈 토토에 저장됩니다. 평범한 관계,이 윈 토토은 표 또는 색인의 이름을 따서 명명되었습니다Filenodepg_class.relfilenode. 그러나 일시적인 관계의 경우 윈 토토 이름은 양식입니다.tBBB_FFF, 어디BBB| 윈 토토을 만든 백엔드 및FFF는 Filenode 번호입니다. 두 경우 모두 기본 파일 (A/K/A 기본 포크) 외에도 각 테이블 및 인덱스는여유 공간지도(참조섹션 58.3)는 정보를 저장합니다 관계에서 이용 가능한 여유 공간에 대해. 여유 공간지도는입니다 Filenode 번호와 접미사와 함께 명명 된 파일에 저장_FSM. 테이블에도가시성 맵, 접미사와 함께 포크에 저장_VM, 어떤 페이지가 알려진지 추적합니다 죽은 튜플이 없습니다. 가시성 맵은에 더 설명되어 있습니다.롤 토토 : 문서 : 9.3 : 가시성 맵. 무제한 테이블 및 인덱스에는 초기화 포크로 알려진 세 번째 포크가 있습니다. 접미사와 함께 포크에 저장_init(참조사설 토토 사이트 : 문서 : 9.3 : 초기화 포크).

주의

테이블의 필레 노드가 종종 Oid와 일치하지만 이다not반드시 사례; 일부 작업,Truncate, Reindex, 클러스터그리고 일부 형태의Alter Table, 변경할 수 있습니다 OID를 보존하는 동안 필레 노드. 그 filenode를 가정하지 마십시오 테이블 OID는 동일합니다. 또한 특정 시스템 카탈로그의 경우 포함PG_CLASS자체,pg_class.relfilenode0이 포함되어 있습니다. 이 카탈로그의 실제 필레 노드 수는 다음과 같습니다 하위 수준 데이터 구조에 저장되었으며 사용하여 얻을 수 있습니다. 그만큼pg_relation_filenode ()기능.

테이블 또는 인덱스가 1GB를 초과하면 기가 바이트 크기세그먼트. 첫 번째 세그먼트의 파일 이름은 filenode와 동일합니다. 후속 세그먼트는 filenode.1, filenode.2 등입니다.이 배열 파일 크기 제한이있는 플랫폼의 문제를 피합니다. (실제로 1GB는 기본 세그먼트 크기입니다. 세그먼트 크기 구성 옵션을 사용하여 조정할 수 있습니다-with-segsize빌딩시postgresql.) 원칙적으로 여유 공간지도 및 가시성 맵 포크에는 여러 세그먼트가 필요할 수 있습니다. 이것은 실제로 일어나지 않을 것입니다.

잠재적으로 큰 항목이있는 열이있는 테이블 관련토스트테이블입니다 너무 큰 필드 값의 외부 저장에 사용 테이블 행을 적절하게 유지하십시오.pg_class.reltoastrelid테이블에서 그 링크토스트테이블. 보다섹션 58.2더 많은 것 정보.

표와 인덱스의 내용은 더 자세히 설명합니다.PostgreSQL : 문서 : 9.3 : 롤 토토 페이지 레이아웃.

테이블 스페이스는 시나리오를 더 복잡하게 만듭니다. 각 사용자 정의 테이블 스페이스에는 내부에 상징적 링크가 있습니다.pgdata/PG_TBLSPC디렉토리. 테이블 스페이스에 지정된 위치테이블 스페이스 생성명령). 이 상징적 링크입니다 테이블 스페이스의 OID의 이름을 따서 명명되었습니다. 물리적 테이블 스페이스 내부 디렉토리에 의존하는 이름의 하위 디렉토리가 있습니다.PostgreSQL예 : 서버 버전PG_9.0_201008051. (사용 이유 이 하위 디렉토리는 윈 토토의 연속적인 버전입니다. 같은 것을 사용할 수 있습니다테이블 스페이스 생성충돌이없는 위치 값) 버전 별 내에서 하위 디렉토리에는 각 데이터베이스에 대한 서브 디렉토리가 있습니다. 데이터베이스의 OID의 이름을 따서 명명 된 테이블 스페이스의 요소. 테이블 인덱스는 Filenode를 사용하여 해당 디렉토리에 저장됩니다. 이름 지정 체계. 그만큼pg_default테이블 스페이스PG_TBLSPC, 그러나 에 해당합니다.pgdata/base. 마찬가지로pg_global테이블 스페이스는 액세스하지 못합니다PG_TBLSPC하지만에 해당합니다.pgdata/global.

thePG_RELATION_FILEPATH ()함수는 전체 경로를 보여줍니다 (pgdata) 어떤 관계의. 그것은 종종 a로 유용합니다 위의 많은 규칙을 기억하기위한 대체. 그러나 계속하십시오 이 기능은 단지 첫 번째 세그먼트의 이름을줍니다. 관계의 주요 포크 - 세그먼트를 추가해야 할 수도 있습니다. 번호 및/또는_FSM, _vm, 또는_init모두를 찾으려면 관계와 관련된 윈 토토.

임시 윈 토토 (더 많은 데이터 정렬과 같은 작업 용. 메모리에 들어갈 수 있음) 내에서 생성됩니다pgdata/base/pgsql_tmp, 또는 A 내에서PGSQL_TMPa 테이블 스페이스 디렉토리 이외의 테이블 스페이스 인 경우pg_default가 그들에게 지정되어 있습니다. a의 이름 임시 윈 토토에는 양식이 있습니다.PGSQL_TMPPPP.NNN, 여기서PPP소유의 백엔드의 PID 및NNN다른 구별 그 백엔드의 임시 윈 토토.