무슨 일을 하기 전에 롤 토토를 초기화해야 합니다 디스크의 저장 영역. 우리는 이것을 a라고 부릅니다.롤 토토 클러스터. (SQL대신 카탈로그 클러스터를 말합니다.) A 롤 토토 클러스터는 데이터베이스의 모음입니다. 실행 중인 데이터베이스의 단일 인스턴스를 통해 액세스 가능 서버. 초기화 후 롤 토토 클러스터에는 다음이 포함됩니다. 이름이 지정된 데이터베이스템플릿1. 이름 그대로 제안하며 이는 향후 템플릿으로 사용될 것입니다. 생성된 롤 토토 실제 작업에 사용해서는 안 됩니다.
파일 시스템 측면에서 롤 토토 클러스터는 단일 클러스터입니다.
모든 데이터가 저장될 디렉토리입니다. 우리는 이것을데이터 디렉토리또는데이터 영역. 당신이 어디에 있는지는 전적으로 당신에게 달려 있습니다.
데이터 저장을 선택하세요. 기본값은 없지만
다음과 같은 위치/usr/local/pgsql/data또는/var/lib/pgsql/data인기있습니다. 받는 사람
롤 토토 클러스터를 초기화하려면 다음 명령을 사용하세요.initdb, 다음과 함께 설치됨PostgreSQL. 원하는 파일 시스템 위치
귀하의 데이터베이스 시스템은 다음과 같이 표시됩니다.-D옵션, 예를 들어
$ initdb -D /usr/local/pgsql/data
기록되는 동안 이 명령을 실행해야 한다는 점에 유의하세요 안으로포스트그레SQL사용자 이전 섹션에서 설명한 계정입니다.
initdb생성을 시도할 것입니다. 디렉토리가 아직 존재하지 않는 경우 지정합니다. 가능성이 높습니다 그렇게 할 권한이 없을 것입니다(만약 귀하가 우리의 조언을 듣고 권한이 없는 계정을 만들었습니다). 그렇다면 당신은 디렉토리를 직접(루트로) 생성하고 전송해야 합니다. 그 소유권은포스트그레SQL사용자 계정. 방법은 다음과 같습니다. 작동할 수도 있습니다:
루트#mkdir /usr/local/pgsql/data루트#chown postgres /usr/local/pgsql/data루트#su 포스트그레스포스트그레스$initdb -D /usr/local/pgsql/data
initdb데이터가 다음과 같은 경우 실행을 거부합니다. 디렉토리가 이미 초기화된 디렉토리에 속한 것 같습니다. 설치.
데이터 디렉토리에는 다음 디렉토리에 저장된 모든 데이터가 포함되어 있기 때문입니다. 데이터베이스를 안전하게 보호하는 것이 중요합니다. 무단 액세스.initdb그러므로 다음을 제외한 모든 사람의 액세스 권한을 취소합니다.PostgreSQL사용자 계정.
그러나 디렉토리 내용은 안전하지만 기본값은pg_hba.conf인증 방법신뢰모든 로컬 사용자가 연결할 수 있도록 허용합니다.
데이터베이스에 접속하고 데이터베이스 슈퍼유저가 될 수도 있습니다. 당신이
다른 로컬 사용자를 신뢰하지 마십시오. 사용하는 것이 좋습니다.initdb의 선택-W또는--pwprompt비밀번호를 할당하려면
롤 토토 슈퍼유저. 이후initdb,
수정pg_hba.conf사용하다md5또는비밀번호, 대신
의신뢰, 인증이전에당신은 다음을 위해 서버를 시작합니다
처음으로. (다른, 아마도 더 편리한 접근 방식은 다음과 같습니다.
사용 중ident인증 또는 파일
연결을 제한하는 시스템 권한. 참조제4장더 보기
정보.)
한 가지 놀라운 사실이 있을 수도 있습니다 달리다가 만난다initdb공지사항입니다 이것과 비슷합니다:
알림: en_US 데이터 정렬 순서로 데이터베이스를 초기화하는 중입니다.
이 로케일 설정은 다음에 대한 색인 최적화 사용을 방지합니다.
LIKE 및 정규식 검색. 속도가 걱정된다면
이러한 쿼리의 경우 LC_COLLATE를 "C"로 설정하고
다시 initdb. 자세한 내용은 관리자 가이드를 참조하세요.
이 통지문은 현재 선택한 로캘을 사용하면 색인이 다음 순서로 정렬됩니다. LIKE 및 정규 표현식에 사용되는 것을 방지합니다. 검색. 그러한 검색에 대한 좋은 성능이 필요한 경우 현재 로케일을 다음으로 설정해야 합니다.C그리고 재실행initdb. 대부분의 시스템에서 설정 현재 로캘은 값을 변경하여 수행됩니다. 환경 변수LC_ALL또는랭. 내에서 사용되는 정렬 순서 특정 롤 토토 클러스터는 다음에 의해 설정됩니다.initdb나중에 변경할 수 없습니다. 모든 데이터 덤프, 재실행initdb그리고 데이터를 다시 로드하는 중입니다. 그래서 이 선택을 하는 것이 중요합니다 지금은 정확합니다.