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

55.1. 데이터베이스 롤 토토 레이아웃

이 섹션에서는 다음 수준의 저장 형식을 설명합니다. 파일 및 디렉터리.

데이터베이스 클러스터에 필요한 모든 데이터는 데이터베이스 클러스터에 저장됩니다. 일반적으로 다음과 같이 참조되는 클러스터의 데이터 디렉터리입니다.PGDATA(환경 변수 이름 뒤) 정의하는 데 사용할 수 있습니다.) 의 공통 위치PGDATAis/var/lib/pgsql/data. 여러 클러스터, 관리됨 서로 다른 서버 인스턴스로 동일한 시스템에 존재할 수 있습니다.

PGDATA디렉토리에는 여러 개가 포함되어 있습니다. 하위 디렉터리 및 제어 롤 토토(그림 참조)표 55-1. 이러한 필수 항목 외에도 클러스터 구성 롤 토토postgresql.conf, pg_hba.confpg_ident.conf전통적으로 다음 위치에 저장됩니다.PGDATA(비록포스트그레SQL8.0 이상에서는 다음이 가능합니다. 다른 곳에 보관하세요).

표 55-1. 의 내용PGDATA

항목 설명
PG_VERSION 다음의 주요 버전 번호가 포함된 파일PostgreSQL
베이스 데이터베이스별 하위 디렉토리 하위 디렉터리
글로벌 다음과 같은 클러스터 전체 테이블을 포함하는 하위 디렉토리pg_database
pg_clog 트랜잭션 커밋 상태를 포함하는 하위 디렉토리 데이터
pg_multixact 다중 트랜잭션 상태 데이터가 포함된 하위 디렉토리 (공유 행 잠금에 사용됨)
pg_notify LISTEN/NOTIFY 상태를 포함하는 하위 디렉토리 데이터
pg_serial 커밋에 대한 정보가 포함된 하위 디렉토리 직렬화 가능한 트랜잭션
pg_stat_tmp 임시 롤 토토이 포함된 하위 디렉토리 통계 하위 시스템
pg_subtrans 하위 거래 상태를 포함하는 하위 디렉토리 데이터
pg_tblspc 다음에 대한 기호 링크가 포함된 하위 디렉토리 테이블스페이스
pg_twophase 준비된 상태 롤 토토을 포함하는 하위 디렉토리 거래
pg_xlog WAL(미리 로그 쓰기)을 포함하는 하위 디렉토리 롤 토토
postmaster.opts 서버의 명령줄 옵션을 기록하는 롤 토토 마지막으로 시작되었습니다.
postmaster.pid 현재 포스트마스터 프로세스를 기록하는 잠금 파일 ID(PID), 클러스터 데이터 디렉터리 경로, 포스트마스터 시작 타임스탬프, 포트 번호, Unix 도메인 소켓 디렉터리 경로 (Windows에서는 비어 있음), 첫 번째 유효한 Listen_address(IP 주소 또는*, 그렇지 않은 경우 비어 있음 TCP 수신) 및 공유 메모리 세그먼트 ID(이것은 서버 종료 후 롤 토토이 존재하지 않습니다)

클러스터의 각 데이터베이스에는 하위 디렉토리가 있습니다 이내PGDATA/베이스, 데이터베이스의 OID를 따서 명명됨pg_database. 이 하위 디렉터리는 데이터베이스 파일의 기본 위치. 특히 그 시스템 카탈로그가 여기에 저장됩니다.

