34.1. 데이터베이스 윈 토토 제어 기능#

다음 기능은 A와 윈 토토하는 것을 처리합니다PostgreSQL백엔드 서버. 응용 프로그램 프로그램에는 한 번에 몇 가지 백엔드 윈 토토이 열릴 수 있습니다.pgconn객체. 함수에서 얻은pqconnectdb, pqconnectdbparams또는pqsetdblogin. 이러한 기능은 아마도 널이 아닌 객체 포인터를 항상 반환 할 것입니다. 아마도 메모리가 너무 적지 않는 한pgconn개체. 그만큼pqstatus쿼리가 윈 토토 객체를 통해 전송되기 전에 성공적인 윈 토토에 대한 리턴 값을 확인하려면 함수가 호출되어야합니다.

경고

신뢰할 수없는 사용자가 채택되지 않은 데이터베이스에 액세스 할 수있는 경우보안 스키마 사용 패턴, 공개적으로 쓰레기 스키마를 제거하여 각 세션을 시작하십시오search_path. 하나는 매개 변수 키워드를 설정할 수 있습니다옵션가치-csearch_path =. 또는 발행 할 수 있습니다pqExec (conn, "pg_catalog.set_config ( 'search_path', '', false)"을 선택하십시오.윈 토토 후. 이 고려 사항은libpq; 임의의 SQL 명령을 실행하기 위해 모든 인터페이스에 적용됩니다.

경고

UNIX에서 열린 LIBPQ 윈 토토로 프로세스를 포킹하면 부모 및 자식 프로세스가 동일한 소켓 및 운영 체제 리소스를 공유하기 때문에 예측할 수없는 결과를 초래할 수 있습니다. 이러한 이유로, 그러한 사용은 권장되지 않지만exec새 실행 파일을로드하기 위해 아동 프로세스에서 안전합니다.

pqconnectdbparams #

데이터베이스 서버에 새로 윈 토토됩니다.

pgconn *pqconnectdbparams (const char *const *키워드,

이 기능은 2에서 가져온 매개 변수를 사용하여 새 데이터베이스 윈 토토을 엽니 다.null-종결 배열. 첫 번째,키워드는 문자열 배열로 정의되며 각각은 핵심 단어입니다. 두 번째,, 각 키 단어의 값을 제공합니다. 같지 않은pqsetdblogin아래에서는 기능 서명을 변경하지 않고 매개 변수 세트를 확장 할 수 있으므로이 기능 (또는 비 차단 아날로그 사용PQConnectStartParamsandPQConnectPoll) 새 응용 프로그램 프로그래밍에 선호됩니다.

현재 인식 된 매개 변수 키워드는에 나열되어 있습니다.섹션 34.1.2.

전달 된 배열은 모든 기본 매개 변수를 사용하기 위해 비어 있거나 하나 이상의 매개 변수 설정을 포함 할 수 있습니다. 길이가 일치해야합니다.null입력키워드배열. 또한비와 관련된 입력null 키워드Entry isnull또는 빈 문자열, 해당 항목이 무시되고 다음 배열 항목 쌍으로 처리됩니다.

언제expand_dbname는 0이 아니며 첫 번째 값dbname키워드가 확인되어 A윈 토토 문자열. 그렇다면확장문자열에서 추출한 개별 윈 토토 매개 변수로. 값은 동일한 부호를 포함하는 경우 데이터베이스 이름이 아닌 윈 토토 문자열로 간주됩니다 (=) 또는 URI 체계 지정자로 시작합니다. (윈 토토 문자열 형식에 대한 자세한 내용은섹션 34.1.1.) 첫 번째 발생dbname이런 식으로 처리됩니다. 모든 후속dbname매개 변수는 일반 데이터베이스 이름으로 처리됩니다.

일반적으로 매개 변수 배열은 처음부터 끝까지 처리됩니다. 키워드가 반복되면 마지막 값 (그렇지 않습니다null또는 빈)가 사용됩니다. 이 규칙은 특히 윈 토토 문자열에서 발견 된 핵심 단어가에 나타나는 것과 충돌 할 때 적용됩니다.키워드배열. 따라서 프로그래머는 윈 토토 문자열에서 가져온 값에 의해 배열 항목이 재정의 할 수 있는지 또는 재정의 할 수 있는지 결정할 수 있습니다.dbnameConnection String의 필드에 의해 입력을 무효화 할 수 있으며, 그 결과 그 필드는 이후에 나타나는 배열 항목에 의해 재정의됩니다.dbname(그러나 그 항목이 비어 있지 않은 값을 공급하는 경우에만)

모든 배열 항목과 확장 된 윈 토토 문자열을 처리 한 후에는 UNSET를 유지하는 윈 토토 매개 변수는 기본값으로 채워집니다. UNSET 매개 변수의 해당 환경 변수 인 경우 (참조섹션 34.15)가 설정되어 있고 그 값이 사용됩니다. 환경 변수가 설정되지 않으면 매개 변수의 내장 기본값이 사용됩니다.

pqconnectdb #

데이터베이스 서버에 새로 윈 토토됩니다.

pgconn *pqconnectdb (const char *conninfo);

이 기능은 문자열에서 가져온 매개 변수를 사용하여 새 데이터베이스 윈 토토을 엽니 다Conninfo.

전달 된 문자열은 모든 기본 매개 변수를 사용하기 위해 비어 있거나 Whitespace로 분리 된 하나 이상의 매개 변수 설정을 포함하거나 A를 포함 할 수 있습니다.uri. 보다섹션 34.1.1자세한 내용.

pqsetdblogin #

데이터베이스 서버에 새로 윈 토토됩니다.

pgconn *pqsetdblogin (const char *pghost,

이것은의 전임자입니다.pqconnectdb고정 된 매개 변수 세트가 있습니다. 누락 된 매개 변수가 항상 기본값을 사용한다는 점을 제외하고는 동일한 기능이 있습니다.null또는 기본적으로 고정 될 고정 된 매개 변수 중 하나에 대한 빈 문자열.

dbname포함=서명 또는 유효한 윈 토토uri접두사, A로 간주됩니다.Conninfo통과 된 것과 정확히 같은 방식으로 문자열pqconnectdb, 나머지 매개 변수는 지정된대로 적용됩니다.pqconnectdbparams.

pgtty더 이상 사용되지 않고 전달 된 값은 무시됩니다.

pqsetdb #

데이터베이스 서버에 새로 윈 토토됩니다.

pgconn *pqsetdb (char *pghost,

이것은 호출하는 매크로입니다pqsetdblogin로그인andPWD매개 변수. 아주 오래된 프로그램과의 역 호환성을 위해 제공됩니다.

PQConnectStartParams
PQConnectStart
PQConnectPoll #

비 블로킹 방식으로 데이터베이스 서버에 윈 토토합니다.

PGCONN *PQCONNECTSTARTPARAMS (const char *const *키워드,

이 세 가지 함수는 데이터베이스 서버에 윈 토토을 열어 응용 프로그램의 실행 스레드가 원격 I/O에서 차단되지 않도록 사용됩니다. 이 접근법의 요점은 I/O가 완료 될 대기가 응용 프로그램의 기본 루프에서 내부가 아닌 내부가 아닌 내부에서 발생할 수 있다는 것입니다.pqconnectdbparams또는pqconnectdb, 따라서 응용 프로그램은 다른 활동과 병렬 로이 작업을 관리 할 수 ​​있습니다.

withPQConnectStartParams18561_18630키워드and배열 및 제어expand_dbname, 위에서 설명한대로pqconnectdbparams.

withPQConnectStart, 데이터베이스 윈 토토은 문자열에서 가져온 매개 변수를 사용하여 만들어집니다Conninfo위에서 설명한대로pqconnectdb.

아니PQConnectStartParamsNORPQConnectStartNORPQConnectPoll여러 제한 사항이 충족되는 한 차단됩니다.

  • thehostaddr매개 변수는 DNS 쿼리가 만들어지지 않도록 적절하게 사용해야합니다. 이 매개 변수의 문서를 참조하십시오.섹션 34.1.2자세한 내용.

  • 전화하면pqtrace, 추적하는 스트림 객체가 차단되지 않도록하십시오.

  • 전화하기 전에 소켓이 적절한 상태인지 확인해야합니다PQConnectPoll, 아래 설명 된대로.

비 차단 윈 토토 요청을 시작하려면 전화PQConnectStart또는PQConnectStartParams. 결과가 null이면libpq새로운 것을 할당 할 수 없었습니다pgconn구조. 그렇지 않으면 유효한pgconn포인터가 반환되었습니다 (아직 데이터베이스에 대한 유효한 윈 토토을 나타내지는 않지만). 다음 호출pqstatus (conn). 결과가 인 경우Connection_Bad, 일반적으로 유효하지 않은 윈 토토 매개 변수로 인해 윈 토토 시도가 이미 실패했습니다.

ifPQConnectStart또는PQConnectStartParams성공, 다음 단계는 투표하는 것입니다libpq윈 토토 순서를 진행할 수 있도록. 사용pqsocket (conn)데이터베이스 윈 토토 기본 소켓의 설명자를 얻으려면. (주의 : 소켓이 동일하게 남아 있다고 가정하지 마십시오PQConnectPoll전화.) 루프 : ifpqconnectpoll (conn)마지막 반품pgres_polling_reading, 소켓이 읽을 준비가 될 때까지 기다리십시오 (select (), poll ()또는 유사한 시스템 기능). 그런 다음 호출pqconnectpoll (conn)다시. 반대로, ifpqconnectpoll (conn)마지막 반품pgres_polling_writing, 소켓이 쓸 준비가 될 때까지 기다렸다가 전화pqconnectpoll (conn)다시. 첫 번째 반복에서, 즉 아직 전화하지 않은 경우PQConnectPoll, 마지막으로 반환 된 것처럼 행동pgres_polling_writing. 이 루프를 계속할 때까지pqconnectpoll (conn)반환pgres_polling_failed, 윈 토토 절차가 실패했음을 나타내거나pgres_polling_ok, 윈 토토이 성공적으로 이루어 졌음을 나타냅니다.

윈 토토하는 동안 언제든지 윈 토토 상태를 호출하여 확인할 수 있습니다pqstatus. 이 호출이 반환되는 경우Connection_Bad, 윈 토토 절차가 실패했습니다. 통화가 반환되는 경우Connection_ok, 그러면 윈 토토이 준비되었습니다. 이 두 상태는의 반환 값에서 똑같이 감지 할 수 있습니다.PQConnectPoll, 위에서 설명합니다. 다른 상태는 또한 비동기 윈 토토 절차 중에 발생할 수 있습니다.

Connection_started #

윈 토토이 이루어지기를 기다리고 있습니다.

Connection_Made #

윈 토토 확인; 보내기를 기다리고 있습니다.

Connection_awaiting_Response #

서버에서 응답을 기다리고 있습니다.

Connection_auth_ok #

인증을 받았습니다. 백엔드 스타트 ​​업을 기다리고 있습니다.

Connection_SSL_STARTUP #

SSL 암호화 협상.

Connection_Setenv #

환경 중심 매개 변수 설정 협상.

Connection_check_writable #

윈 토토이 트랜잭션 쓰기를 처리 할 수 ​​있는지 확인합니다.

Connection_Consume #

윈 토토에 나머지 응답 메시지 소비.

이러한 상수는 비록 (호환성을 유지하기 위해) 유지되지만 응용 프로그램은 특정 순서 또는 전혀, 또는 항상 문서화 된 값 중 하나 인 상태에 의존해서는 안됩니다. 응용 프로그램은 다음과 같은 일을 할 수 있습니다.

스위치 (pqstatus (conn))

theConnect_Timeout사용 할 때 윈 토토 매개 변수가 무시됩니다PQConnectPoll; 과도한 시간이 경과했는지 여부를 결정하는 것은 응용 프로그램의 책임입니다.PQConnectStart뒤 이후PQConnectPoll루프는와 같습니다.pqconnectdb.

PQConnectStart또는PQConnectStartParams널 비 널 포인터를 반환하면 전화해야합니다pqfinish완료되면 구조와 관련 메모리 블록을 처리하기 위해. 윈 토토 시도가 실패하거나 포기하더라도 수행해야합니다.

pqconndefaults #

기본 윈 토토 옵션을 반환합니다.

pqconninfooption *pqconndefaults (void);

윈 토토 옵션 배열을 반환합니다. 이것은 가능한 모든 것을 결정하는 데 사용할 수 있습니다pqconnectdb옵션 및 현재 기본값 값. 반환 값은 배열을 가리 킵니다pqconninfooption구조.키워드포인터. 메모리를 할당 할 수없는 경우 널 포인터가 반환됩니다.val필드)는 환경 변수 및 기타 컨텍스트에 따라 다릅니다. 누락되거나 잘못된 서비스 파일은 조용히 무시됩니다.

옵션 배열을 처리 한 후 옵션을 전달하여PQCONNINFOFREE. 이 작업이 완료되지 않으면 각 호출마다 소량의 메모리가 유출됩니다pqconndefaults.

PQCONNINFO #

라이브 윈 토토이 사용하는 윈 토토 옵션을 반환합니다.

pqconninfooption *pqconninfo (pgconn *conn);

윈 토토 옵션 배열을 반환합니다. 이것은 가능한 모든 것을 결정하는 데 사용할 수 있습니다pqconnectdb옵션 및 서버에 윈 토토하는 데 사용 된 값. 반환 값은 배열을 가리 킵니다pqconninfooption구조.키워드포인터. 위의 모든 노트pqconndefaults또한 결과에 적용PQCONNINFO.

PQCONNINFOPARSE #

제공된 윈 토토 문자열에서 구문 분석 옵션을 반환합니다.

pqconninfooption *pqconninfoparse (const char *conninfo, char ** errmsg);

윈 토토 문자열을 구문 분석하고 결과 옵션을 배열로 반환합니다. 또는 반환null윈 토토 문자열에 문제가있는 경우. 이 기능은를 추출하는 데 사용될 수 있습니다.pqconnectdb제공된 윈 토토 문자열의 옵션. 반환 값은 배열을 가리 킵니다pqconninfooption구조.키워드포인터.

모든 법적 옵션이 결과 배열에 존재하지만pqconninfooption윈 토토 문자열에 존재하지 않는 옵션의 경우val설정null; 기본값은 삽입되지 않습니다.

iferrmsgnull,*errmsg로 설정되었습니다null성공에 관한 것, 그렇지 않으면Malloc'd 오류 문자열 문제를 설명합니다. (또한 가능합니다*errmsgnull그리고 반환 할 함수null; 이것은 메모리 외 상태를 나타냅니다.)

옵션 배열을 처리 한 후 옵션을 전달하여PQCONNINFOFREE. 이 작업이 완료되지 않으면 각 호출마다 일부 메모리가 유출됩니다PQCONNINFOPARSE. 반대로 오류가 발생하면errmsgnull,를 사용하여 오류 문자열을 제거하십시오PQFREEMEM.

pqfinish #

서버 윈 토토을 닫습니다. 또한에 사용 된 메모리를 해방합니다.pgconn개체.

void pqfinish (pgconn *conn);

서버 윈 토토 시도가 실패하더라도 (pqstatus), 응용 프로그램은 전화해야합니다pqfinishpgconn개체. 그만큼pgconn포인터는 다시 사용해서는 안됩니다pqfinish호출.

pqreset #

통신 채널을 서버로 재설정합니다.

void pqreset (pgconn *conn);

이 함수는 서버에 대한 윈 토토을 닫고 이전에 사용한 모든 매개 변수를 사용하여 새로운 윈 토토을 설정하려고 시도합니다. 작업 윈 토토이 손실되면 오류 복구에 유용 할 수 있습니다.

PQRESETSTART
PQRESETPOLL #

블로킹하지 않은 방식으로 통신 채널을 서버로 재설정합니다.

int pqresetstart (pgconn *conn);

이 기능은 서버에 대한 윈 토토을 닫고 이전에 사용한 동일한 매개 변수를 사용하여 새로운 윈 토토을 설정하려고 시도합니다. 작업 윈 토토이 손실되면 오류 복구에 유용 할 수 있습니다.pqreset(위) 비 블로킹 방식으로 작용한다는 점에서. 이러한 기능은와 동일한 제한을 겪습니다.PQConnectStartParams, PQConnectStartandPQConnectPoll.

윈 토토 재설정을 시작하려면 CallPQRESETSTART. 0을 반환하면 재설정이 실패했습니다.PQRESETPOLL|PQConnectPoll.

pqpingparams #

pqpingparams서버의 상태를보고합니다. 윈 토토 매개 변수를 동일한 윈 토토 매개 변수와 동일하게 허용합니다.pqconnectdbparams, 위에서 설명합니다. 서버 상태를 얻기 위해 올바른 사용자 이름, 암호 또는 데이터베이스 이름 값을 제공 할 필요는 없습니다.

pgping pqpingparams (const char * const * 키워드,

함수는 다음 값 중 하나를 반환합니다.

pqping_ok #

서버가 실행 중이며 윈 토토을 수락하는 것처럼 보입니다.

pqping_reject #

서버가 실행 중이지만 윈 토토을 방해하는 상태 (시작, 종료 또는 충돌 복구)

pqping_no_response #

서버에 연락 할 수 없습니다. 이는 서버가 실행되지 않았거나 주어진 윈 토토 매개 변수 (예 : 잘못된 포트 번호)에 문제가 있거나 네트워크 윈 토토 문제 (예 : 윈 토토 요청을 차단하는 방화벽)가 있음을 나타냅니다..

pqping_no_attemp #

제공된 매개 변수가 분명히 부정확하거나 클라이언트 측 문제가 있었기 때문에 서버에 연락하려는 시도가 없었습니다 (예 : 메모리에서)..

pqping #

pqping서버의 상태를보고합니다. 윈 토토 매개 변수를 동일한 윈 토토 매개 변수와 동일하게 허용합니다.pqconnectdb, 위에서 설명합니다. 서버 상태를 얻기 위해 올바른 사용자 이름, 암호 또는 데이터베이스 이름 값을 제공 할 필요는 없습니다.

pgping pqping (const char *conninfo);

반환 값은와 동일합니다.pqpingparams.

PQSETSSLKEYPASSHOOK_OPENSSL #

PQSETSSLKEYPASSHOOK_OPENSSL응용 프로그램을 재정의하는libpq's암호화 된 클라이언트 인증서 키 파일의 기본 처리사용sslpassword또는 대화식 프롬프트.

void pqsetsslkeypasshook_openssl (pqsslkeypasshook_openssl_type hook);

응용 프로그램은 서명이있는 콜백 함수에 포인터를 전달합니다.

int Callback_fn (char *buf, int size, pgconn *conn);

whylibpq그런 다음 호출대신기본값pqdefaultsslkeypasshook_openssl핸들러. 콜백은 키의 비밀번호를 결정하고 결과 버퍼에 복사해야합니다buf크기크기. 문자열buf무효가 종결되어야합니다. 콜백은 저장된 비밀번호의 길이를 반환해야합니다.buf널 터미네이터 제외. 실패시 콜백이 설정되어야합니다buf [0] = '\ 0'및 반환 0. 참조pqdefaultsslkeypasshook_opensslinlibpq의 예제 소스 코드.

사용자가 명시 적 키 위치를 지정하면 경로가conn-> sslkey콜백이 호출 될 때. 기본 키 경로를 사용하는 경우 비어 있습니다.OpenSSL비밀번호 콜백 또는 자신의 취급을 정의합니다.

앱 콜백은 처리되지 않은 사례를 위임하여pqdefaultsslkeypasshook_openssl또는 먼저 전화하여 0을 반환하거나 완전히 무시하면 다른 것을 시도하십시오.

콜백필수예외와 함께 정상 흐름 제어 탈출,longjmp (...)등. 정상적으로 반환해야합니다.

PQGETSSLKEYPASSHOOK_OPENSSL #

PQGETSSLKEYPASSHOOK_OPENSSL현재 클라이언트 인증서 키 비밀번호 후크를 반환합니다.null없는 경우.

pqsslkeypasshook_openssl_type pqgetsslkeypasshook_openssl (void);

34.1.1. 윈 토토 문자열#

여러libpq함수는 사용자 지정 문자열을 구문 분석하여 윈 토토 매개 변수를 얻습니다. 이 문자열에는 2 개의 허용 형식이 있습니다 : 일반 키워드/가치 문자열 및 URI.RFC 3986-다중 호스트 윈 토토 문자열이 아래에 설명 된대로 허용됩니다.

34.1.1.1. 키워드/가치 윈 토토 문자열#

키워드/값 형식에서 각 매개 변수 설정은 양식에 있습니다키워드 = value, 설정 사이의 공간이있는. 설정의 동일한 부호 주변의 공간은 선택 사항입니다.keyword = 'value'. 값 내의 단일 따옴표와 백 슬래시는 백 슬래시로 탈출해야합니다.\ 'and\\.

예 :

host = localhost port = 5432 dbname = mydb connect_timeout = 10

인식 된 매개 변수 키워드는에 나열되어 있습니다.섹션 34.1.2.

34.1.1.2. 윈 토토 uris#

윈 토토을위한 일반 양식uriIS :

postgresql : // [userspec@] [Hostspec] [/dbname] [?Paramspec]

여기서userspecIS :

사용자[:비밀번호]

andHostspecIS :

[host] [:포트] [,...]

andParamspecIS :

이름=value[& ...]

theuri체계 지정자가 될 수 있습니다postgresql : //또는Postgres : //. 나머지 각각uri부품은 선택 사항입니다. 다음 예제는 유효 함을 보여줍니다uri구문 :

postgresql : //

일반적으로uri대안으로 이름이 지정된 매개 변수로 제공 될 수 있습니다. 예를 들어:

postgresql : // mydb? host = localhost & port = 5433

모든 이름의 매개 변수는 나열된 키워드와 일치해야합니다섹션 34.1.2, JDBC 윈 토토과의 호환성을 제외하고uris, 인스턴스ssl = true로 번역sslmode = require.

윈 토토uri로 인코딩해야합니다퍼센트 인코딩부품에 특별한 의미를 가진 기호가 포함 된 경우. 다음은 동등한 부호 (의 예입니다.=)%3D%20:

postgresql : // user@localhost : 5433/mydb? 옵션 = -c%20Synchronous_commit%3doff

호스트 부분은 호스트 이름 또는 IP 주소 일 수 있습니다. IPv6 주소를 지정하려면 정사각형 괄호 안에 둘러싸여 있습니다.

postgresql : // [2001 : db8 :: 1234]/database

호스트 부분은 매개 변수에 대해 설명 된대로 해석됩니다host. 특히, 호스트 부품이 비어 있거나 절대 경로 이름처럼 보이는 경우 Unix-Domain 소켓 윈 토토이 선택됩니다. 그렇지 않으면 TCP/IP 윈 토토이 시작됩니다.

postgresql : // dbname? host =/var/lib/postgresql

단일 URI에서 각각 옵션 포트 구성 요소가있는 여러 호스트 구성 요소를 지정할 수 있습니다. 양식의 uripostgresql : // host1 : port1, host2 : port2, host3 : port3/양식의 윈 토토 문자열과 동일합니다host = host1, host2, host3 port = port1, port2, port3. 아래에 설명 된 바와 같이, 각 호스트는 윈 토토이 성공적으로 설정 될 때까지 차례로 시도됩니다.

34.1.1.3. 여러 호스트 지정#

주어진 순서로 시도 할 수 있도록 여러 호스트를 지정할 수 있습니다. 키워드/값 형식에서host, hostaddr포트옵션은 쉼표로 구분 된 값 목록을 허용합니다. 예를 들어 첫 번째 지정된 각 옵션에 동일한 수의 요소가 제공되어야합니다.hostaddr첫 번째 호스트 이름, 두 번째 호스트에 해당합니다.hostaddr두 번째 호스트 이름 등에 해당합니다. 예외로, 단 하나만포트지정되어 있으며 모든 호스트에 적용됩니다.

윈 토토 URI 형식에서 다중 내용을 나열 할 수 있습니다호스트 : 포트쉼표로 분리 된 쌍hostURI의 구성 요소

두 형식의 두 형식에서는 단일 호스트 이름이 여러 네트워크 주소로 변환 될 수 있습니다. 이것의 일반적인 예는 IPv4와 IPv6 주소가 모두있는 호스트입니다.

여러 호스트가 지정되거나 단일 호스트 이름이 여러 주소로 변환되면 모든 호스트와 주소가 성공할 때까지 순서대로 시도됩니다. 호스트에 도달 할 수없는 경우 윈 토토이 실패합니다.

암호 파일을 사용하는 경우 호스트에 대해 다른 암호를 가질 수 있습니다. 다른 모든 윈 토토 옵션은 목록의 모든 호스트에 대해 동일합니다.

34.1.2. 매개 변수 키워드#

현재 인식 된 매개 변수 키워드는 다음과 같습니다.

host #

윈 토토할 호스트 이름.호스트 이름이 절대 경로 이름처럼 보이면 TCP/IP 통신 대신 UNIX- 도메인 커뮤니케이션을 지정합니다. 값은 소켓 파일이 저장되는 디렉토리의 이름입니다.@, 초록 네임 스페이스 (현재 Linux 및 Windows에서 지원되는)에서 Unix-Domain 소켓으로 간주됩니다. 기본 동작host지정되지 않았거나 비어 있지 않으면 유닉스 도메인 소켓에 윈 토토하는 것입니다in/tmp(또는 지정된 소켓 디렉토리PostgreSQL건축). Windows에서 기본값은에 윈 토토하는 것입니다.LocalHost.

쉼표로 구분 된 호스트 이름 목록도 허용되며,이 경우 목록의 각 호스트 이름이 순서대로 시도됩니다. 목록의 빈 항목은 위에서 설명한대로 기본 동작을 선택합니다.섹션 34.1.1.3자세한 내용.

hostaddr #

윈 토토할 호스트의 숫자 IP 주소. 표준 IPv4 주소 형식 (예 :이어야합니다.172.28.40.9. 컴퓨터가 IPv6을 지원하는 경우 해당 주소를 사용할 수도 있습니다.host해당 IP 주소를 찾기 위해 찾아 볼 것입니다. 또는 ifhostIP 주소를 지정하면 해당 값이 직접 사용됩니다.

사용hostaddr애플리케이션이 호스트 이름 조회를 피할 수 있도록합니다. 이는 시간 제약 조건이있는 응용 프로그램에서 중요 할 수 있습니다. 그러나 GSSAPI 또는 SSPI 인증 방법 및에 호스트 이름이 필요합니다.verify-fullSSL 인증서 확인. 다음 규칙이 사용됩니다.

  • ifhosthostaddr, 호스트 이름 조회가 발생합니다. (사용시PQConnectPoll, 조회는 발생할 때 발생합니다.PQConnectPoll먼저이 호스트 이름을 고려하면 원인이 될 수 있습니다PQConnectPoll상당한 시간 동안 차단합니다.)

  • ifhostaddrhost, 값hostaddr서버 네트워크 주소를 제공합니다. 인증 방법에 호스트 이름이 필요한 경우 윈 토토 시도가 실패합니다.

  • 둘 다hostandhostaddr지정되어 있습니다.hostaddr서버 네트워크 주소를 제공합니다. 의 값host인증 메소드가 요구하지 않는 한 무시됩니다.이 경우 호스트 이름으로 사용됩니다.

인증이 실패 할 가능성이 높습니다host네트워크 주소에서 서버 이름이 아닙니다hostaddr. 또한, 둘 다hostandhostaddr지정되어 있습니다.host비밀번호 파일에서 윈 토토을 식별하는 데 사용됩니다 (참조섹션 34.16).

쉼표로 구분 된 목록hostaddr값도 허용되며,이 경우 목록의 각 호스트는 순서대로 시도됩니다. 목록의 빈 항목으로 인해 해당 호스트 이름이 사용되거나 비어있는 경우 기본 호스트 이름도 사용됩니다.섹션 34.1.1.3자세한 내용.

호스트 이름 또는 호스트 주소가 없으면libpq로컬 Unix-Domain 소켓을 사용하여 윈 토토합니다. 또는 Windows에서는 윈 토토을 시도합니다LocalHost.

포트 #

서버 호스트에서 윈 토토할 포트 번호 또는 Unix-Domain 윈 토토을위한 소켓 파일 이름 확장.여러 호스트가 주어진 경우host또는hostaddr매개 변수,이 매개 변수는 호스트 목록과 동일한 길이의 쉼표로 구분 된 포트 목록을 지정하거나 모든 호스트에 사용할 단일 포트 번호를 지정할 수 있습니다. 빈 문자열 또는 쉼표로 구분 된 목록의 빈 항목은시 설정된 기본 포트 번호를 지정합니다.PostgreSQL건설되었습니다.

dbname #

데이터베이스 이름. 기본값은 사용자 이름과 동일합니다.섹션 34.1.1그에 대한 자세한 내용은

사용자 #

PostgreSQL사용자 이름을 윈 토토할 수 있습니다. 기본값은 응용 프로그램을 실행하는 사용자의 운영 체제 이름과 동일합니다.

비밀번호 #

서버가 암호 인증을 요구하는 경우 사용할 비밀번호.

Passfile #

비밀번호를 저장하는 데 사용되는 파일의 이름을 지정합니다 (참조섹션 34.16). 기본값으로~/.pgpass또는%appdata%\ postgresql \ pgpass.confMicrosoft Windows에서. (이 파일이 존재하지 않으면 오류 가보고되지 않습니다.)

require_auth #

클라이언트가 서버에서 요구하는 인증 방법을 지정합니다. 서버가 필수 메소드를 사용하여 클라이언트를 인증하거나 서버에서 인증 핸드 셰이크가 완전히 완료되지 않은 경우 윈 토토이 실패합니다.

a를 추가하면 메소드가 무효화 될 수 있습니다.!접두사,이 경우 서버는아님나열된 방법을 시도하십시오. 다른 방법이 허용되며 서버는 클라이언트를 전혀 인증하지 않을 수 있습니다.any나열된 부정 방법의. 부정 및 음성이없는 양식은 동일한 설정에서 결합되지 않을 수 있습니다.

최종 특별 사례로서없음메소드는 서버가 인증 문제를 사용하지 않아야합니다. (어떤 형태의 인증을 요구하기 위해 부정 할 수도 있습니다.)

다음 방법이 지정 될 수 있습니다.

비밀번호

서버는 일반 텍스트 비밀번호 인증을 요청해야합니다.

MD5

서버는 MD5 해시 비밀번호 인증을 요청해야합니다.

GSS

서버는 Kerberos 핸드 셰이크를 통해를 요청해야합니다.GSSAPI또는 설정GSS-암호화 채널 (참조gssencmode).

SSPI

서버는 Windows를 요청해야합니다SSPI인증.

Scram-Sha-256

서버는 클라이언트와의 SCRAM-SHA-256 인증 교환을 성공적으로 완료해야합니다.

없음

서버는 클라이언트에게 인증 교환을 신속하게하지 않아야합니다. (TLS를 통한 클라이언트 인증서 인증이나 암호화 된 전송을 통한 GSS 인증을 금지하지는 않습니다.)

Channel_Binding #

이 옵션은 클라이언트의 채널 바인딩 사용을 제어합니다. 설정요구 사항윈 토토이 채널 바인딩을 사용해야한다는 것을 의미합니다.선호클라이언트가 가능한 경우 채널 바인딩을 선택하고비활성화채널 바인딩 사용을 방지합니다. 기본값은선호ifPostgreSQLSSL 지원으로 컴파일됩니다. 그렇지 않으면 기본값은입니다.비활성화.

채널 바인딩은 서버가 클라이언트에 자체적으로 인증하는 방법입니다. SSL 윈 토토을 통해서만 지원됩니다PostgreSQL11 이상을 사용하는 서버Scram인증 방법.

Connect_Timeout #

몇 초 만에 대기 대기 시간 (소수 정수로 쓰기,10). 0, 음수 또는 지정되지 않은 것은 무기한 대기를 의미합니다.12. 이 시간 초과는 각 호스트 이름 또는 IP 주소에 별도로 적용됩니다.Connect_Timeout5, 5 초 이내에 윈 토토되지 않으면 각 호스트가 시간을 초과하므로 윈 토토을 기다리는 총 시간은 최대 10 초가 될 수 있습니다.

client_encoding #

이것은를 설정합니다.client_encoding이 윈 토토의 구성 매개 변수. 해당 서버 옵션으로 허용되는 값 외에도 사용할 수 있습니다auto클라이언트의 현재 로케일에서 올바른 인코딩을 결정하려면 (LC_CTYPEUNIX 시스템의 환경 변수).

옵션 #

Connection Start에서 서버로 보낼 명령 줄 옵션을 지정합니다. 예를 들어, 이것을 설정-C geqo = Off세션의 값을 설정합니다geqo매개 변수 toOFF. 이 문자열 내의 공간은 백 슬래시로 탈출하지 않는 한 명령 줄 인수를 분리하는 것으로 간주됩니다 (\); 쓰다\\문자 그대로의 백 슬래시를 나타냅니다. 사용 가능한 옵션에 대한 자세한 설명을 보려면20 장.

application_name #

값을 지정application_name구성 매개 변수.

fallback_application_name #

application_name구성 매개 변수. 이 값은 값이 제공되지 않으면 사용됩니다.application_name윈 토토 매개 변수 또는를 통해pgappname환경 변수. 폴백 이름을 지정하는 것은 기본 응용 프로그램 이름을 설정하지만 사용자가 재정의 할 수있는 일반 유틸리티 프로그램에서 유용합니다.

Keepalives #

클라이언트 측 TCP Keepalives가 사용되는지 여부를 제어합니다. 기본값은 1이지만 의미가 있지만 0으로 변경할 수 있습니다.

Keepalives_idle #

TCP가 서버에 keepalive 메시지를 보내야 할 때의 비 활동 초의 초 수를 제어합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_KEEPIDLE또는 동등한 소켓 옵션을 사용할 수 있으며 Windows에서 사용할 수 있습니다. 다른 시스템에서는 효과가 없습니다.

Keepalives_Interval #

서버가 인정하지 않는 TCP requalive 메시지를 재전송 해야하는 다음 초 수를 제어합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_KEEPINTVL또는 동등한 소켓 옵션을 사용할 수 있으며 Windows에서 사용할 수 있습니다. 다른 시스템에서는 효과가 없습니다.

Keepalives_Count #

클라이언트의 서버 윈 토토이 죽은 것으로 간주되기 전에 손실 될 수있는 TCP 유지 보안의 수를 제어합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_KEEPCNT또는 동등한 소켓 옵션을 사용할 수 있습니다. 다른 시스템에서는 효과가 없습니다.

TCP_USER_TIMEOUT #

통제 윈 토토이 강제로 닫히기 전에 전송 된 데이터가 계속 폐지되지 않은 상태로 유지 될 수있는 밀리 초의 수를 제어합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_USER_TIMEOUT사용 가능; 다른 시스템에서는 효과가 없습니다.

복제 #

이 옵션은 윈 토토이 일반 프로토콜 대신 복제 프로토콜을 사용해야하는지 여부를 결정합니다. 이것은 PostgreSQL 복제 윈 토토 및와 같은 도구입니다.PG_BASEBACKUP내부적으로 사용하지만 타사 응용 프로그램에서도 사용할 수 있습니다. 복제 프로토콜에 대한 설명을 보려면섹션 55.4.

건소에 민감한 다음 값이 지원됩니다.

true, on, , 1

윈 토토은 물리적 복제 모드로 들어갑니다.

데이터베이스

윈 토토은 논리적 복제 모드로 이동하여에 지정된 데이터베이스에 윈 토토합니다dbname매개 변수.

거짓, OFF, 아니오, 0

윈 토토은 일반적인 것입니다. 기본 동작입니다.

물리적 또는 논리적 복제 모드에서는 간단한 쿼리 프로토콜 만 사용할 수 있습니다.

gssencmode #

이 옵션은 보안 우선 순위 여부를 결정합니다GSSTCP/IP 윈 토토은 서버와 협상됩니다. 세 가지 모드가 있습니다 :

비활성화

비 만 시도해보십시오.GSSAPI-암호화 된 윈 토토

선호(기본값)

있는 경우GSSAPI자격 증명이 존재합니다 (즉, 자격 증명 캐시에서), 먼저 a 시도하십시오.GSSAPI암호화 된 윈 토토; 실패하거나 자격 증명이 없으면 비 시도해보십시오.GSSAPI암호화 된 윈 토토. 이것은 기본값입니다PostgreSQLGSSAPI지원.

요구 사항

만 시도해GSSAPI-암호화 된 윈 토토

gssencmodeUNIX 도메인 소켓 통신에 대해 무시됩니다. 만약에PostgreSQLgssapi 지원없이 편집되어요구 사항옵션은 오류가 발생하지만선호허용되지만libpq실제로 a를 시도하지 않을 것입니다GSSAPI-암호화 된 윈 토토.

sslmode #

이 옵션은 보안 우선 순위 여부를 결정합니다SSLTCP/IP 윈 토토은 서버와 협상됩니다. 6 가지 모드가 있습니다 :

비활성화

비 만 시도해보십시오.SSL윈 토토

허용

먼저 비 시도SSL윈 토토; 그것이 실패하면 시도해보십시오SSL윈 토토

선호(기본값)

첫 번째 시도SSL윈 토토; 실패하면 비 시도해보십시오.SSL윈 토토

요구 사항

만 시도SSL윈 토토. 루트 CA 파일이있는 경우 IT와 같은 방식으로 인증서를 확인하십시오.verify-ca지정되었습니다

verify-ca

만 시도SSL윈 토토 및 신뢰할 수있는 인증서에 의해 서버 인증서가 발행되었는지 확인하십시오 (CA)

verify-full

만 시도SSL윈 토토, 신뢰할 수있는 서버 인증서가 발행되었는지 확인하십시오CA그리고 요청 된 서버 호스트 이름은 인증서에서이를 일치시킵니다

참조섹션 34.19이러한 옵션의 작동 방식에 대한 자세한 설명은

sslmodeUNIX 도메인 소켓 통신에 대해 무시됩니다. 만약에PostgreSQL옵션을 사용하여 SSL 지원없이 컴파일됩니다요구 사항, verify-ca또는verify-full오류가 발생하고 옵션허용and선호허용되지만libpq실제로 시도하지 않을 것입니다SSL윈 토토.

ifGSSAPI암호화가 가능합니다.SSL값에 관계없이 암호화sslmode. 강제 사용SSL작동하는 환경에서의 암호화GSSAPI인프라 (Kerberos 서버 등), 또한 setgssencmodeto비활성화.

요구 사항 #

이 옵션은에 찬성하여 더 이상 사용되지 않습니다.sslmode설정.

1으로 설정된 경우, anSSL서버에 대한 윈 토토이 필요합니다 (이것은 동일합니다sslmode 요구 사항). libpq서버가 수락하지 않으면 윈 토토을 거부합니다.SSL윈 토토. 0으로 설정된 경우 (기본값),libpq서버와 윈 토토 유형을 협상합니다 (동등한sslmode 선호). 이 옵션은 만 사용할 수 있습니다.PostgreSQLSSL 지원으로 컴파일됩니다.

SSLCompression #

1으로 설정하면 SSL 윈 토토을 통해 전송 된 데이터가 압축됩니다. 0으로 설정하면 압축이 비활성화됩니다.

SSL 압축은 오늘날 불안한 것으로 간주되며 더 이상 사용이 권장되지 않습니다.OpenSSL1.1.0은 기본적으로 압축을 비활성화하고 많은 운영 체제 분포가 이전 버전에서도 비활성화되므로 서버가 압축을 허용하지 않으면이 매개 변수를 ON으로 설정하는 데 영향을 미치지 않습니다..PostgreSQL14 백엔드에서 압축을 완전히 비활성화합니다.

보안이 주요 관심사가 아닌 경우 네트워크가 병목 현상 인 경우 압축을 개선 할 수 있습니다. CPU 성능이 제한 요소 인 경우 압축을 비활성화하면 응답 시간과 처리량이 향상 될 수 있습니다.

SSLCERT #

이 매개 변수는 클라이언트 SSL 인증서의 파일 이름을 지정하여 기본값을 대체합니다~/.postgresql/postgresql.crt. 이 매개 변수는 SSL 윈 토토이 이루어지지 않으면 무시됩니다.

sslkey #

이 매개 변수는 클라이언트 인증서에 사용되는 비밀 키의 위치를 ​​지정합니다. 기본값 대신 사용될 파일 이름을 지정할 수 있습니다~/.postgresql/postgresql.key또는 외부에서 얻은 키를 지정할 수 있습니다엔진(엔진은OpenSSL로드 가능한 모듈). 외부 엔진 사양은 콜론 구분 된 엔진 이름과 엔진 별 키 식별자로 구성되어야합니다.

sslpassword #

이 매개 변수는 지정된 비밀 키에 대한 비밀번호를 지정합니다sslkey, 인터랙티브 인증서 입력이 실용적이지 않은 경우에도 클라이언트 인증서 개인 키를 디스크에 암호화 된 양식으로 저장할 수 있습니다.

비어 있지 않은 값 으로이 매개 변수를 지정하면PEM 패스 문구를 입력하십시오 :프롬프트OpenSSL암호화 된 클라이언트 인증서 키가 제공 될 때 기본적으로 방출됩니다libpq.

키가 암호화되지 않으면이 매개 변수는 무시됩니다. 매개 변수는에 의해 지정된 키에 영향을 미치지 않습니다.OpenSSL엔진이 사용하지 않는 한 엔진OpenSSL프롬프트를위한 ​​암호 콜백 메커니즘.

이 옵션과 동등한 환경 변수가 없으며, 그것을 찾아야 할 시설이 없습니다.pgpass. 서비스 파일 윈 토토 정의에서 사용할 수 있습니다.OpenSSLPKCS#11 또는 USB 암호화 오프로드 장치와 같은 엔진 및 도구.

SSLCERTMODE #

이 옵션은 클라이언트 인증서가 서버로 전송 될 수 있는지 여부와 서버가 요청 해야하는지 여부를 결정합니다. 세 가지 모드가 있습니다 :

비활성화

클라이언트 인증서는 사용 가능한 경우에도 전송되지 않습니다 (기본 위치이거나 remureSSLCERT).

허용(기본값)

서버가 하나를 요청하고 클라이언트가 보낼 수있는 경우 인증서를 전송할 수 있습니다.

요구 사항

서버필수인증서 요청. 클라이언트가 인증서를 보내지 않고 서버가 클라이언트를 성공적으로 인증하면 윈 토토이 실패합니다.

Note

sslcertmode = require서버가 인증서를 올바르게 확인하고 있다는 보장이 없기 때문에 추가 보안을 추가하지 않습니다. PostgreSQL 서버는 일반적으로 고객에게 검증 여부에 관계없이 클라이언트에게 TLS 인증서를 요청합니다.

SSLROOTCERT #

이 매개 변수는 SSL 인증서를 포함하는 파일의 이름을 지정합니다 (CA) 인증서. 파일이 존재하면 서버의 인증서는이 당국 중 하나가 서명하도록 확인됩니다.~/.postgresql/root.crt.

특별 가치시스템대신 지정 될 수 있으며,이 경우 시스템의 신뢰할 수있는 CA 루츠가로드됩니다. 이러한 루트 인증서의 정확한 위치는 SSL 구현 및 플랫폼마다 다릅니다.OpenSSL특히, 위치는에 의해 추가로 수정 될 수 있습니다.SSL_CERT_DIRandSSL_CERT_FILE환경 변수.

Note

사용시SSLROOTCERT = SYSTEM, 기본값sslmodeverify-full및 약한 설정으로 인해 오류가 발생합니다. 대부분의 경우 누군가가 제어하는 ​​호스트 이름에 대해 시스템에서 신뢰하는 인증서를 얻는 것은 사소한 일입니다.verify-ca그리고 모든 약한 모드는 쓸모가 없습니다.

마법시스템값은 동일한 이름의 로컬 인증서 파일보다 우선합니다. 어떤 이유로이 상황에서 자신을 발견하면와 같은 대체 경로를 사용하십시오.SSLROOTCERT =./SYSTER58799_58807

SSLCRL #

이 매개 변수는 SSL Server 인증서 Revocation List (CRL)의 파일 이름을 지정합니다. 이 파일에 나열된 인증서가 존재하는 경우 서버의 인증서를 인증하려고 시도하면서 거부됩니다.SSLCRLNORSSLCRLDIR설정 되었고이 설정은로 간주됩니다.~/.postgresql/root.crl.

SSLCRLDIR #

이 매개 변수는 SSL 서버 인증서 취소 목록 (CRL)의 디렉토리 이름을 지정합니다. 이 디렉토리의 파일에 나열된 인증서가 존재하는 경우 서버의 인증서를 인증하려고 시도하면서 거부됩니다.

디렉토리는와 함께 준비해야합니다.OpenSSL명령OpenSSL RHASH또는C_RHOSH. 자세한 내용은 문서를 참조하십시오.

둘 다SSLCRLandSSLCRLDIR함께 지정할 수 있습니다.

SSLSNI #

1으로 설정된 경우 (기본값) LibPQ는 TLS Extension을 설정합니다서버 이름 표시 (SNI) SSL 가능 윈 토토에서. 이 매개 변수를 0으로 설정하면 꺼져 있습니다.

서버 이름 표시는 SSL-AWARE 프록시에서 SSL 스트림을 해독하지 않고 윈 토토을 라우팅하기 위해 사용할 수 있습니다. (이것은 SSL 프록시뿐만 아니라 PostgreSQL 프로토콜 핸드 셰이크를 알고있는 프록시가 필요합니다.) 그러나SNI네트워크 트래픽에서 대상 호스트 이름이 ClearText로 표시되므로 경우에 따라 바람직하지 않을 수 있습니다.

요구 사항 #

이 매개 변수는 서버의 작동 시스템 사용자 이름을 지정합니다 (예 :요구 사항 = Postgres. Unix-Domain 소켓 윈 토토을 만들 때이 매개 변수가 설정되면 클라이언트는 윈 토토 시작시 서버 프로세스가 지정된 사용자 이름으로 실행되는지 확인합니다./tmp또는 다른 공개적으로 쓰기 가능한 위치, 모든 사용자가 서버를 청취 할 수 있습니다. 이 매개 변수를 사용하여 신뢰할 수있는 사용자가 실행하는 서버에 윈 토토되어 있는지 확인하십시오.)이 옵션은의 플랫폼에서만 지원됩니다.피어인증 방법이 구현되었습니다. 보다섹션 21.9.

SSL_MIN_PROTOCOL_VERSION #

이 매개 변수는 윈 토토을 허용하기 위해 최소 SSL/TLS 프로토콜 버전을 지정합니다. 유효한 값은TLSV1, TLSV1.1, TLSV1.2andTLSV1.3. 지원되는 프로토콜은의 버전에 따라 다릅니다.OpenSSL가장 현대적인 프로토콜 버전을 지원하지 않는 오래된 버전. 지정되지 않은 경우 기본값은입니다.TLSV1.2,이 글을 쓰는 시점에서 업계 모범 사례를 충족시키는 것.

SSL_MAX_PROTOCOL_VERSION #

이 매개 변수는 윈 토토을 허용하기 위해 최대 SSL/TLS 프로토콜 버전을 지정합니다. 유효한 값은TLSV1, TLSV1.1, TLSV1.2andTLSV1.3. 지원되는 프로토콜은의 버전에 따라 다릅니다.OpenSSL가장 현대적인 프로토콜 버전을 지원하지 않는 오래된 버전. 설정하지 않으면이 매개 변수는 무시되며 윈 토토은 백엔드에 의해 정의 된 최대 경계를 사용합니다.

krbsrvname #

GSSAPI로 인증 할 때 사용할 Kerberos 서비스 이름. 이는 Kerberos 인증을 위해 서버 구성에 지정된 서비스 이름과 일치해야합니다.섹션 21.6.) 기본값은 일반적으로입니다.Postgres, 그러나 건축 할 때 변경할 수 있습니다PostgreSQL-with-krb-srvnam옵션구성. 대부분의 환경 에서이 매개 변수는 변경 될 필요가 없습니다.Postgres).

gsslib #

GSSAPI 인증에 사용할 GSS 라이브러리. 현재 이는 GSSAPI 및 SSPI 지원이 모두 포함 된 Windows 빌드를 제외하고는 무시됩니다.GSSAPILIBPQ가 기본 SSPI 대신 인증을 위해 GSSAPI 라이브러리를 사용하게합니다.

GSSDELEGATION #

Forward (Delegate) GSS 자격 증명서. 기본값은0이는 자격 증명이 서버로 전달되지 않음을 의미합니다. 이것을 설정1가능한 경우 자격 증명을 전달하려면

서비스 #

추가 매개 변수에 사용할 서비스 이름. 에서 서비스 이름을 지정합니다서비스추가 윈 토토 매개 변수를 보유합니다. 이를 통해 응용 프로그램은 서비스 이름 만 지정하여 윈 토토 매개 변수를 중앙에서 유지할 수 있습니다.섹션 34.17.

target_session_attrs #

이 옵션은 세션에 수용 가능한 특정 속성이 있어야하는지 여부를 결정합니다. 일반적으로 여러 호스트 이름과 함께 사용하여 여러 호스트 중에서 첫 번째 허용 가능한 대안을 선택합니다.

any(기본값)

성공적인 윈 토토이 허용됩니다

읽기 쓰기

세션은 기본적으로 읽기 쓰기 트랜잭션을 수락해야합니다 (즉, 서버는 핫 스탠드 모드에 있지 않아야하며default_transaction_read_only매개 변수는OFF)

읽기 전용

세션은 기본적으로 읽기 쓰기 트랜잭션을 수락해서는 안됩니다 (대화)

기본

서버는 대기 모드에 있지 않아야합니다

대기

서버는 핫 스탠드 모드에 있어야합니다

선호하는 스탠드비

먼저 대기 서버를 찾으십시오. 그러나 나열된 호스트가 대기 서버 인 경우 다시 시도하십시오any모드

load_balance_hosts #

클라이언트가 사용 가능한 호스트 및 주소에 윈 토토하려는 순서를 제어합니다. 윈 토토 시도가 성공하면 다른 호스트와 주소는 시도되지 않습니다.target_session_attrs예를 들어 대기 서버의 균형을로드합니다. 성공적으로 윈 토토되면 반환 된 윈 토토의 후속 쿼리가 모두 동일한 서버로 전송됩니다.

비활성화(기본값)

호스트 전체에 대한로드 밸런싱이 수행되지 않습니다. 호스트는 제공되는 순서대로 시도되며 주소는 DNS 또는 호스트 파일로부터받은 순서대로 시도됩니다.

random

호스트 및 주소는 임의 순서로 시도됩니다. 이 값은 다른 기계에서 여러 윈 토토을 동시에 열 때 주로 유용합니다.PostgreSQL서버.

무작위로드 밸런싱은 임의의 특성으로 인해 거의 완전히 균일 한 분포를 초래하지 않지만 통계적으로 매우 가까워집니다. 여기서 중요한 측면 중 하나는이 알고리즘이 두 가지 수준의 임의 선택 선택을 사용한다는 것입니다. 먼저 호스트는 임의 순서로 해결됩니다.

이 값을 사용하면 합리적인 값을 구성하는 것이 좋습니다Connect_Timeout. 그렇다면로드 밸런싱에 사용되는 노드 중 하나가 응답하지 않으면 새 노드가 시도됩니다.

수정 제출

문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면