19.1. 매개 변수 설정

19.1.1. 매개 변수 이름 및 값

모든 매개 와이즈 토토 이름은 대소 문자를 사용하지 않습니다. 모든 매개 와이즈 토토는 부울, 문자열, 정수, 부동 소수점 또는 열거 (Enum)의 5 가지 유형 중 하나입니다.

  • 부울 :값은로 쓸 수 있습니다on, OFF, true, 거짓, , 아니오, 1, 0(모든 사례에 민감하지 않음) 또는이 중 하나의 명백한 접두사.

  • 문자열 :일반적으로 값을 단일 따옴표로 둘러싸고 값 내에서 단일 따옴표를 두 배로 늘립니다. 그러나 값이 간단한 숫자 또는 식별자 인 경우 일반적으로 따옴표를 생략 할 수 있습니다.

  • 숫자 (정수 및 부동 소수점) :숫자 매개 와이즈 토토는 관례적인 정수 및 부동 소수점 형식으로 지정할 수 있습니다. 매개 와이즈 토토가 정수 유형 인 경우 분수 값은 가장 가까운 정수로 반올림됩니다.0x) 및 Octal 입력 (시작0)이지만 이러한 형식에는 분수가 없습니다. 수천 개의 분리기를 사용하지 마십시오.

  • 단위가있는 숫자 :일부 숫자 매개 와이즈 토토는 메모리 또는 시간을 설명하기 때문에 암시 적 단위를 가지고 있습니다. 장치는 바이트, 킬로바이트, 블록 (일반적으로 8 킬로바이트), 밀리 초, 초 또는 분일 수 있습니다.pg_settings.Unit. 편의를 위해, 예를 들어 명시 적으로 지정된 단위로 설정을 제공 할 수 있습니다.'120 ms'시간 값의 경우 매개 와이즈 토토의 실제 단위가 무엇이든 변환됩니다. 이 기능을 사용하려면 값이 문자열 (따옴표 포함)으로 작성해야합니다.

    • 유효한 메모리 장치가B(바이트),KB(Kilobytes),MB(megabytes),GB(Gigabytes) 및TB(테라 바이트). 메모리 유닛의 승수는 1000이 아닌 1024입니다.

    • 유효 시간 단위는US(마이크로 초),MS(밀리 초),s(초),Min(분),h(시간) 및d(일).

    단위로 분수 값이 지정되면 하나가 있으면 다음 작은 장치의 배수로 반올림됩니다. 예를 들어,30.1 GB30822 MBnot32319628902 B. 매개 와이즈 토토가 정수 유형 인 경우, 단위 변환 후에 정수에 대한 최종 반올림이 발생합니다.

  • 열거 :열거 형 유형 매개 와이즈 토토는 문자열 매개 와이즈 토토와 동일한 방식으로 기록되지만 제한된 값 세트 중 하나로 제한됩니다. 이러한 매개 와이즈 토토에 허용되는 값은에서 찾을 수 있습니다.pg_settings.enumvals. 열거 매개 와이즈 토토 값은 사례에 민감하지 않습니다.

19.1.2. 구성 파일을 통한 매개 변수 상호 작용

이러한 매개 와이즈 토토를 설정하는 가장 기본적인 방법은 파일을 편집하는 것입니다Postgres, 일반적으로 데이터 디렉토리에 보관됩니다. 데이터베이스 클러스터 디렉토리가 초기화되면 기본 사본이 설치됩니다.

# 이것은 주석입니다

하나의 매개 와이즈 토토는 한 줄에 지정됩니다. 이름과 값 사이의 동일한 부호는 선택 사항입니다.#) 라인의 나머지 부분을 주석으로 지정합니다. 단순한 식별자 또는 숫자가 아닌 매개 와이즈 토토 값은 단일 인용해야합니다.

이러한 방식으로 설정된 매개 와이즈 토토는 클러스터의 기본값을 제공합니다. 활성 세션에서 볼 수있는 설정은 재정의되지 않는 한 이러한 값이됩니다.

기본 서버 프로세스가 a를받을 때마다 구성 파일이 다시 표시됩니다.Sighup신호; 이 신호는 실행에 의해 가장 쉽게 전송됩니다PG_CTL Reload명령 줄에서 또는 SQL 함수를 호출하여pg_reload_conf (). 기본 서버 프로세스는 또한이 신호를 현재 실행중인 모든 서버 프로세스로 전파하므로 기존 세션도 새로운 값을 채택하도록합니다 (현재 실행중인 클라이언트 명령을 완료 한 후에 발생합니다).Sighup처리.

