이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 18.3. 데이터베이스 스포츠 토토 베트맨 시작버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

18.3. 데이터베이스 서버 시작

누구나 데이터베이스에 액세스하기 전에 데이터베이스 스포츠 토토 결과를 시작해야합니다. 데이터베이스 스포츠 토토 결과 프로그램을라고합니다.Postgres. 그만큼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 &

스포츠 토토 결과를 저장하는 것이 중요합니다stdoutStderr위와 같이 어딘가에서 출력. 감사 목적과 문제를 진단하는 데 도움이됩니다. (보다PostgreSQL : 문서 : 9.6 : 무지개 토토 파일 유지 관리로그 파일 처리에 대한보다 철저한 토론.)

thePostgres프로그램에는 여러 가지 다른 명령 줄 옵션도 제공됩니다. 자세한 내용은를 참조하십시오.Postgres참조 페이지 및메이저 토토 사이트 : 문서 : 9.6 : 서버 구성아래.

이 쉘 구문은 신속하게 지루할 수 있습니다. 따라서 래퍼 프로그램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에서PostgreSQL소스 배포.

  • onOpenBSD, 파일에 다음 줄을 추가/etc/rc.local:

    [-x/usr/local/pgsql/bin/pg_ctl -a -x/usr/local/pgsql/bin/postgres]; 그 다음에
        Su -l postgres -c '/usr/local/pgsql/bin/pg_ctl start -s -l/var/postgresql/log -d/usr/local/pgsql/data'
        echo -n 'postgresql'
    fi
  • onLinux시스템 중 하나

    /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/LinuxinPostgreSQL소스 배포.

    사용시SystemD, 다음 서비스 장치 파일을 사용할 수 있습니다 (예 : at/etc/systemd/system/postgresql.service) :

    [Unit]
    설명 = PostgreSQL 데이터베이스 서버
    문서 = 남자 : Postgres (1)
    
    [서비스]
    type = notify
    user = postgres
    execstart =/usr/local/pgsql/bin/postgres -d/usr/local/pgsql/data
    execreload =/bin/kill -hup $ mainpid
    킬 모드 = 혼합
    Killsignal = Sigint
    타임 아웃 스펙 = 0
    
    [설치하다]
    WANDERBY = multi-user.target

    사용type = notify스포츠 토토 결과 바이너리가 |구성-with-systemd.

    시간 초과 설정을주의 깊게 고려하십시오.SystemD이 글을 쓰는 시점에서 기본 타임 아웃은 90 초이며 그 시간 내에 준비를 알리지 않는 프로세스를 죽일 것입니다. 그러나 aPostgreSQL스타트 업에서 충돌 복구를 수행 해야하는 서버는 준비되기까지 훨씬 더 오래 걸릴 수 있습니다. 제안 된 값 0은 타임 아웃 로직을 비활성화합니다.

  • onnetbsd, 사용freebsd또는Linux선호도에 따라 스크립트 시작.

  • 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.

스포츠 토토 결과가 실행되는 동안PID파일에 저장됩니다postmaster.pid데이터 디렉토리에서. 이는 동일한 데이터 디렉토리에서 여러 서버 인스턴스가 실행되는 것을 방지하는 데 사용되며 서버를 종료하는 데 사용될 수도 있습니다.

18.3.1. 서버 시작 장애

서버가 시작하지 못하는 몇 가지 일반적인 이유가 있습니다. 서버의 로그 파일을 확인하거나 (표준 출력 또는 표준 오류를 리디렉션하지 않고) 직접 시작하고 어떤 오류 메시지가 나타나는지 확인하십시오. 아래에서 우리는 가장 일반적인 오류 메시지를 더 자세히 설명합니다.

로그 : IPv4 소켓 바인딩 할 수 없습니다 : 이미 사용중인 주소
힌트 : 다른 우체국 장이 이미 포트 5432에서 실행 중입니까? 그렇지 않다면 몇 초 동안 기다렸다가 다시 시도하십시오.
치명적 : TCP/IP 청취 소켓을 만들 수 없음

이것은 일반적으로 제안한 것을 의미합니다. 이미 실행중인 동일한 포트에서 다른 서버를 시작하려고했습니다. 그러나 커널 오류 메시지가 아닌 경우이미 사용중인 주소또는 그 변형의 일부는 다른 문제가있을 수 있습니다. 예를 들어, 예약 된 포트 번호에서 서버를 시작하려고하면 다음과 같은 것을 그릴 수 있습니다.

