모든 매개 토토 베이 이름은 대소 문자를 사용하지 않습니다. 모든 매개 토토 베이는 부울, 문자열, 정수, 부동 소수점 또는 열거 (Enum)의 5 가지 유형 중 하나입니다.
부울 :값은로 쓸 수 있습니다on
, OFF
, true
, 거짓
, 예
, 아니오
, 1
, 0
(모든 사례에 민감하지 않음) 또는이 중 하나의 명백한 접두사.
문자열 :일반적으로 값을 단일 따옴표로 둘러싸고 값 내에서 단일 따옴표를 두 배로 늘립니다. 값이 간단한 숫자 또는 식별자 인 경우 일반적으로 따옴표를 생략 할 수 있습니다.
숫자 (정수 및 부동 소수점) :소수점은 부동 소수점 매개 토토 베이에 대해서만 허용됩니다. 수천 개의 분리기를 사용하지 마십시오.
단위가있는 숫자 :11908_12222pg_settings
.Unit
. 편의를 위해, 예를 들어 명시 적으로 지정된 단위로 설정을 제공 할 수 있습니다.'120 ms'
시간 값의 경우 매개 토토 베이의 실제 단위가 무엇이든 변환됩니다. 이 기능을 사용하려면 값이 문자열 (따옴표 포함)으로 작성해야합니다.
유효한 메모리 장치가KB
(Kilobytes),MB
(megabytes),GB
(Gigabytes) 및TB
(테라 바이트). 메모리 유닛의 승수는 1000이 아닌 1024입니다.
유효 시간 단위는MS
(밀리 초),s
(초),Min
(분),h
(시간) 및d
(일).
열거 :열거 형 유형 매개 토토 베이는 문자열 매개 토토 베이와 동일한 방식으로 기록되지만 제한된 값 세트 중 하나로 제한됩니다. 이러한 매개 토토 베이에 허용되는 값은에서 찾을 수 있습니다.pg_settings
.enumvals
. 열거 매개 토토 베이 값은 사례에 민감하지 않습니다.
이러한 매개 토토 베이를 설정하는 가장 기본적인 방법은 파일을 편집하는 것입니다Postgres
, 일반적으로 데이터 디렉토리에 보관됩니다. 데이터베이스 클러스터 디렉토리가 초기화되면 기본 사본이 설치됩니다.
# 이것은 주석입니다
하나의 매개 토토 베이는 한 줄에 지정됩니다. 이름과 값 사이의 동일한 부호는 선택 사항입니다.#
) 라인의 나머지 부분을 주석으로 지정합니다. 단순한 식별자 또는 숫자가 아닌 매개 토토 베이 값은 단일 인용해야합니다.
이러한 방식으로 설정된 매개 토토 베이는 클러스터의 기본값을 제공합니다. 활성 세션에서 볼 수있는 설정은 재정의되지 않는 한 이러한 값이됩니다.
기본 서버 프로세스가 a를받을 때마다 구성 파일이 다시 읽습니다.Sighup신호; 이 신호는 실행에 의해 가장 쉽게 전송됩니다PG_CTL Reload
명령 줄에서 또는 SQL 함수를 호출하여pg_reload_conf ()
. 기본 서버 프로세스는 또한이 신호를 현재 실행중인 모든 서버 프로세스로 전파하므로 기존 세션도 새로운 값을 채택하도록합니다 (현재 실행중인 클라이언트 명령을 완료 한 후에 발생합니다).Sighup처리.
더 이상Postgres
, aPostgreSQL데이터 디렉토리가 파일을 포함합니다Postgres
,와 동일한 형식을 갖는다Postgres
그러나 수동으로 자동으로 편집 할 예정입니다. 이 파일은를 통해 제공된 설정을 보유합니다.Alter System명령. 이 파일은 언제든지 읽습니다Postgres
IS 및 해당 설정도 같은 방식으로 적용됩니다. 설정Postgres
Postgres
.
외부 도구도 수정할 수 있습니다Postgres
. 서버가 실행되는 동안이 작업을 수행하는 것이 좋습니다. 동시에Alter System
명령은 그러한 변경 사항을 덮어 쓸 수 있습니다. 이러한 도구는 단순히 새로운 설정을 끝까지 추가하거나 중복 설정 및/또는 댓글을 제거하도록 선택할 수 있습니다 (ASAlter System
Will).
시스템보기PG_FILE_SETTINGS
구성 파일의 사전 테스트 변경에 도움이 될 수 있습니다.Sighup신호가 원하는 효과가 없습니다.
PostgreSQL구성 기본값을 설정하기 위해 세 가지 SQL 명령을 제공합니다. 이미 언급 된Alter System명령은 글로벌 기본값을 변경하는 SQL 액세스 가능한 수단을 제공합니다. 기능적으로 편집과 동일합니다Postgres
. 또한, 다트베이스별로 또는 중단 기준으로 기본값을 설정할 수있는 두 가지 명령이 있습니다.
데이터베이스 변경
andALTER 역할
신선한 데이터베이스 세션을 시작할 때만 적용됩니다. 구성 파일 또는 서버 명령 줄에서 얻은 값을 무시하고 나머지 세션의 기본값을 구성합니다.
클라이언트가 데이터베이스에 연결되면PostgreSQL세션-로컬 구성 설정과 상호 작용하기 위해 두 개의 추가 SQL 명령 (및 동등한 함수)을 제공합니다.
또한 시스템보기pg_settings
세션-로컬 값을보고 변경하는 데 사용될 수 있습니다 :
이보기 쿼리는 사용과 유사합니다All Show
그러나 더 자세한 내용을 제공합니다. 필터 조건을 지정하거나 다른 관계에 가입 할 수 있기 때문에 더 유연합니다.
사용업데이트이 견해에서 구체적으로 업데이트설정
열, 발행과 동일합니다SET
명령. 예를 들어,에 해당합니다.
configuration_parameter를 기본값으로 설정하십시오;
is :
PG_SETTING 업데이트 설정 설정 = RESET_VAL where name = 'configuration_parameter';
데이터베이스 또는 역할 레벨에서 글로벌 기본값을 설정하거나 첨부 재정의 외에도 설정을 전달할 수 있습니다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 명령을 직접 사용하지 않고 세션 설정을 변경할 수 있도록합니다.
PostgreSQL복잡한 분류를위한 몇 가지 기능 제공Postgres
하위 파일로 파일. 이러한 기능은 관련이지만 동일하지 않은 구성으로 여러 서버를 관리 할 때 특히 유용합니다.
개별 매개 변수 설정 외에도Postgres
파일이 포함될 수 있습니다지침 포함22428_22666
'filename'포함
파일 이름이 절대 경로가 아닌 경우 참조 구성 파일을 포함하는 디렉토리와 관련하여 사용됩니다. 포함은 중첩 될 수 있습니다.
또한include_if_exists
지시문,포함
19784_19870포함
이것을 오류 조건으로 간주하지만include_if_exists
단지 메시지를 기록하고 참조 구성 파일을 계속 처리합니다.
thePostgres
파일도 포함 할 수 있습니다include_dir
지시문은 포함 할 구성 파일의 전체 디렉토리를 지정합니다. 이것들은
include_dir 'directory'
비 통신 디렉토리 이름은 참조 구성 파일을 포함하는 디렉토리와 관련하여 사용됩니다. 지정된 디렉토리 내에서 이름이 접미사로 끝나는 비 디렉토리 파일 만.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
18495_18524conf.d/01memory.conf
.
대신이 접근법을 사용하여 파일의 이름 지정을 묘사 할 수 있습니다 :
00shared.conf
이런 종류의 배열은 각 구성 파일 변동에 대해 고유 한 이름을 제공합니다. 이는 여러 서버가 버전 제어 저장소와 같이 한 곳에 구성된 구성을 모두 저장하면 모호성을 제거하는 데 도움이 될 수 있습니다.