외에Postgres, aPostgreSQL데이터 디렉토리가 파일을 포함합니다Postgres,이 형식은Postgres그러나 수동으로가 아니라 자동으로 편집 할 예정입니다. 이 파일은를 통해 제공된 설정을 보유합니다.Alter System명령. 이 파일은 언제든지 읽습니다PostgresIS 및 해당 설정도 같은 방식으로 적용됩니다. 설정PostgresPostgres.

외부 도구도 수정할 수 있습니다Postgres. 서버가 실행되는 동안이 작업을 수행하는 것이 좋습니다. 동시에Alter System명령은 그러한 변경 사항을 덮어 쓸 수 있습니다. 이러한 도구는 단순히 새로운 설정을 끝까지 추가하거나 중복 설정 및/또는 댓글을 제거하도록 선택할 수 있습니다 (ASAlter SystemWill).

시스템보기PG_FILE_SETTINGS구성 파일의 변경 사항을 사전 테스트하거나 A가 문제를 진단하는 데 도움이 될 수 있습니다Sighup신호가 원하는 효과가 없습니다.

19.1.3. SQL을 통한 매개 변수 상호 작용

PostgreSQL구성 기본값을 설정하기 위해 세 가지 SQL 명령을 제공합니다. 이미 언급 된Alter System명령은 글로벌 기본값을 변경하는 SQL 액세스 가능한 수단을 제공합니다. 기능적으로 편집과 동일합니다Postgres. 또한, 다트베이스별로 또는 중단 기준으로 기본값을 설정할 수있는 두 가지 명령이 있습니다.

  • theAlter Database명령은 글로벌 설정이 다타베이스별로 무시할 수 있도록합니다.

  • theALTER 역할명령은 글로벌 및 디타베이스 매개 설정이 모두 사용자 별 값으로 무시할 수 있도록 허용합니다.

Alter DatabaseandALTER 역할신선한 데이터베이스 세션을 시작할 때만 적용됩니다. 구성 파일 또는 서버 명령 줄에서 얻은 값을 무시하고 나머지 세션의 기본값을 구성합니다.

클라이언트가 데이터베이스에 연결되면PostgreSQL세션-로컬 구성 설정과 상호 작용하기 위해 두 개의 추가 SQL 명령 (및 동등한 함수)을 제공합니다.

  • theshow명령은 모든 매개 변수의 현재 값을 검사 할 수 있습니다. 해당 SQL 함수는입니다.current_setting (setting_name text)(참조섹션 9.27.1).

  • theSET명령은 세션으로 로컬로 설정할 수있는 매개 변수의 현재 값을 수정할 수 있습니다. 다른 세션에는 영향을 미치지 않습니다.set_config (setting_name, new_value, is_local)(참조섹션 9.27.1).

또한 시스템보기pg_settings세션-로컬 값을보고 변경하는 데 사용될 수 있습니다 :

  • 이보기 쿼리는 사용과 유사합니다All Show그러나 더 자세한 내용을 제공합니다. 필터 조건을 지정하거나 다른 관계에 가입 할 수 있기 때문에 더 유연합니다.

  • 사용업데이트이 견해에서 구체적으로 업데이트설정열, 발행과 동일합니다SET명령. 예를 들어,에 해당합니다.

    configuration_parameter를 기본값으로 설정하십시오;

    IS :

    PG_SETTING 업데이트 설정 설정 = reset_val where name = 'configuration_parameter';

19.1.4. 쉘을 통한 매개 변수 상호 작용

