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://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

WinSCP 기부

나는 리눅스(Linux)를 많이 사용하는 편이다. 회사에서도 사용하고, 개인적으로도 사용하고 있다. 그러다 보니 자연스럽게, SFTP를 많이 사용하게 된다. 리눅스에서는 SFTP에 대해 기본적으로 이렇게 저렇게 잘 지원을 해주는 편인데, 윈도...