View pg_catalog.pg_settings 형태로 저장되어 있다.
내용을 좀 더 자세히 보면, pg_show_all_settings() 을 통해서 정보를 가져오고 있다.
pg_settings 의 각 항목에 대한 상세 내용이다.
name | text | 파라미터 이름 |
setting | text | 현재 설정된 값 |
unit | text | 설정된 값의 단위 min, ms, 8kB, s, MB, kB 같은 단위 형태로 설정되어 있다. 사용자가 설정할 수 없다. "src/backend/utils/misc/guc.c" 파일에 각 파라미터 별로 단위가 설정되어 있다. "src/include/utils/guc.h" 파일에 define 형태로 정의되어 있다. ex) shared_buffers 의 unit 이 8kB 이고, postgresql.conf 에 shared_buffers 를 128MB 로 설정했다면, 128MB=16384*8kB 이므로, setting 에는 16384 가 표시된다. |
category | text | 아래와 같이, 어떠한 분류에 속하는지 표기해 준다. Resource Usage / Cost-Based Vacuum Delay Autovacuum Query Tuning / Planner Method Configuration Query Tuning / Other Planner Options Client Connection Defaults / Statement Behavior File Locations Write-Ahead Log / Settings Process Title Client Connection Defaults / Shared Library Preloading Replication Replication / Subscribers Client Connection Defaults / Locale and Formatting Reporting and Logging / What to Log Write-Ahead Log / Checkpoints Replication / Master Server Reporting and Logging / When to Log ... ... ... "src/backend/utils/misc/guc.c" 파일에 각 파라미터 별로 단위가 설정되어 있다. |
short_desc | text | 간단한 설명 |
extra_desc | text | 자세한 설명 (null 인 경우도 있음) |
context | text | 변경 가능한 경우를 분류한다. (1) internal 변경 불가능 하다. 변경하기 위해서는 configuration을 다시 하거나, initdb에 제공된 옵션을 변경해야 한다. (2) postmaster 서버가 시작될 때만 적용된다. 변경하려면 postgresql.conf 수정 후, 서버를 다시 시작해야한다. 혹은 서버 시작시 명령 줄에서 전달할 수 있다. (3) sighup postgresql.conf를 다시 읽고 변경 사항을 적용하게 한다. "pg_ctl reload" 혹은 "select pg_reload_conf()" 을 수행하면 된다. "server signaled" 라고 나오면 정상적으로 수행된 것이다. 동작 방식은 postmaster에게 SIGHUP 신호를 보내 postgresql.conf를 다시 읽고 변경 사항을 적용하게 한다. kill -1 `head -1 $PGDATA/postmaster.pid` 동일한 효과를 발휘한다. (4) superuser-backend postgresql.conf를 다시 읽고 변경 사항을 적용하게 한다. "pg_ctl reload" 혹은 "select pg_reload_conf()" 을 수행하면 된다. 연결 요청 패킷의 특정 세션 (예 : libpq의 PGOPTIONS 환경 변수를 통해)에 설정할 수 있지만 연결하는 사용자가 수퍼 유저 인 경우에만 가능하다. (5) backend postgresql.conf를 다시 읽고 변경 사항을 적용하게 한다. "pg_ctl reload" 혹은 "select pg_reload_conf()" 을 수행하면 된다. 연결 요청 패킷의 특정 세션 (예 : libpq의 PGOPTIONS 환경 변수를 통해)에 설정할 수 있다. (6) superuser SET 명령을 통해 세션에서 설정할 수 있다. superuser만 SET 명령을 통해 변경할 수 있다. postgresql.conf의 변경 사항은 SET과 세션 로컬 값이 설정되지 않은 경우에만 기존 세션에 영향을 준다. (7) user SET 명령을 통해 세션에서 설정할 수 있다. 모든 사용자는 세션 로컬 값을 변경할 수 있다. postgresql.conf의 변경 사항은 SET과 세션 로컬 값이 설정되지 않은 경우에만 기존 세션에 영향을 준다. |
vartype | text | 타입 형태를 나타낸다. (1) enum (2) string (3) bool (1bytes) (4) integer (4bytes) (5) real (floating point number 4 bytes) |
source | text | 어디에서 설정되었는지 나타낸다. (1) default 설정하지 않았을 경우 기본적으로 설정된 값 (2) configuration file postgresql.conf에 의해 설정한 값 (3) environment variable OS의 export 명령어를 통해 설정한 값 (4) client client가 접속하면서 설정한 값 (5) override (6) command line postgres 실행시 옵션으로 설정한 값 (7) "global" (8) "database" (9) "user" (10) "database user" (11) "interactive" (12) "test" (13) "session" |
min_val | text | 설정 가능한 최소 값 |
max_val | text | 설정 가능한 최대 값 |
enumvals | text[] | enum type 일 경우, 설정 가능한 값 리스트 |
boot_val | text | server start 할 때 설정된 값 |
reset_val | text | 현재 session에서 설정된 값 |
sourcefile | text | 설정한 configure 파일 이름 |
sourceline | integer | 설정한 configure 파일 라인 |
pending_restart | boolean | configure 파일에서 값이 변경되었지만, 다시 시작해야하는 경우 true, 그렇지 않으면 false. |
https://www.postgresql.org/docs/10/runtime-config.html
이곳에 환경 설정에 대한 자세한 설명 및 분류가 잘되어 있다.
출처
https://www.postgresql.org/docs/10/view-pg-settings.html
https://www.postgresql.org/docs/10/runtime-config.html
댓글 없음:
댓글 쓰기