데이터베이스 또는 역할 레벨에서 글로벌 기본값을 설정하거나 첨부 재정의를 설정하는 것 외에도 설정을로 전달할 수 있습니다.PostgreSQL쉘 시설을 통해. 서버와libpq클라이언트 라이브러리 쉘을 통해 매개 와이즈 토토 값을 허용합니다.

  • 서버 시작 중에 매개 변수 설정을 전달할 수 있습니다Postgres-c명령 줄 매개 와이즈 토토. 예를 들어,

    postgres -c log_connections = 예 -c log_destination = 'syslog'

    이러한 방식으로 제공되는 설정은Postgres또는Alter System, 서버를 다시 시작하지 않고도 전 세계적으로 변경할 수 없습니다.

  • libpq, 매개 변수 설정은를 사용하여 지정할 수 있습니다.pgoptions환경 변수. 이러한 방식으로 설정된 설정은 세션 수명의 기본값을 구성하지만 다른 세션에는 영향을 미치지 않습니다.pgoptions시작할 때 사용 된 것과 유사합니다Postgres명령; 구체적으로,-c플래그를 지정해야합니다. 예를 들어,

    Env Pgoptions = "-C geqo = OFF -C state_timeout = 5min"psql

    다른 클라이언트와 라이브러리는 쉘 또는 기타를 통해 자체 메커니즘을 제공하여 사용자가 SQL 명령을 직접 사용하지 않고 세션 설정을 변경할 수 있도록 할 수 있습니다..

19.1.5. 구성 파일 내용 관리

PostgreSQL복잡한 분류를위한 몇 가지 기능 제공Postgres서브 파일로 파일. 이러한 기능은 관련이 있지만 동일하지 않은 구성으로 여러 서버를 관리 할 때 특히 유용합니다.

개별 매개 변수 설정 외에도Postgres파일이 포함될 수 있습니다지침 포함,이 시점에서 구성 파일에 삽입 된 것처럼 읽고 처리 할 다른 파일을 지정합니다. 이 기능을 사용하면 구성 파일을 물리적으로 별도의 부품으로 나눌 수 있습니다.

'filename'포함

파일 이름이 절대 경로가 아닌 경우 참조 구성 파일이 포함 된 디렉토리와 관련하여 사용됩니다. 포함은 중첩 될 수 있습니다.

또한include_if_exists지침,포함21205_21291포함이것을 오류 조건으로 간주하지만include_if_exists단지 메시지를 기록하고 참조 구성 파일을 계속 처리합니다.

thePostgres파일도 포함 할 수 있습니다include_dir지시문은 포함 할 구성 파일의 전체 디렉토리를 지정합니다. 이것들은

include_dir 'directory'

absolute 디렉토리 이름은 참조 구성 파일을 포함하는 디렉토리와 관련하여 사용됩니다. 지정된 디렉토리 내에서 이름이 접미사로 끝나는 비 디렉토리 파일 만.conf포함됩니다. 부터 시작하는 파일 이름.문자도 무시됩니다. 이러한 파일이 일부 플랫폼에서 숨겨져 있기 때문에 실수를 방지합니다. 포함 디렉토리 내의 여러 파일은 파일 이름 순서로 처리됩니다 (C 로케일 규칙, 즉 문자 전 숫자, 소문자 이전의 대문자)..

파일 또는 디렉토리 포함을 사용하여 단일 대형이 아닌 데이터베이스 구성 부분을 논리적으로 분리 할 수 ​​있습니다Postgres파일. 메모리가 다른 두 개의 데이터베이스 서버가있는 회사를 고려하십시오.Postgres포함 할 파일 :

'shared.conf'포함

모든 시스템이 동일합니다.conf. 특정 양의 메모리가있는 각 서버가 동일하게 공유 할 수 있습니다.conf; 8GB RAM이있는 모든 서버에 1 개, 다른 서버에는 16GB가있는 사람이있을 수 있습니다..conf진정으로 서버 별 구성 정보가있을 수 있습니다.

또 다른 가능성은 구성 파일 디렉토리를 작성 하고이 정보를 파일에 넣는 것입니다. 예를 들어, Aconf.d디렉토리는 끝에서 참조 할 수 있습니다Postgres:

include_dir 'conf.d'

그러면의 파일 이름을 지정할 수 있습니다.conf.d이와 같은 디렉토리 :

00shared.conf

이 이름 지정 규칙은 이러한 파일이로드 될 명확한 순서를 설정합니다. 서버가 구성 파일을 읽는 동안 특정 매개 변수에 직면 한 마지막 설정 만 사용되므로 중요합니다.conf.d/02server.conf에서 설정 한 값을 무시합니다conf.d/01memory.conf.

대신이 접근 방식을 사용하여 파일의 이름을 지목 적으로 명명 할 수 있습니다.

00shared.conf

이런 종류의 배열은 각 구성 파일 변동에 대해 고유 한 이름을 제공합니다. 이는 여러 서버가 버전 제어 저장소와 같이 한 곳에 구성된 구성을 모두 저장하면 모호성을 제거하는 데 도움이 될 수 있습니다.

정정 제출

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