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 $ 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 ------------ edb=# SET log_statement_stats TO off; edb=# select current_setting('log_statement_stats'); current_setting ----------------- |
1. setting, context 확인 2. DB 기동 상태에서 변경 * is_local = true : 현재 트랜잭션들 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 |