무엇이든 할 수 있기 전에 디스크에서 윈 토토 저장 영역을 초기화해야합니다. 우리는 이것을 a라고 부릅니다.윈 토토 클러스터. (그만큼SQLStandard는 카탈로그 클러스터라는 용어를 사용합니다.) 윈 토토 클러스터는 실행되는 데이터베이스 서버의 단일 인스턴스에서 관리하는 데이터베이스 모음입니다. 초기화 후 윈 토토 클러스터에는이라는 데이터베이스가 포함됩니다.Postgres
는 유틸리티, 사용자 및 타사 응용 프로그램에서 사용할 기본 윈 토토입니다. 윈 토토 서버 자체에는가 필요하지 않습니다.Postgres
윈 토토가 존재하지만 많은 외부 유틸리티 프로그램이 존재한다고 가정합니다. 초기화 중 각 클러스터 내에서 생성 된 다른 윈 토토는입니다.Template1
. 이름에서 알 수 있듯이, 이것은 후속 생성 된 윈 토토의 템플릿으로 사용됩니다. 실제 작업에는 사용해서는 안됩니다. (보다22 장클러스터 내에서 새 윈 토토 생성에 대한 정보.)
파일 시스템 용어에서 윈 토토 클러스터는 모든 데이터가 저장 될 단일 디렉토리입니다. 우리는 이것을라고 부릅니다.데이터 디렉토리또는데이터 영역. 데이터를 저장하기로 선택한 곳은 귀하에게 전적으로 달려 있습니다. 와 같은 위치는 있지만 기본값은 없습니다./usr/local/pgsql/data
또는/var/lib/pgsql/data
인기가 있습니다. 윈 토토 클러스터를 초기화하려면 명령을 사용하십시오initdb,PostgreSQL. 윈 토토 클러스터의 원하는 파일 시스템 위치는로 표시됩니다.-d
옵션, 예 :
$
initdb -d/usr/local/pgsql/data
로그인 한 상태 에서이 명령을 실행해야합니다PostgreSQL이전 섹션에 설명 된 사용자 계정.
또는 실행할 수 있습니다initdb
PG_CTL프로그램좋아요 :
$
pg_ctl -d/usr/local/pgsql/data initdb
사용하는 경우 더 직관적 일 수 있습니다PG_CTL
서버를 시작하고 중지하려면 (참조PostgreSQL : 문서 : 10 : 18.3. 데이터베이스 범퍼카 토토 시작),PG_CTL
윈 토토 서버 인스턴스를 관리하는 데 사용하는 유일한 명령입니다.
initdb
아직 존재하지 않는지 지정한 디렉토리를 작성하려고합니다. 물론 이것은이면 실패 할 것입니다.initdb
부모 디렉토리에 쓸 권한이 없습니다. 일반적으로가 권장됩니다.PostgreSQL사용자는 데이터 디렉토리뿐만 아니라 부모 디렉토리도 소유하므로 문제가되지 않아야합니다. 원하는 부모 디렉토리가 존재하지 않으면 조부모 디렉토리를 작성할 수없는 경우 루트 권한을 사용하여 먼저 만들어야합니다. 그래서 프로세스는 다음과 같이 보일 수 있습니다 :
루트#mkdir/usr/local/pgsql
루트#Chown Postgres/usr/local/pgsql
루트#SU Postgres
Postgres $initdb -d/usr/local/pgsql/data
initdb
데이터 디렉토리가 존재하고 이미 파일을 포함하면 실행을 거부합니다. 이것은 실수로 기존 설치를 덮어 쓰는 것을 방지하기위한 것입니다.
데이터 디렉토리에는 데이터베이스에 저장된 모든 데이터가 포함되어 있으므로 무단 액세스에서 보안을 확보하는 것이 중요합니다..initdb
따라서 모든 사람이 아닌 모든 사람의 액세스 권한을 취소합니다PostgreSQL사용자.
그러나 디렉토리 컨텐츠는 안전하지만 기본 클라이언트 인증 설정을 통해 로컬 사용자는 윈 토토에 연결하고 윈 토토 슈퍼 사용자가 될 수 있습니다. 다른 로컬 사용자를 신뢰하지 않으면 중 하나를 사용하는 것이 좋습니다.initdb
's-w
, --pwprompt
또는--pwfile
윈 토토 슈퍼업자에 비밀번호를 할당하는 옵션.또한 지정-a md5
또는-A 비밀번호
기본값이되도록신뢰
인증 모드는 사용되지 않습니다. 또는 생성 된 수정pg_hba.conf
실행 후 파일initdb
그러나전처음으로 서버를 시작합니다. (다른 합리적인 접근 방식은 사용을 포함합니다피어
연결을 제한하기위한 인증 또는 파일 시스템 권한. 보다PostgreSQL : 문서 : 10 : 토토 커뮤니티 20. 클라이언트 토토 커뮤니티자세한 내용은
initdb
기본 로케일 초기화윈 토토 클러스터의 경우. 일반적으로 환경에서 로케일 설정을 사용하여 초기화 된 데이터베이스에 적용합니다. 데이터베이스에 대해 다른 로케일을 지정할 수 있습니다. 그것에 대한 자세한 내용은에서 확인할 수 있습니다.PostgreSQL : 문서 : 10 : 23.1. 스포츠 토토 지원. 특정 윈 토토 클러스터 내에서 사용되는 기본 정렬 순서는에 의해 설정됩니다.initdb
, 그리고 다른 정렬 순서를 사용하여 새 윈 토토를 만들 수 있지만 InitDB가 작성하는 템플릿 윈 토토에 사용 된 순서는 삭제하고 재현하지 않고는 변경할 수 없습니다. 이외의 지역을 사용하는데도 성능 영향도 있습니다.C
또는posix
. 따라서 처음 으로이 선택을 올바르게 만드는 것이 중요합니다.
initdb
또한 윈 토토 클러스터에 대한 기본 문자 세트 인코딩을 설정합니다. 일반적으로 이것은 로케일 설정과 일치하도록 선택해야합니다. 자세한 내용은 참조PostgreSQL : 문서 : 10 : 23.3. 캐릭터 범퍼카 토토 지원.
비C
및 비posix
로케일은 캐릭터 세트 주문을 위해 운영 체제의 Collation Library에 의존합니다. 이것은 인덱스에 저장된 키의 순서를 제어합니다. 이러한 이유로 클러스터는 스냅 샷 복원, 이진 스트리밍 복제, 다른 운영 체제 또는 운영 체제 업그레이드를 통해 호환되지 않는 Collation 라이브러리 버전으로 전환 할 수 없습니다..
많은 설치가 기계 이외의 파일 시스템 (볼륨)에서 윈 토토 클러스터를 만듭니다“루트”볼륨. 이를 선택하면 2 차 볼륨의 최상위 디렉토리 (Mount Point)를 데이터 디렉토리로 사용하는 것이 좋습니다. 모범 사례는 마운트 포인트 디렉토리 내에서 소유 한 디렉토리를 작성하는 것입니다.PostgreSQL사용자, 그 안에 데이터 디렉토리를 만듭니다. 이것은 특히와 같은 작업에 대한 권한 문제를 피합니다.pg_upgrade, 그리고 보조 볼륨이 오프라인 상태가되면 깨끗한 고장을 보장합니다.
많은 설치가 네트워크 파일 시스템에서 윈 토토 클러스터를 만듭니다. 때때로 이것은를 통해 이루어집니다.NFS또는 네트워크 첨부 된 스토리지를 사용하여 (NAS) 사용하는 장치NFS내부적.PostgreSQL특별한 것은 없습니다NFS파일 시스템, 의미NFS로컬에 연결된 드라이브와 똑같이 동작합니다. 클라이언트 또는 서버 인 경우NFS구현은 표준 파일 시스템 시맨틱을 제공하지 않으므로 신뢰성 문제를 일으킬 수 있습니다 (참조http : //www.time-travellers.org/shane/papers/nfs_considered_harmful.html). 구체적으로 지연된 (비동기)에NFS서버는 데이터 손상 문제를 일으킬 수 있습니다. 가능하면 장착NFS파일 시스템은이 위험을 피하기 위해 동기식 (캐싱없이). 또한 소프트 장착NFS파일 시스템은 권장되지 않습니다.
스토리지 영역 네트워크 (san22177_22230NFS, 이런 종류의 위험에 처할 수도 있고 아닐 수도 있습니다. 데이터 일관성 보증에 관한 공급 업체의 문서를 참조하는 것이 좋습니다.PostgreSQL사용중인 파일 시스템보다 더 신뢰할 수 없습니다.