1. Server Configuration 개요
ㅇDatabase System의 행동을 파라미터를 통해서 설정 및 제어
ㅇ$PGDATA/postgresql.conf 파일에 파라미터 존재 및 설정 변경
ㅇ서버 기동 시 Postmaster는 postgresql.conf 파일 내용을 적용
2. Parameter 확인
ㅇ 확인방법
1) show all, show <param> ;
edb=# show wal_level;
wal_level
-----------
archive
2) pg_settings
edb=# select name, setting, unit, category, short_desc, context, from pg_settings where name = 'wal_level';
name | setting | unit | category | short_desc | context
----------+---------+------+--------------------------+-------------------------------------------------+------------ wal_level | archive | | Write-Ahead Log/Settings | Set the level of information written to the WAL | postmaster |
3) current_setting
edb=# select current_setting('wal_level');
current_setting
-----------------
archive
ㅇ pg_settings
- Parameter 들에 대한 정보 및 현재 설정된 값을 보유
Name |
Type |
Description |
name |
text |
설정 파라미터 이름 |
setting |
text |
파라미터 현재 설정 값 |
unit |
text |
내포된 파라미터 단위 |
category |
text |
파라미터가 속한 논리적 그룹 |
short_desc |
text |
파라미터에 대한 간단한 설명 |
extra_desc |
text |
보다 상세한 파라미터 설명 |
context |
text |
파라미터 값을 설정하는데 요구되는 조건 (다음 페이지 참고) |
vartype |
text |
파라미터 Type (bool, enum, integer, real, or string) |
source |
text |
현재 파라미터 값의 소스 |
min_val |
text |
파라미터에 허용되는 최소 값 (null for non-numeric values) |
max_val |
text |
파라미터에 허용되는 최대 값 (null for non-numeric values) |
enumvals |
text[] |
열거형(enum) 파라미터의 허용되는 값들 (null for non-enum values) |
boot_val |
text |
파라미터를 설정하지 않을 경우 서버 기동 시 지정되는 값 |
reset_val |
text |
현재 세션에서 RESET 시 파라미터가 다시 설정되는 값 |
sourcefile |
text |
현재 적용되는 Configuration 파일 경로 및 파일명 (null 출력 : 다른 소스로부터 지정될 때, non-superuser에 의해서 확인 시) |
sourceline |
integer |
해당 Configuration File에서 해당 파라미터가 있는 위치 (Line) (null 출력 : 다른 소스로부터 지정될 때, non-superuser에 의해서 확인 시) |
ㅇ CONTEXT of pg_settings
Value |
Description |
internal |
- 직접적으로 값을 변경 할 수 없음 - 서버를 다시 만들거나 initdb로 제공된 옵션을 바꾸어 변경 가능 |
postmaster |
- 서버 기동 시 적용 변경 값 적용 가능 - postgresql.conf 파일에서 변경하며 서버 재기동 시 적용됨 |
sighup |
- 서버를 재기동하지 않고, postmaster에 의하여 현재 세션의 프로세스에 대해 변경 - postgresql.conf 파일에서 변경하고 SIGHUP 신호를 보냄으로써 변경 적용 |
backend |
- 서버를 재 기동하지 않고, SIGHUP 이후 세션에 대해서만 변경 값이 적용됨 (Re-load) - postgresql.conf 파일에서 변경하고 SIGHUP 신호를 보냄으로써 변경 적용 |
superuser |
- 서버를 재기동하지 않고, Superuser에 의해 트랜잭션이나 세션 단위로 변경 값 적용 - SET 명령어를 통해 현재 세션들에 대해서 변경 * is_local = true : 현재 트랜잭션들에 대해서 적용, false : 현재 세션들에 대해서 적용 |
user |
- 서버를 재 기동하지 않고, 모든 특정 User에 의해 해당 세션에 대해서 변경 값 적용 - SET 명령어를 통해 해당 세션에 대해서 변경 |
* internal / postmaster / sighup / backend : 서버단위 적용
* superuser / user : DB,세션단위 적용
- sighup
$ pg_ctl reload [-s] [-D datadir]
edb=# SELECT pg_reload_conf();
$ kill -SIGHUP <pid>
- backend
$ pg_ctl reload [-s] [-D datadir]
edb=# SELECT pg_reload_conf();
$ kill -SIGHUP <pid>
- superuser
edb=# SELECT set_config('<param>', '<new_value>', is_local);
edb=# SET <param> TO <new_value> ;
by. 이은석(2014.06.11)
'2. DBMS이야기 > 01. PostgreSQL' 카테고리의 다른 글
SQL Server 2012 VS PostgreSQL 9 (0) | 2014.06.13 |
---|---|
PostgreSQL DBlink 설치 및 사용법 (0) | 2014.06.13 |
[Admin] 2.Orations (명령어) (0) | 2014.06.02 |
PostgreSQL vs ORACLE Insert 성능 비교 (0) | 2014.06.02 |
[펌] PostgreSQL 9.1 - 동기 복제 : 퀵 스타트 (0) | 2014.05.30 |