2. DBMS이야기/01. PostgreSQL

[Admin] 3.Server Configuration : Parameter 변경

OSSW(Open Source System SoftWare 2014. 7. 4. 22:13

Parameter 변경



 context 값이 postmaster인 경우, Configuration File 변경 후 서버 재기동


$ psql edb -U enterprisedb

edb=# select name, setting, context from pg_settings where name = 'archive_mode';

     name     | setting |  context

--------------+---------+------------

 archive_mode | off      | postmaster


edb=# \q


$vi $PGDATA/postgresql.conf

archive_mode = on


$ pg_ctl restart

...


$ psql edb -U enterprisedb

edb=# select current_setting('archive_mode');  

 current_setting

-----------------

 on

1. setting, context 확인









2. configuration file 수정



3. 서버 재기동

   SESSION이 존재하면?



4. 변경 값 확인 







context 값이 sighup인 경우, Configuration File 변경 후 Reload 필요 (기존/신규 세션 모두 적용)


- 세션1

edb=# select name, setting, context 

         from pg_settings where name = 'autovacuum';

    name    | setting | context

------------+---------+---------

 autovacuum | off      | sighup


edb=# select datid, datname, pid, usesysid, usename, application_name 

          from pg_stat_activity;

 datid | datname| pid | usesysid |  usename    | application_name

------+--------+-----+---------+-------------+---------------

 14083 | edb     | 2222 |         10 | enterprisedb | psql



1. setting, context 확인






2. PID 확인









- 세션2 (3가지 방식 중 택1)

$vi $PGDATA/postgresql.conf

autovacuum = on


$ pg_ctl reload

server signaled

or

edb=# SELECT pg_reload_conf();

 pg_reload_conf

----------------

 t

or

$ kill -SIGHUP 2222

3. Configuration File 수정



4. SIGHUP (RELOAD)










- 세션1

   

edb=# select current_setting('autovacuum ');  

current_setting

-----------------

on    --> 현재 접속해 있던 세션도 변경 값 적용

 5. 변경 값 확인 

    (기존세션1)




context 값이 backend 인 경우, Configuration File 변경 후 Reload 필요 (신규세션만 적용)


- 세션1

 edb=#  select name, setting, context

           from pg_settings where name = 'ignore_system_indexes';

---------------------------+-------+---------

 ignore_system_indexes   | off     | backend


edb=# select datid, datname, pid, usesysid, usename, application_name 

          from pg_stat_activity;

 datid | datname | pid  | usesysid  |   usename    | application_name

-------+---------+------+----------+--------------+------------------

 14083 | edb     | 2577 |       10    | enterprisedb | psql


1. setting, context 확인





2. PID 확인








- 세션2 (3가지 방식 중 택1)

$vi $PGDATA/postgresql.conf

ignore_system_indexes = on


$ pg_ctl reload

server signaled

or

edb=# SELECT pg_reload_conf();

 pg_reload_conf

----------------

t
or

$ kill -SIGHUP 2577


3. Configuration File 수정


4. SIGHUP (RELOAD)












- 세션1

edb=# select current_setting('ignore_system_indexes');

 current_setting

-----------------

 off    --> 현재 접속해 있는 세션에는 적용되지 않음

5. 변경 값 확인

   (기존세션1)


- 세션3

 edb=# select current_setting('ignore_system_indexes');

current_setting

-----------------

on   --> 변경 적용된 이후 접속 세션에 대해서만 변경 값 적용

6. 변경 값 확인 

   (신규세션3)



context 값이 superuser or user 인 경우, 세션단위로 서버 기동 상태에서 Command Level로 변경 가능


edb=# select name, setting, context from pg_settings where context = 'superuser';


edb=# select set_config('log_statement_stats', 'on', false);   -- 현재 세션들에 대하여 적용

set_config

------------
on


edb=# SET log_statement_stats TO off;


edb=# select current_setting('log_statement_stats');

 current_setting

-----------------
off


1. setting, context 확인


2. DB 기동 상태에서 변경

 * is_local = true : 현재 트랜잭션들
 
대해서만 적용, false : 현재
 
션들에 대해서 적용






3. 변경 값 확인









by. 이은석(2014.07.04)

























'2. DBMS이야기 > 01. PostgreSQL' 카테고리의 다른 글

[Postgresql] Postgresql 백업 (pg_dump)  (0) 2014.07.12
PostgreSQL Privileges Part.3  (0) 2014.07.09
[PostgreSQL] PostgreSQL 에서의 Transaction 종류2  (0) 2014.07.02
PostgreSQL Privileges Part.2  (0) 2014.06.30
Hot Backup  (0) 2014.06.29