2010-11-22 2 views
0

SQL은 사전 초기화 된 카탈로그 클러스터를 배포하지만 postgresql에 대해서는 initdb 및 네트워크 서비스 계정을 사용하여 클러스터를 초기화해야합니다. 몇 가지 사례에서 실패하고 불행의 비트를 유발합니다!Postgresql 클러스터 초기화

클러스터를 직접 초기화하고 미리 초기화 된 클러스터를 배포 할 수 있습니까?

감사

+0

실패하는 방법에 대한 자세한 정보가 있습니까? 오류 메시지가 나타 납니까? – bernie

+0

잘 무작위로. postgre 사용자는 루트 등 8 도트 3 문제에 대한 액세스 권한이 필요합니다. 우리는 고객이 그 점을 싫어하므로 변경하고 싶지 않습니다. 그래서 내가 미리 초기화 된 클러스터를 배포 할 생각이었습니다. 생각을 좀하고 싶었다. – user507779

+0

예를 들어, pg_cluster 유형 명령과 같은 debian/우분투 기능에 대해 이야기하고 있다면 그렇습니다. 실행하려면 루트 여야합니다. OTOH, initdb는 root에서 실행할 필요가 없으므로 사용자 joe의 현재 디렉토리에있는 경우 initdb -D/home/joe/mydb를 실행하여 클러스터를 만들 수 있습니다. –

답변

0

하드 질문을 이해하는,하지만 난 당신이 PostgreSQL를위한 Windows 설치에 대해 이야기하고 생각합니다. 권리? 어떤 버전, 어떤 설치 프로그램, 오류 메시지, 로깅 등은 무엇입니까?

설치 관리자는 here입니다.

SQL = 데이터베이스 언어, SQL 서버 = 마이크로 소프트의 데이터베이스 제품

+0

전체에서 권한이 필요합니다. 포스트 그레스 8.4입니다. 우리는 postgres 설치 프로그램을 사용하지 않습니다. 바이너리를 복사하고 폴더로 바이너리를 복사 한 후 클러스터를 초기화합니다. – user507779

+0

왜 설치 프로그램을 자신의 설치 프로그램에 포함시키지 않습니까? 이것이 우리 패키지 (Java/Jboss/PostgreSQL)를 위해 한 일이며 매력처럼 작동합니다. –

+0

msi를 사용하려면 MS 설치 프로그램 4.5를 설치해야하며 이전 버전에서는 몇 가지 사항을 사용자 정의해야했습니다. – user507779

1

은 "클러스터"(또는 데이터 디렉토리)는 운영 체제와 구조에 따라 달라집니다. 따라서 32 비트 리눅스에서 initdb로 초기화 된 데이터 디렉토리는 64 비트 Windows에서 작동하지 않습니다.

하지만 그렇게 할 필요는 없습니다. 서비스 계정은 PostgreSQL을 서비스로 실행하려는 경우에만 필요합니다.

본격적인 설치 또는 서비스 계정 없이도 ZIP 배포를 사용하여 Postgres를 쉽게 설치하고 시작할 수 있습니다. 그렇게 할

단계는 다음과 같습니다 데이터베이스 클러스터를 생성 할 디렉토리로 가리키는 initdb에

  1. 의 압축을 풀고는 바이너리
  2. 실행을.
  3. pg_ctl을 실행하여 서버를 시작하십시오.

동일한 사용자를 사용하여 2) 및 3) 단계를 실행해야합니다. 그렇지 않으면 서버에 데이터 디렉토리에 쓸 수있는 권한이 없습니다.

이러한 단계는 배치 파일이나 셸 스크립트에 쉽게 넣을 수 있습니다.

+0

그게 현재 진행되고 있습니다.우리는 Windows 기반이며 postgres 바이너리는 설치 프로그램과 함께 배포됩니다. 설치 중에 바이너리가 복사되고 initdb가 클러스터를 초기화하는 데 사용됩니다. 약 70 %는 작동하지만 20-30 %는 실패합니다. – user507779

+0

그래서 사전 초기화 된 클러스터를 설치 프로그램과 함께 배포 할 수 있는지 묻는 이유는 무엇입니까? 30 % 실패는 받아 들일 수 없으며 약간의 작업이 필요합니다. – user507779