누구나 데이터베이스에 액세스하기 전에 데이터베이스 토토 베이. 데이터베이스 토토 베이 프로그램을라고합니다.Postmaster.thePostmaster어디서 찾을 수 있는지 알아야합니다 사용해야 할 데이터. 이것은와 함께 이루어집니다.-d옵션. 따라서 시작하는 가장 간단한 방법 토토 베이는 :
$postmaster -d/usr/local/pgsql/data
토토 베이가 전경에서 실행됩니다. 이것 로그인하는 동안 수행해야합니다PostgreSQL사용자 계정. 없이-d, 토토 베이는 데이터 디렉토리를 사용하려고합니다. 환경 변수pgdata. 만약에 이 중 어느 것도 성공하지 못할 것입니다.
시작하려면Postmaster배경, 일반적인 쉘 구문 사용 :
$postmaster -d/usr/local/pgsql/data logfile 2 & 1 &
토토 베이를 저장하는 것이 중요합니다stdoutandStderr위와 같이 어딘가에서 출력. 그것 감사 목적 및 문제를 진단하는 데 도움이됩니다. (보다PostgreSQL : 문서 : 7.4 : 토토 사이트 순위 파일 유지 관리더 로그 파일 처리에 대한 철저한 토론.)
thePostmaster또한 여러 가지를 취합니다 다른 명령 줄 옵션. 자세한 내용은 참조 페이지 및사설 토토 : 문서 : 7.4 : 런타임 구성아래. 특히 토토 베이가 수락하기 위해 TCP/IP연결 (오히려 Unix-Domain 소켓보다 단지를 지정해야합니다.-i옵션.
이 쉘 구문은 신속하게 지루할 수 있습니다. 따라서 쉘 스크립트 래퍼PG_CTL일부 작업을 단순화하기 위해 제공됩니다. 을 위한 예:
pg_ctl start -l logfile
백그라운드에서 토토 베이를 시작하고 출력을 넣습니다. 명명 된 로그 파일로. 그만큼-d옵션 여기서와 같은 의미가 있습니다Postmaster. PG_CTLis 토토 베이를 중지 할 수 있습니다.
일반적으로, 당신은 컴퓨터 부츠.AutostArt 스크립트는 시스템별로 운영됩니다. 몇 가지가 있습니다 배포PostgreSQLin 그만큼Contrib/Start-Scripts디렉토리. 이것은 근본 특권이 필요할 수 있습니다.
다른 시스템마다 시작하기위한 다른 규칙이 다릅니다 부팅 시간에 데몬. 많은 시스템에는 파일이 있습니다/etc/rc.local또는/etc/rc.d/rc.local. 다른 사람은 사용RC.D디렉토리. 당신이 무엇을 하든지 토토 베이 에 의해 실행되어야합니다.PostgreSQL사용자 계정뿌리또는 다른 사용자. 그러므로 당신은 아마도 형성해야합니다 사용하는 명령SU -C '...' Postgres. 예를 들어:
su -c 'pg_ctl start -d/usr/local/pgsql/data -l serverLog'postgres
다음은 몇 가지 운영 체제 별 제안이 있습니다. (항상 적절한 설치 디렉토리로 바꾸십시오 사용자 이름.)
forfreebsd, 파일Contrib/Start-Scripts/freebsdinPostgreSQL소스 분포.
onOpenBSD를 추가하십시오 파일에 대한 줄 다음/etc/rc.local:
[-x/usr/local/pgsql/bin/pg_ctl -a -x/usr/local/pgsql/bin/postmaster]; 그 다음에 su-c '/usr/local/pgsql/bin/pg_ctl start -l/var/postgresql/log -s'postgres echo -n 'postgresql' fi
/usr/local/pgsql/bin/pg_ctl start -l logfile -d/usr/local/pgsql/data
to/etc/rc.d/rc.local또는보십시오 파일Contrib/Start-Scripts/LinuxinPostgreSQL소스 분포.
onSolaris, 파일을 만듭니다 라고 불리는/etc/init.d/postgresql다음 줄을 포함합니다.
SU -Postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -d/usr/local/pgsql/data"
그런 다음, 그에 대한 상징적 링크를 만듭니다/etc/rc3.dasS99Postgresql.
Postmaster실행 중입니다.PID파일에 저장됩니다postmaster.pid데이터 디렉토리에서. 이것은 여러 가지를 방지하는 데 사용됩니다Postmaster동일한 데이터에서 실행되는 프로세스 디렉토리 및 종료에도 사용할 수 있습니다Postmaster프로세스.
서버가 실패 할 수있는 몇 가지 일반적인 이유가 있습니다. 시작. 서버의 로그 파일을 확인하거나 손으로 시작하십시오. (표준 출력 또는 표준 오류를 리디렉션하지 않고) 오류 메시지가 나타납니다. 아래에서 우리는 가장 많이 설명합니다 더 자세한 일반적인 오류 메시지.
로그 : IPv4 소켓 바인딩 할 수 없음 : 이미 사용중인 주소 힌트 : 다른 우체국 장이 이미 포트 5432에서 실행 중입니까? 그렇지 않다면 몇 초 동안 기다렸다가 다시 시도하십시오. 치명적 : TCP/IP 청취 소켓을 만들 수 없음
이것은 일반적으로 제안하는 것을 의미합니다. 또 다른Postmaster같은 포트에서 이미 달리고있는 곳. 그러나 커널 오류 인 경우 메시지가 아닙니다이미 주소 사용또는 그 변형이 다를 수 있습니다. 문제. 예를 들어, 시작하려고합니다Postmaster예약 된 포트 번호에서 그려 질 수 있습니다 다음과 같은 것 :
$Postmaster -I -P 666로그 : IPv4 소켓 바인딩 할 수 없습니다 : 권한 거부 힌트 : 다른 우체국 장이 이미 포트 666에서 실행 중입니까? 그렇지 않다면 몇 초 동안 기다렸다가 다시 시도하십시오. 치명적 : TCP/IP 청취 소켓을 만들 수 없음
A와 같은 메시지
Fatal : 공유 메모리 세그먼트를 생성 할 수 없습니다 : 잘못된 인수 세부 사항 : 실패 시스템 호출은 shmget (key = 5440001, size = 4011376640, 03600)입니다.
아마도 공유 크기에 대한 커널 제한을 의미합니다. 메모리는 작업 영역보다 작습니다PostgreSQL(4011376640 이 예에서는 바이트). 또는 그것은 당신이 가지고 있지 않다는 것을 의미 할 수 있습니다 시스템 V 스타일 공유 메모리 지원이 귀하에게 구성되었습니다 커널. 임시 해결 방법으로 시작할 수 있습니다 정상보다 작은 버퍼 수를 가진 서버 (-B스위치). 당신은 결국 원할 것입니다 허용 된 공유를 늘리기 위해 커널을 재구성하기 위해 메모리 크기. 시작하려고 할 때이 메시지를 볼 수도 있습니다. 전체 공간이있는 경우 동일한 기계의 여러 토토 베이 요청 된 커널 제한을 초과합니다.
오류와 같은
치명적 : 세마포어를 만들 수 없음 : 장치에 남은 공간이 없습니다. 세부 사항 : 실패 시스템 호출은 Semget (5440126, 17, 03600)입니다.
donot평균 디스크 공간이 부족합니다. 그것은 당신의 커널의 제한을 의미합니다 수System Vsemaphores는 숫자보다 작습니다PostgreSQL생성을 원합니다. 위와 같이, 당신 토토 베이를 시작하여 문제를 해결할 수 있습니다. 허용 연결 수가 감소 함 (-n스위치), 그러나 결국 원할 것입니다 커널 제한을 늘리십시오.
당신이 얻는 경우"불법 시스템 부르다"오류, 공유 메모리 또는 세마포어는 커널에서 전혀 지원되지 않습니다. 그것에 유일한 옵션을 구체화하여 커널을 재구성하는 것입니다. 이러한 기능.
구성에 대한 세부 사항시스템 다섯 IPC시설은입니다 주어진섹션 16.5.1.
클라이언트 측에서 오류 조건이 가능하지만 상당히 다양하고 응용 프로그램에 따라 다르므로 몇몇은 토토 베이가 시작된 방식과 직접 관련이 있습니다. 아래에 표시된 조건 이외의 조건을 문서화해야합니다 각각의 클라이언트 응용 프로그램과 함께.
PSQL : 토토 베이에 연결할 수 없습니다 : 연결 거부 토토 베이가 호스트 "Server.joe.com"에서 실행되고 수락합니다 포트 5432의 TCP/IP 연결?
이것은 일반입니다"나는 찾을 수 없었다 "와 대화 할 토토 베이실패. 위의시기처럼 보입니다 TCP/IP 통신이 시도됩니다. 일반적인 실수는 TCP/IP 연결을 허용하도록 토토 베이를 구성하는 것을 잊어 버립니다.
또는 유닉스 도메인을 시도 할 때 이것을 얻을 수 있습니다 로컬 서버에 대한 소켓 통신 :
PSQL : 서버에 연결할 수 없음 : 해당 파일 또는 디렉토리가 없습니다. 서버가 로컬로 실행되고 수락됩니다 Unix 도메인 소켓의 연결 "/tmp/.s.pgsql.5432"?
마지막 줄은 클라이언트가 올바른 장소에 연결하려고합니다. 실제로 없다면 토토 베이가 실행되면 커널 오류 메시지가 일반적으로됩니다 어느 쪽이든연결 거부또는그러한 파일 없음 또는 예배 규칙서, 그림. (실현하는 것이 중요합니다 저것연결 거부in 이 맥락은not토토 베이가 연결 요청을 받고 거부했음을 의미합니다. 그것. 이 경우는 다른 메시지를 생성합니다.토토 사이트 : 문서.)과 같은 기타 오류 메시지연결 시간 출력더 많은 것을 나타낼 수 있습니다 네트워크 연결 부족과 같은 근본적인 문제.