$Postgres -P 666로그 : IPv4 소켓 바인딩 할 수 없습니다 : 권한 거부
힌트 : 다른 우체국 장이 이미 포트 666에서 실행 중입니까? 그렇지 않다면 몇 초 동안 기다렸다가 다시 시도하십시오.
치명적 : TCP/IP 청취 소켓을 만들 수 없음

a 메시지 :

Fatal : 공유 메모리 세그먼트를 생성 할 수 없습니다 : 무효 인수
세부 사항 : 실패 시스템 호출은 shmget (key = 5440001, size = 4011376640, 03600)입니다.

아마도 공유 메모리 크기에 대한 커널의 제한이 작업 영역보다 작다는 것을 의미합니다.PostgreSQL(이 예에서는 4011376640 바이트)를 작성하려고합니다. 또는 시스템 V 스타일 공유 메모리 지원이 커널에 구성되지 않았 음을 의미 할 수 있습니다. 임시 해결 방법으로 정상보다 작은 버퍼 수보다 작은 서버를 시작할 수 있습니다 (shared_buffers). 결국 허용 공유 메모리 크기를 늘리기 위해 커널을 재구성하려고합니다. 동일한 컴퓨터에서 여러 서버를 시작하려고 할 때이 메시지가 표시 될 수도 있습니다. 요청 된 총 공간이 커널 제한을 초과하면

오류와 같은 오류 :

치명적 : 세마포어를 만들 수 없음 : 장치에 남은 공간이 없습니다.
세부 사항 : 실패 시스템 호출은 Semget (5440126, 17, 03600)입니다.

donot디스크 공간이 부족한 것을 의미합니다. 그것은 당신의 커널의 수에 대한 제한을 의미합니다System Vsemaphores는 숫자보다 작습니다PostgreSQL생성을 원합니다. 위와 같이, 허용 된 연결 수가 줄어든 스포츠 토토 결과를 시작하여 문제를 해결할 수 있습니다 (.max_connections), 그러나 결국 커널 제한을 늘리고 싶을 것입니다.

당신이 얻는 경우"불법 시스템 전화"오류, 공유 메모리 나 세마포어가 커널에서 전혀 지원되지 않을 수 있습니다. 이 경우 유일한 옵션은 이러한 기능을 활성화하기 위해 커널을 재구성하는 것입니다.

구성에 대한 세부 사항System V IPC시설은에 나와 있습니다.섹션 18.4.1.

18.3.2. 클라이언트 연결 문제

클라이언트 측에서 가능한 오류 조건은 상당히 다양하고 응용 프로그램에 따라 다르지만 그 중 일부는 서버가 시작된 방식과 직접 관련이있을 수 있습니다. 아래에 표시된 조건 이외의 조건은 해당 클라이언트 응용 프로그램으로 문서화해야합니다.

PSQL : 서버에 연결할 수 없습니다 : 연결 거부
        서버가 호스트 "Server.joe.com"에서 실행되고 수락합니다
        포트 5432의 TCP/IP 연결?

이것은 일반입니다"나는"과 대화 할 스포츠 토토 결과를 찾을 수 없었다.실패. TCP/IP 통신이 시도 될 때 위의 것 같습니다. 일반적인 실수는 TCP/IP 연결을 허용하도록 스포츠 토토 결과를 구성하는 것을 잊어 버리는 것입니다.

또는 로컬 서버와 유닉스 도메인 소켓 통신을 시도 할 때 이것을 얻을 수 있습니다 :

PSQL : 서버에 연결할 수 없음 : 그러한 파일 또는 디렉토리가 없습니다.
        서버가 로컬로 실행되고 수락됩니다
        Unix 도메인 소켓의 연결 "/tmp/.s.pgsql.5432"?

마지막 줄은 클라이언트가 올바른 위치에 연결하려고하는지 확인하는 데 유용합니다. 실제로 스포츠 토토 결과가 실행되지 않으면 커널 오류 메시지는 일반적으로입니다.연결 거부또는그러한 파일 또는 디렉토리 없음, 그림. (그것을 깨닫는 것이 중요합니다연결 거부이 맥락에서not스포츠 토토 결과가 연결 요청을 가져 와서 거부했음을 의미합니다. 이 경우는 다른 메시지를 생성합니다.토토 결과 : 문서 : 9.6 : 인증 문제.)과 같은 기타 오류 메시지연결 시간 출력네트워크 연결 부족과 같은 더 근본적인 문제를 나타낼 수 있습니다.