무엇을 하기 전에 디스크의 토토 커뮤니티 저장 영역을 초기화해야 합니다. 우리는 이것을 a라고 부릅니다.토토 커뮤니티 클러스터. (그SQL표준에서는 카탈로그 클러스터라는 용어를 사용합니다.) 토토 커뮤니티 클러스터는 실행 중인 데이터베이스 서버의 단일 인스턴스에서 관리되는 데이터베이스 모음입니다. 초기화 후 토토 커뮤니티 클러스터에는 다음과 같은 데이터베이스가 포함됩니다.포스트그레스은 유틸리티, 사용자 및 타사 애플리케이션에서 사용하기 위한 기본 데이터베이스로 사용됩니다. 데이터베이스 서버 자체에는 다음이 필요하지 않습니다.포스트그레스토토 커뮤니티가 존재하지만 많은 외부 유틸리티 프로그램에서는 토토 커뮤니티가 존재한다고 가정합니다. 초기화 중에 각 클러스터 내에 생성된 또 다른 토토 커뮤니티가 호출됩니다.템플릿1. 이름에서 알 수 있듯이 이는 이후에 생성되는 토토 커뮤니티의 템플릿으로 사용됩니다. 실제 작업에 사용해서는 안 됩니다. (참조장 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 : 문서 : 11 : 18.3. 데이터베이스 윈 토토 시작), 그러니까pg_ctl토토 커뮤니티 서버 인스턴스를 관리하는 데 사용하는 유일한 명령이 될 것입니다.
initdb아직 존재하지 않는 경우 지정한 디렉토리를 생성하려고 시도합니다. 물론 다음과 같은 경우에는 실패합니다.initdb상위 디렉토리에 쓸 수 있는 권한이 없습니다. 일반적으로 다음을 수행하는 것이 좋습니다.PostgreSQL사용자는 데이터 디렉토리뿐만 아니라 상위 디렉토리도 소유하므로 이는 문제가 되지 않습니다. 원하는 상위 디렉토리도 존재하지 않는 경우 상위 디렉토리에 쓸 수 없으면 루트 권한을 사용하여 먼저 생성해야 합니다. 따라서 프로세스는 다음과 같습니다.
루트#mkdir /usr/local/pgsql루트#chown postgres /usr/local/pgsql루트#su 포스트그레스포스트그레스$initdb -D /usr/local/pgsql/data
initdb데이터 디렉토리가 존재하고 이미 파일이 포함되어 있으면 실행을 거부합니다. 이는 기존 설치를 실수로 덮어쓰는 것을 방지하기 위한 것입니다.
데이터 디렉토리에는 데이터베이스에 저장된 모든 데이터가 포함되어 있으므로 무단 액세스로부터 보호하는 것이 중요합니다.initdb따라서 다음을 제외한 모든 사람의 액세스 권한을 취소합니다.PostgreSQL사용자 및 선택적으로 그룹. 그룹 액세스가 활성화되면 읽기 전용입니다. 이를 통해 클러스터 소유자와 동일한 그룹에 있는 권한 없는 사용자가 클러스터 데이터를 백업하거나 읽기 액세스만 필요한 다른 작업을 수행할 수 있습니다.
기존 클러스터에서 그룹 액세스를 활성화하거나 비활성화하려면 클러스터를 종료하고 다시 시작하기 전에 모든 디렉터리와 파일에 적절한 모드를 설정해야 합니다.포스트그레SQL. 그렇지 않으면 데이터 디렉터리에 혼합 모드가 존재할 수 있습니다. 소유자만 액세스를 허용하는 클러스터의 경우 적절한 모드는 다음과 같습니다.0700디렉토리 및0600파일용. 그룹의 읽기도 허용하는 클러스터의 경우 적절한 모드는 다음과 같습니다.0750디렉토리 및0640파일용.
그러나 디렉토리 내용은 안전하지만 기본 클라이언트 인증 설정을 통해 모든 로컬 사용자가 데이터베이스에 연결하고 데이터베이스 수퍼유저가 될 수도 있습니다. 다른 로컬 사용자를 신뢰할 수 없다면 다음 중 하나를 사용하는 것이 좋습니다.initdb의-W, --pwprompt또는--pwfile토토 커뮤니티 수퍼유저에게 비밀번호를 할당하는 옵션.또한 지정하십시오-A md5또는-비밀번호그래서 기본값신뢰인증 모드가 사용되지 않습니다. 또는 생성된 내용을 수정하세요.pg_hba.conf실행 후 파일initdb하지만이전당신은 처음으로 서버를 시작했습니다. (다른 합리적인 접근 방식에는 다음이 포함됩니다.동료연결을 제한하기 위한 인증 또는 파일 시스템 권한. 참조배트맨 토토 : 문서 : 11 : 20 장. 클라이언트 인증자세한 내용은.)
initdb또한 기본 로케일을 초기화합니다토토 커뮤니티 클러스터용. 일반적으로 환경의 로케일 설정을 가져와서 초기화된 데이터베이스에 적용합니다. 데이터베이스에 대해 다른 로케일을 지정할 수 있습니다. 이에 대한 자세한 내용은 다음에서 확인할 수 있습니다.PostgreSQL : 문서 : 11 : 23.1. 토토 결과 지원. 특정 토토 커뮤니티 클러스터 내에서 사용되는 기본 정렬 순서는 다음과 같이 설정됩니다.initdb, 그리고 다른 정렬 순서를 사용하여 새 데이터베이스를 생성할 수 있지만 initdb가 생성하는 템플릿 데이터베이스에 사용되는 순서는 삭제하고 다시 생성하지 않고는 변경할 수 없습니다. 이외의 로케일을 사용하면 성능에 영향을 미칩니다.C또는POSIX. 따라서 처음에 올바르게 선택하는 것이 중요합니다.
initdb또한 토토 커뮤니티 클러스터에 대한 기본 문자 세트 인코딩을 설정합니다. 일반적으로 이는 로케일 설정과 일치하도록 선택해야 합니다. 자세한 내용은 참조PostgreSQL : 문서 : 11 : 23.3. 캐릭터 범퍼카 토토 지원.
비-C및 비-POSIX로케일은 문자 집합 순서를 위해 운영 체제의 대조 라이브러리를 사용합니다. 이는 인덱스에 저장된 키의 순서를 제어합니다. 이러한 이유로 클러스터는 스냅샷 복원, 바이너리 스트리밍 복제, 다른 운영 체제 또는 운영 체제 업그레이드를 통해 호환되지 않는 데이터 정렬 라이브러리 버전으로 전환할 수 없습니다.
많은 설치에서는 시스템이 아닌 파일 시스템(볼륨)에 토토 커뮤니티 클러스터를 생성합니다.“루트”볼륨. 이렇게 하기로 선택한 경우 보조 볼륨의 최상위 디렉터리(마운트 지점)를 데이터 디렉터리로 사용하는 것은 바람직하지 않습니다. 모범 사례는 다음이 소유한 마운트 지점 디렉터리 내에 디렉터리를 생성하는 것입니다.포스트그레SQL사용자, 그 안에 데이터 디렉토리를 생성하세요. 이는 특히 다음과 같은 작업의 경우 권한 문제를 방지합니다.pg_upgrade또한 보조 볼륨이 오프라인이 되는 경우 완전한 실패를 보장합니다.
많은 설치가 네트워크 파일 시스템에 토토 커뮤니티 클러스터를 생성합니다. 때때로 이는 다음을 통해 수행됩니다.NFS또는 네트워크 연결 저장소(NAS) 다음을 사용하는 기기NFS내부적으로.포스트그레SQL특별한 일을 하지 않습니다NFS파일 시스템, 가정한다는 의미NFS은 로컬로 연결된 드라이브와 똑같이 작동합니다. 클라이언트 또는 서버인 경우NFS구현은 표준 파일 시스템 의미를 제공하지 않으므로 안정성 문제가 발생할 수 있습니다(참조https://www.time-travellers.org/shane/papers/NFS_considered_harmful.html). 특히 지연된(비동기) 쓰기는NFS서버가 데이터 손상 문제를 일으킬 수 있습니다. 가능하다면 마운트하세요.NFS파일 시스템을 동기적으로(캐싱 없이) 사용하여 이러한 위험을 방지합니다. 또한 소프트 마운팅은NFS파일 시스템은 권장되지 않습니다.
저장 영역 네트워크(산)은 일반적으로 이외의 통신 프로토콜을 사용합니다.NFS이며 이러한 종류의 위험에 노출될 수도 있고 그렇지 않을 수도 있습니다. 데이터 일관성 보장에 대해서는 공급업체의 문서를 참조하는 것이 좋습니다.포스트그레SQL사용 중인 파일 시스템보다 더 안정적일 수 없습니다.