2019년 5월 21일 화요일

PostgreSQL 에 psql 로 접속시 발생할 수 있는 error

PostgreSQL 에 psql 로 접속시 발생할 수 있는 error들이다.

모든 error 혹은 모든 상황을 정리한것은 아니고,
흔히 발생할 수 있는 것들이다.

<case 1>
PostgreSQL 이 stop 상태일 때, UDS(local)를 사용해서 접속을 시도했을 경우

% psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

<case 2>
PostgreSQL 이 stop 상태일 때, TCP(host)를 사용해서 접속을 시도했을 경우

% psql -h 127.0.0.1
psql: could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?

<case 3>
PostgreSQL 이 running 상태이고, pg_hba.conf 에 UDS(local) 를 reject 로 설정된 상태에서 접속을 시도했을 경우

% psql
psql: FATAL: pg_hba.conf rejects connection for host "[local]", user "postgresql", database "postgres"

<case 4>
PostgreSQL 이 running 상태이고, pg_hba.conf 에  TCP(host) 를 reject 로 설정된 상태에서 접속을 시도했을 경우

% psql -h 127.0.0.1
psql: FATAL: pg_hba.conf rejects connection for host "127.0.0.1", user "postgresql", database "postgres"

<case 5>
PostgreSQL 이 running 상태이고, pg_hba.conf 에 해당 TCP(host) 가 설정되지 않은 상태에서 접속을 시도했을 경우

% psql -h 127.0.0.1
psql: FATAL: no pg_hba.conf entry for host "127.0.0.1", user "postgresql", database "postgres"

2019년 5월 8일 수요일

Red Hat Enterprise Linux 8 (RHEL 8) 릴리즈 (2019.05.07)

2019.05.07 에 Red Hat Enterprise Linux 8 (RHEL 8) 릴리즈 되었다.

2018.11 부터 beta 버전이 공개되었었다.

관련 자료들을 검색해보면, 뭔가 많이 나오는데,
아직 덜 알려져서 그런지, 영어 자료들이 대부분이다.

그에 맞춰서 Red Hat 자격증들도 8 버전용 자격증들도 나왔다.
발 빠르게 자격증 장사(?)를 하겠다는 의지를 느낄 수 있다.

아직 7 도 잘 사용할 줄 모르는데 8 이라니.... 큰일이다.

https://developers.redhat.com/rhel8
이곳에서 iso 를 다운로드 받을 수 있다.

https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.0/x86_64/product-software
혹은 여기에서 다운로드 받을 수 있다.

출처
https://www.itzgeek.com/how-tos/linux/centos-how-tos/red-hat-enterprise-linux-8-release-date-and-new-features.html
https://developers.redhat.com/blog/2019/05/07/red-hat-enterprise-linux-8-now-generally-available
https://www.zdnet.com/article/rhel-8-released-its-the-last-pre-ibm-red-hat-linux-enterprise-linux
https://www.phoronix.com/scan.php?page=news_item&px=RHEL-8.0-Summit-2019-Expect
https://computingforgeeks.com/red-hat-enterprise-linux-rhel-8-new-features

2019년 5월 3일 금요일

PostgreSQL SET session

PostgreSQL 에 클라이언트로 접속 후,
SET 명령어를 통해 환경설정 값을 변경할 수 있다.

변경을 하면, 현재 자신이 연결된 session 에만 영향을 준다.
다른 session 에는 영향을 주지 않는다.
물론, session 이 close 되면, 환경설정 값들은 사라지게 된다.

session 으로 연결된 상태에서 환경설정 값을 변경할 수 있다.
모든 환경설정이 다 되는 것은 아니다.

context 가 superuser 혹은 user 인 환경설정만 가능하다.
superuser 인 것은 superuser 권한이 있어야 한다.

postgres=# select name,setting,context from pg_settings where context = 'superuser' or context = 'user';


set 으로 변경이 불가능한 환경설정인 경우에는 에러가 발생한다.

ERROR:  parameter "allow_system_table_mods" cannot be changed without restarting the server

set 으로 변경 가능한 환경설정 중에서 'wal_compression' 을 변경해 보자.

현재 off 값이 셋팅되어 있다.
3가지 방법으로 확인할 수 있다.
3가지 방법 중 원하는 방법으로 확인하면 된다.

postgres=# select name,setting,context from pg_settings where name = 'wal_compression';

postgres=# show wal_compression;

postgres=# select current_setting('wal_compression');


postgres=# set session wal_compression = on;

postgres=# select name,setting,context from pg_settings where name = 'wal_compression';

postgres=# show wal_compression;

postgres=# select current_setting('wal_compression');


set session 말고, set local 옵션도 있다.
set local 은 transaction 안에서만 사용할 수 있고, transaction 안에서만 유효하다.
transaction 안에서만 사용할 수 있다고 메세지가 나온다.


transaction 안에서만 사용 가능하고, transaction 이 끝나면 다시 원래대로 돌아온다.


transaction 안에서 set session 을 수행하면, commit 여부에 따라 결과가 달라진다.
rollback 을 수행하면 적용되지 않는다.


commit 을 수행하면 적용된다.


※ set 다음에 session, local 을 생략할 수 있다. 생략을 하면 session 으로 동작하게 된다.

set 대신에 set_config() 를 사용할 수 있다.
함수 원형은 아래와 같다.
set_config(setting_name, new_value, is_local)

세번째 인자 값에 따라 결과가 달라진다.




출처
https://www.postgresql.org/docs/10/sql-set.html
https://www.postgresql.org/docs/10/sql-show.html
https://www.postgresql.org/docs/10/config-setting.html
https://www.postgresql.org/docs/10/runtime-config.html
https://www.postgresql.org/docs/10/functions-admin.html

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...