각 테이블과 인덱스는 별도의 롤 토토에 저장됩니다. 에 대한 일반적인 관계에서 이러한 롤 토토은 테이블 이름을 따서 명명되거나 인덱스롤 토토 노드숫자, 다음 중 하나일 수 있습니다. 에서 발견됨pg_class.relfilenode. 하지만 일시적인 관계의 경우 롤 토토 이름은tBBB_FFF, 여기서BBB은 백엔드의 백엔드 ID입니다. 롤 토토을 생성했으며, 그리고FFF이것은 롤 토토노드 번호. 두 경우 모두 기본 롤 토토 외에 (a/k/a 메인 포크), 각 테이블과 인덱스에는여유 공간 지도(참조섹션 55.315374_15540_fsm. 테이블에는 다음도 있습니다.가시성 지도, 접미사가 붙은 포크에 저장됨_vm, 알려진 페이지 추적 데드 튜플이 없습니다. 가시성 지도는 다음에 자세히 설명되어 있습니다.토토 핫 : 문서 : 9.1 : 가시성 맵. 기록되지 않은 테이블 및 인덱스에는 초기화 포크라고 하는 세 번째 포크가 있습니다. 접미사가 붙은 포크에 저장됩니다._init(참조배트맨 토토 : 문서 : 9.1 : 초기화 포크).

주의

테이블의 롤 토토 노드는 종종 테이블의 롤 토토 노드와 일치한다는 점에 유의하십시오. OID는요아님반드시 해당 경우입니다. 다음과 같은 일부 작업잘라내기, REINDEX, 클러스터및 일부 형태테이블 변경, 롤 토토 노드를 변경할 수 있는 동안 OID를 보존합니다. 롤 토토 노드와 테이블 OID는 동일합니다. 또한 특정 시스템 카탈로그의 경우 포함pg_class그 자체,pg_class.relfilenode0이 포함되어 있습니다. 실제 이러한 카탈로그의 롤 토토 노드 번호는 하위 수준 데이터 구조이며, 다음을 사용하여 얻을 수 있습니다.pg_relation_filenode()함수.

테이블이나 인덱스가 1GB를 초과하면 다음으로 나뉩니다. 기가바이트 크기세그먼트. 첫 번째 세그먼트의 파일 이름은 롤 토토 노드와 동일합니다. 후속 세그먼트의 이름은 filenode.1, filenode.2 등으로 지정됩니다. 파일 크기 제한이 있는 플랫폼에서의 문제를 방지합니다. (실제로는 1GB가 기본 세그먼트 크기입니다. 세그먼트는 구성 옵션을 사용하여 크기를 조정할 수 있습니다.--세그사이즈 포함빌드할 때PostgreSQL.) 원칙적으로 여유 공간 맵 가시성 맵 포크에도 여러 세그먼트가 필요할 수 있습니다. 하지만 실제로는 이런 일이 일어날 가능성이 없습니다.

잠재적으로 큰 항목이 있는 열이 있는 테이블은 관련이 있습니다토스트테이블입니다. 너무 큰 필드 값을 라인 외부에 저장하는 데 사용됩니다. 테이블 행을 적절하게 유지합니다.pg_class.reltoastrelid테이블에서 해당 테이블로의 링크토스트테이블(있는 경우). 참조섹션 55.2더 보기 정보.

테이블과 색인의 내용은 다음에 자세히 설명되어 있습니다.PostgreSQL : 문서 : 9.1 : 데이터베이스 무지개 토토 레이아웃.

테이블스페이스는 시나리오를 더욱 복잡하게 만듭니다. 각각 사용자 정의 테이블스페이스에는 내부에 심볼릭 링크가 있습니다.PGDATA/pg_tblspc디렉터리(물리적 테이블스페이스 디렉토리를 가리킴) (즉, 테이블스페이스의테이블스페이스 생성명령). 이 심볼릭 링크는 테이블스페이스의 OID를 따서 명명되었습니다. 물리적 테이블스페이스 내부 디렉터리에는 다음 이름에 따라 이름이 지정된 하위 디렉터리가 있습니다.PostgreSQL서버 버전, 예: 와 같이PG_9.0_201008051. (이유는 이 하위 디렉토리를 사용하면 다음 버전의 데이터베이스는 동일한 것을 사용할 수 있습니다만들기 테이블스페이스충돌 없는 위치 값입니다.) 버전별 하위 디렉터리, 각 버전마다 하위 디렉터리가 있습니다. 데이터베이스 이름을 따서 명명된 테이블스페이스에 요소가 있는 데이터베이스 데이터베이스의 OID입니다. 테이블과 인덱스는 그 안에 저장됩니다. 롤 토토 노드 명명 체계를 사용하는 디렉터리입니다. 그만큼pg_default테이블스페이스는 다음을 통해 액세스되지 않습니다.pg_tblspc, 그러나 다음과 일치함PGDATA/베이스. 마찬가지로,pg_global테이블스페이스는 다음을 통해 액세스할 수 없습니다.pg_tblspc하지만 에 해당함PGDATA/글로벌.

pg_relation_filepath()함수는 전체 경로를 표시합니다(관련PGDATA) 모든 관계. 종종 다음과 같이 유용합니다. 위의 많은 규칙을 기억하는 것으로 대체하십시오. 하지만 계속 들어가세요 이 함수는 첫 번째 세그먼트의 이름만 제공한다는 점에 유의하세요. 관계의 주요 포크 중 - 추가해야 할 수도 있습니다. 세그먼트 번호 및/또는_fsm, _vm또는_init모두 찾기 관계와 관련된 롤 토토입니다.

임시 롤 토토(보다 많은 데이터를 정렬하는 등의 작업용) 메모리에 맞을 수 있음)은 내에 생성됩니다.PGDATA/base/pgsql_tmp, 또는 a 내에서pgsql_tmp의 하위 디렉토리 테이블스페이스가 아닌 경우 테이블스페이스 디렉터리pg_default이(가) 지정되었습니다. 의 이름 임시 파일의 형식은 다음과 같습니다.pgsql_tmpPPP.NNN, 어디서PPP은 PID입니다 백엔드 소유 및NNN해당 백엔드의 다른 임시 롤 토토을 구별합니다.