누구나 데이터베이스에 액세스하기 전에 데이터베이스 젠 토토를 시작해야합니다. 데이터베이스 젠 토토 프로그램을라고합니다.Postgres
.
사전 포장 된 버전의를 사용하는 경우PostgreSQL, 운영 체제의 규칙에 따라 서버를 배경 작업으로 실행하기위한 조항이 거의 포함되어 있습니다. 패키지 인프라를 사용하여 서버를 시작하는 것은 직접 수행하는 방법을 알아내는 것보다 훨씬 덜 작동합니다.
젠 토토를 수동으로 시작하는 베어 본은 호출하는 것입니다Postgres
직접, 데이터 디렉토리의 위치를 지정합니다.-d
옵션, 예 :
$ Postgres -D/USR/local/pgsql/data
젠 토토가 전경에서 실행됩니다. 이것은에 로그인하는 동안 수행해야합니다PostgreSQL사용자 계정. 없이-d
, 젠 토토는 Environment Variable이 명명 한 데이터 디렉토리를 사용하려고합니다pgdata
. 해당 변수가 제공되지 않으면 실패합니다.
일반적으로 시작하는 것이 좋습니다Postgres
백그라운드에서. 이를 위해 일반적인 Unix Shell Syntax를 사용하십시오 :
$ postgres -d/usr/local/pgsql/data> logfile 2> & 1 &
젠 토토를 저장하는 것이 중요합니다stdoutandStderr위와 같이 어딘가에서 출력. 감사 목적과 문제를 진단하는 데 도움이됩니다.PostgreSQL : 문서 : 13 : 24.3. 토토 커뮤니티 파일 유지 관리로그 파일 처리에 대한보다 철저한 토론.)
thePostgres
프로그램에는 여러 가지 다른 명령 줄 옵션도 제공됩니다. 자세한 내용은를 참조하십시오.Postgres참조 페이지 및사설 토토 사이트 : 문서 : 13 : 19 장. 서버 구성아래.
이 쉘 구문은 신속하게 지루할 수 있습니다. 따라서 래퍼 프로그램PG_CTL일부 작업을 단순화하기 위해 제공됩니다. 예를 들어:
pg_ctl start -l logfile
배경에서 젠 토토를 시작하고 출력을 명명 된 로그 파일에 넣습니다. 그만큼-d
옵션은 여기서와 같은 의미를 갖습니다Postgres
. PG_CTL
젠 토토를 중지 할 수 있습니다.
일반적으로 컴퓨터가 부팅 될 때 데이터베이스 젠 토토를 시작하려고합니다.AutosTart 스크립트는 시스템에 따라 작동합니다. 와 함께 배포 된 몇 가지 예제 스크립트가 있습니다.PostgreSQLinContrib/Start-Scripts
디렉토리. 하나를 설치하려면 루트 권한이 필요합니다.
다른 시스템마다 부팅 시간에 데몬을 시작하기위한 다른 규칙이 다릅니다. 많은 시스템에는 파일이 있습니다/etc/rc.local
또는/etc/rc.d/rc.local
. 다른 사람은 사용init.d
또는rc.d
디렉토리. 당신이 무엇을 하든지 젠 토토는에 의해 실행되어야합니다.PostgreSQL사용자 계정또는 다른 사용자. 따라서 아마도를 사용하여 명령을 형성해야 할 것입니다.Su postgres -c '...'
. 예를 들어:
Su postgres -c 'pg_ctl start -d/usr/local/pgsql/data -l serverLog'
다음은 몇 가지 더 운영 시스템 별 제안이 있습니다. (각각의 경우 일반 값이 표시되는 적절한 설치 디렉토리 및 사용자 이름을 사용해야합니다.)
forfreebsd, 파일보기Contrib/Start-Scripts/freebsd
inPostgreSQL소스 배포.
onOpenBSD, 파일에 다음 줄을 추가/etc/rc.local
:
[-x/usr/local/pgsql/bin/pg_ctl -a -x/usr/local/pgsql/bin/postgres]; 그 다음에
/usr/local/pgsql/bin/pg_ctl start -l logfile -d/usr/local/pgsql/data
to/etc/rc.d/rc.local
또는/etc/rc.local
또는 파일보기Contrib/Start-Scripts/Linux
inPostgreSQL소스 배포.
사용시SystemD, 다음 서비스 장치 파일을 사용할 수 있습니다 (예 : at/etc/systemd/system/postgresql.service
) :
[Unit]
사용type = notify
젠 토토 바이너리가 |구성-with-systemd
.
시간 초과 설정을주의 깊게 고려하십시오.SystemD이 글을 쓰는 시점에서 기본 시간 초과는 90 초이며 그 시간 내에 준비를보고하지 않는 프로세스를 죽일 것입니다. 그러나 aPostgreSQL스타트 업에서 충돌 복구를 수행해야 할 수있는 젠 토토는 준비되기까지 훨씬 더 오래 걸릴 수 있습니다. 제안 된 값Infinity
타임 아웃 로직을 비활성화합니다.
onSolaris,라는 파일 생성/etc/init.d/postgresql
다음 줄이 포함되어 있습니다.
SU -Postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -d/usr/local/pgsql/data"
그런 다음, 그에 대한 상징적 링크를 만듭니다/etc/rc3.d
asS99Postgresql
.
젠 토토가 실행되는 동안PID파일에 저장됩니다as
데이터 디렉토리에서. 이는 동일한 데이터 디렉토리에서 여러 서버 인스턴스가 실행되는 것을 방지하는 데 사용되며 서버를 종료하는 데 사용될 수도 있습니다.
서버가 시작하지 못하는 몇 가지 일반적인 이유가 있습니다. 서버의 로그 파일을 확인하거나 (표준 출력 또는 표준 오류를 리디렉션하지 않고) 직접 시작하고 어떤 오류 메시지가 나타나는지 확인하십시오.
로그 : IPv4 주소 "127.0.0.1": 이미 사용중인 주소
이것은 일반적으로 제안한 것을 의미합니다. 이미 실행중인 동일한 포트에서 다른 젠 토토를 시작하려고했습니다. 그러나 커널 오류 메시지가 아닌 경우이미 사용중인 주소
또는 그 변형의 일부는 다른 문제가있을 수 있습니다. 예를 들어, 예약 된 포트 번호에서 서버를 시작하려고하면 다음과 같은 것을 그릴 수 있습니다.
$ Postgres -P 666
로그 : IPv4 주소 "127.0.0.1": 권한 거부
a 메시지 :
Fatal : 공유 메모리 세그먼트를 생성 할 수 없습니다 : 무효 인수
아마도 공유 메모리 크기에 대한 커널의 제한이 작업 영역보다 작다는 것을 의미합니다.PostgreSQL(이 예에서는 4011376640 바이트)를 작성하려고합니다. 이것은 당신이 설정 한 경우에만 일어날 가능성이 있습니다shared_memory_type
toSYSV
. 이 경우 정상보다 작은 수의 버퍼로 젠 토토를 시작할 수 있습니다 (.shared_buffers) 또는 커널을 재구성하여 허용되는 공유 메모리 크기를 증가시킵니다. 동일한 컴퓨터에서 여러 서버를 시작하려고 할 때이 메시지가 표시 될 수도 있습니다. 요청 된 총 공간이 커널 제한을 초과하면
오류와 같은 오류 :
치명적 : 세마포어를 만들 수 없음 : 장치에 남은 공간이 없습니다.
donot디스크 공간이 부족한 것을 의미합니다. 그것은 당신의 커널의 수에 대한 제한을 의미합니다System Vsemaphores는 숫자보다 작습니다PostgreSQL생성을 원합니다. 위와 같이, 허용 된 연결 수가 줄어든 젠 토토를 시작하여 문제를 해결할 수 있습니다 (.max_connections), 그러나 결국 커널 제한을 늘리고 싶을 것입니다.
구성에 대한 세부 사항System V IPC시설은에 나와 있습니다.섹션 18.4.1.
클라이언트 측에서 가능한 오류 조건은 상당히 다양하고 응용 프로그램에 따라 다르지만 그 중 일부는 젠 토토가 시작된 방식과 직접 관련이있을 수 있습니다. 아래에 표시된 조건 이외의 조건은 해당 클라이언트 응용 프로그램으로 문서화해야합니다.
PSQL : 젠 토토에 연결할 수 없습니다 : 연결 거부
이것은 일반입니다“대화 할 젠 토토를 찾을 수 없었습니다”실패. TCP/IP 통신이 시도 될 때 위의 것 같습니다.
또는 로컬 서버와 유닉스 도메인 소켓 통신을 시도 할 때 이것을 얻을 수 있습니다 :
PSQL : 서버에 연결할 수 없음 : 그러한 파일 또는 디렉토리가 없습니다.
마지막 줄은 클라이언트가 올바른 위치에 연결하려고하는지 확인하는 데 유용합니다. 실제로 젠 토토가 실행되지 않으면 커널 오류 메시지는 일반적으로입니다.연결 거부
또는그러한 파일 또는 디렉토리 없음
, 그림. (그것을 깨닫는 것이 중요합니다연결 거부
이 맥락에서not젠 토토가 연결 요청을 가져 와서 거부했음을 의미합니다. 이 경우는 다른 메시지를 생성합니다.섹션 20.15.)과 같은 기타 오류 메시지연결 시간 출력
네트워크 연결 부족과 같은 더 근본적인 문제를 나타낼 수 있습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면