나는 리눅스(Linux)를 많이 사용하는 편이다.
회사에서도 사용하고, 개인적으로도 사용하고 있다.
그러다 보니 자연스럽게, SFTP를 많이 사용하게 된다.
리눅스에서는 SFTP에 대해 기본적으로 이렇게 저렇게 잘 지원을 해주는 편인데,
윈도우는 그렇지 않다.
그래서 윈도우에서는 WinSCP를 설치해서 사용하고 있다.
기능도 잘 되고, 인터페이스도 깔끔하고, 무료이기 때문이다.
저번 Ubuntu,Thunderbird 기부 이후 문득,
또 다시 너무 신세만 지고 살아온게 아닌가 라는 생각이 들었다.
http://kimchki.blogspot.com/2017/10/ubuntu.html
http://kimchki.blogspot.com/2018/10/thunderbird.html
그래서, 기부를 하기로 했다.
https://winscp.net/eng/donate.php
기부를 하면 어떠한 혜택이 주어지는지에 대한 설명이 나온다.
donation 버튼을 클릭하면, 어떠한 방식으로 기부할지 선택하라고 한다.
제일 간단하고 편리한 PayPal을 이용했다.
$9.00 금액을 기부할 것이다 라는 내용이 나온다.
"Leave a note to WinSCP team"을 클릭하면, 메세지도 남길 수 있다.
Fighting !!!
오~ 고맙단다 ㅋㅋ
PayPal 계정에 거래 내역이 뜬다.
기부를 하면, 기부자 명단에 자동으로 올라간다.
방금 기부해서, November 2019 명단에서 맨 끝에 올라갔다.
"Do It" ??? 아,,, 내가 예전에 PayPal 을 Do It 으로 해놔서,,, 뭔가 이상하게 되었군.
기부를 하니, 뿌듯하다.
뭔가 감사의 표시를 한거 같아서 좋다.
많은 사람들을 위해, WinSCP 가 계속 잘 발전했으면 좋겠다.
2019년 11월 17일 일요일
Red Hat Enterprise Linux 8.1 (RHEL 8.1) 릴리즈 (2019.11.05)
2019.11.05 에 Red Hat Enterprise Linux 8.1 (RHEL 8.1) 릴리즈 되었다.
8.0 이후 6개월만에 업그레이드 되었다.
뭔가 업그레이드가 되었다고 하니, 일단 다운로드 해야겠다.
https://developers.redhat.com/products/rhel/download
이곳에서 iso 를 다운로드 받을 수 있다.
https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.1/x86_64/product-software
혹은 여기에서 다운로드 받을 수 있다.
해당 주소로 이동하면, 다운로드 할 수 있는 링크가 나온다.
이렇게 친절하게 표도 퍼왔다.
출처
https://www.redhat.com
8.0 이후 6개월만에 업그레이드 되었다.
뭔가 업그레이드가 되었다고 하니, 일단 다운로드 해야겠다.
https://developers.redhat.com/products/rhel/download
이곳에서 iso 를 다운로드 받을 수 있다.
https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.1/x86_64/product-software
혹은 여기에서 다운로드 받을 수 있다.
해당 주소로 이동하면, 다운로드 할 수 있는 링크가 나온다.
Version | Release Date | Description | Download |
---|---|---|---|
8.1.0 | 2019-11-05 | DVD iso | RHEL8 x86_64 (7 GB) |
Boot iso | RHEL8 x86_64 (564 MB) | ||
DVD iso | RHEL8 aarch64 (5 GB) | ||
Boot iso | RHEL8 aarch64 (526 MB) |
이렇게 친절하게 표도 퍼왔다.
출처
https://www.redhat.com
2019년 11월 13일 수요일
자격증 EDB Postgres Advanced Server Professional Certification 10
EnterpriseDB 에서는 PostgreSQL 에 대한 자격증을 발급하고 있다.
아래 4가지로 분류된다.
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
아래 4가지로 분류된다.
- PostgreSQL Associate Certification
- PostgreSQL Professional Certification
- EPAS Associate Certification
- EPAS Professional Certification
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
EDB Postgres Advanced Server 10 Professional Certification |
This Certification assesses and certifies a database professional’s skills needed to perform more advanced DBA responsibilities for maintaining and managing EDB Postgres Advanced Server servers and applications successfully in a production environment. Competencies: The EDB Postgres Advanced Server Professional Certification requires competence in the following:
|
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
자격증 EDB Postgres Advanced Server Associate Certification 10
EnterpriseDB 에서는 PostgreSQL 에 대한 자격증을 발급하고 있다.
아래 4가지로 분류된다.
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
아래 4가지로 분류된다.
- PostgreSQL Associate Certification
- PostgreSQL Professional Certification
- EPAS Associate Certification
- EPAS Professional Certification
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
EDB Postgres Advanced Server 10 Associate Certification |
This exam assesses and certifies a database professional’s skills necessary for maintaining and managing EDB Postgres Advanced Server servers and applications in a production environment. Affirms knowledge and capabilities in leveraging open source based database technology for enterprise environments. Competencies: The EDB Postgres Advanced Server Associate Certification requires competence in the following:
|
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
자격증 PostgreSQL Professional Certification 10
EnterpriseDB 에서는 PostgreSQL 에 대한 자격증을 발급하고 있다.
아래 4가지로 분류된다.
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
아래 4가지로 분류된다.
- PostgreSQL Associate Certification
- PostgreSQL Professional Certification
- EPAS Associate Certification
- EPAS Professional Certification
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
PostgreSQL 10 Professional Certification |
This exam is the definitive standard for PostgreSQL professionals. This certification assesses and certifies a database professional’s ability to work in demanding, large-scale, real-world production environments. The PostgreSQL Professional Certification requires competence in the following:
|
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
자격증 PostgreSQL Associate Certification 10
EnterpriseDB 에서는 PostgreSQL 에 대한 자격증을 발급하고 있다.
아래 4가지로 분류된다.
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
아래 4가지로 분류된다.
- PostgreSQL Associate Certification
- PostgreSQL Professional Certification
- EPAS Associate Certification
- EPAS Professional Certification
10, 11, 12 등등, 각 버전마다 따로 취득을 해야 하고, 유효기간은 없다.
PostgreSQL 10 Associate Certification |
This certification exam assesses and certifies that a database professional can demonstrate the fundamental skills necessary to maintain and manage a PostgreSQL server and related applications in a production environment. The PostgreSQL Associate Certification requires competence in the following:
|
출처
https://www.enterprisedb.com/ko/training/postgres-certification
https://www.enterprisedb.com/ko/free-postgres-training
https://www.enterprisedb.com/ko/training/learning-paths
https://www.enterprisedb.com/ko/training/certification-faq
2019년 10월 10일 목요일
PostgreSQL psql 에서 more 없이 결과 출력 방법
PostgreSQL psql 에서 쿼리의 결과 내용이 많으면,
한번에 한 화면에 나오지 않는다.
한 화면 만큼 결과가 나오고 나면 "--More--" 메세지가 나오고,
key 입력을 해야 그 다음 결과가 출력된다.
아래처럼 입력을 하면 key 입력을 하는 불편함을 없앨 수 있다.
필요할 경우 다시 나타나게 할 수 있다.
on, off 없이 toggle 형태로 입력 할 수 있다.
출처
https://stackoverflow.com/questions/11180179/postgresql-disable-more-output
한번에 한 화면에 나오지 않는다.
한 화면 만큼 결과가 나오고 나면 "--More--" 메세지가 나오고,
key 입력을 해야 그 다음 결과가 출력된다.
아래처럼 입력을 하면 key 입력을 하는 불편함을 없앨 수 있다.
\pset pager off
필요할 경우 다시 나타나게 할 수 있다.
\pset pager on
on, off 없이 toggle 형태로 입력 할 수 있다.
\pset pager
출처
https://stackoverflow.com/questions/11180179/postgresql-disable-more-output
2019년 9월 30일 월요일
CentOS 8 릴리즈 (2019.09.24)
드디어 CentOS 8 릴리즈가 되었다. (2019.09.24)
RHEL 8 릴리즈 (2019.05.07) 이후 4개월이 넘게 걸렸다.
http://kimchki.blogspot.com/2019/05/red-hat-enterprise-linux-8-rhel-8_8.html
RHEL 7.6 -> RHEL 8 -> RHEL 7.7 순서로 릴리즈 되는 바람에, CentOS도 순서가 엉키게 되었다.
CentOS 7.6 -> CentOS 8(작업하는 도중에 중단) -> CentOS 7.7 -> CentOS 8 순서가 되었다.
그래서 CentOS 8 릴리즈 시간이 좀 걸렸다.
https://wiki.centos.org/About/Building_8
위 링크에 들어가면, 아래 그림처럼 각 단계별로 상태를 확인할 수 있다.
https://wiki.centos.org/Download
위 링크에서, 다른 정보도 확인할 수 있다.
아마도 당장 8 version을 사용하지는 않은거 같다.
현업에서 주로 7 version을 주로 사용하고 있기 때문이다.
심지어 6 version을 사용하고 있는곳도 있다.
나중에 시간 날 때 설치해 보고, 기웃기웃 해봐야겠다.
출처
https://wiki.centos.org/About/Building_8
https://wiki.centos.org/Download
RHEL 8 릴리즈 (2019.05.07) 이후 4개월이 넘게 걸렸다.
http://kimchki.blogspot.com/2019/05/red-hat-enterprise-linux-8-rhel-8_8.html
RHEL 7.6 -> RHEL 8 -> RHEL 7.7 순서로 릴리즈 되는 바람에, CentOS도 순서가 엉키게 되었다.
CentOS 7.6 -> CentOS 8(작업하는 도중에 중단) -> CentOS 7.7 -> CentOS 8 순서가 되었다.
그래서 CentOS 8 릴리즈 시간이 좀 걸렸다.
https://wiki.centos.org/About/Building_8
위 링크에 들어가면, 아래 그림처럼 각 단계별로 상태를 확인할 수 있다.
https://wiki.centos.org/Download
위 링크에서, 다른 정보도 확인할 수 있다.
아마도 당장 8 version을 사용하지는 않은거 같다.
현업에서 주로 7 version을 주로 사용하고 있기 때문이다.
심지어 6 version을 사용하고 있는곳도 있다.
나중에 시간 날 때 설치해 보고, 기웃기웃 해봐야겠다.
출처
https://wiki.centos.org/About/Building_8
https://wiki.centos.org/Download
2019년 9월 24일 화요일
CentOS 네트워크(Network) 툴(tool)
# yum install NetworkManager
# systemctl status NetworkManager
NetworkManager.service - Network Manager
Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled)
Active: active (running) since Fri, 08 Mar 2013 12:50:04 +0100; 3 days ago
# systemctl start NetworkManager
# systemctl enable NetworkManager
2.5. NetworkManager Tools
Table 2.1. A Summary of NetworkManager Tools and Applications
Application or Tool | Description |
---|---|
nmcli | A command-line tool which enables users and scripts to interact with NetworkManager. Note that nmcli can be used on systems without a GUI such as servers to control all aspects of NetworkManager. It has the same functionality as GUI tools. |
nmtui | A simple curses-based text user interface (TUI) for NetworkManager |
nm-connection-editor | A graphical user interface tool for certain tasks not yet handled by the control-center utility such as configuring bonds and teaming connections. You can add, remove, and modify network connections stored by NetworkManager. To start it, enter nm-connection-editor in a terminal: ~]$ nm-connection-editor
|
control-center | A graphical user interface tool provided by the GNOME Shell, available for desktop users. It incorporates a Network settings tool. To start it, press the Super key to enter the Activities Overview, type Network and then press Enter. The Network settings tool appears. |
network connection icon | A graphical user interface tool provided by the GNOME Shell representing network connection states as reported by NetworkManager. The icon has multiple states that serve as visual indicators for the type of connection you are currently using. |
https://haker.tistory.com/55
http://millky.com/@origoni/post/1051
https://youngmind.tistory.com/entry/CentOS-%EA%B0%95%EC%A2%8C-PART-1-7-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%84%B1
출처
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-installing_networkmanager
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-checking_the_status_of_networkmanager
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-starting_networkmanager
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-networkmanager_tools
2019년 9월 16일 월요일
PostgreSQL 모니터링(monitoring) 방법
DB 모니터링 항목(상시점검항목)에 대한 가이드 (check list, critical 항목들)
DB 부하 상태 정보들을 획득할 수 있는 항목 및 방법에 대한 가이드
출처
https://www.postgresql.org/docs/10/monitoring.html
https://www.postgresql.org/docs/10/monitoring-stats.html
DB 부하 상태 정보들을 획득할 수 있는 항목 및 방법에 대한 가이드
Statistics Collector
- PostgreSQL statistics collector는 server activity를 수집하고 리포팅 하기 위한 sub system이다.
- 현재 상태를 보여주는 Dynamic Statistics View와 수집된 정보를 보여주는 Collected Statistics view가 있다.
- 각 view 는 select * from <view name>; 방식으로 조회 가능하다.
- 각 view 를 적절히 조합하면 필요한 정보를 습득 가능하다.
Statistics 보기
- 시스템의 현재 상태를 보여주는 Dynamic View 종류는 다음과 같다.
View Name | Description |
---|---|
pg_stat_activity | server process당 한 row 이며, process의 상태, 동작중인 query 등과 같은 현재 activity 관련 정보를 나타냄. 자세한 정보는 pg_stat_activity |
pg_stat_replication | WAL sender process 당 한 row 이며, 해당 센더가 접속되어있는 standby server의 replication 통계정보를 나타냄. 자세한 정보는 pg_stat_replication |
pg_stat_wal_receiver | 한 row 이며 현재 WAL receiver 의 통계 정보를 나타냄. 자세한 정보는 pg_stat_wal_receiver |
pg_stat_ssl | 한 connection 당 한 row, 해당 connection 이 사용하는 SSL 관련 정보 나타냄. 자세한 정보는 pg_stat_ssl |
pg_stat_progress_vacuum | VACUUM을 실행중인 backend 당 한 row, 현재 VACUMM의 진행상황 나타냄. 자세한 정보는 pg_stat_progress_vacumm |
- 수집된 정보들을 보여주는 Collected Statistics View 종류는 다음과 같다.
View Name | Description |
---|---|
pg_stat_archiver | 한 row, wal archiver process의 활동 통계 정보를 나타냄. 자세한 정보는 pg_stat_archiver |
pg_stat_bgwriter | 한 row, background writer process 의 활동 통계 정보를 나타냄. 자세한 정보는 pg_stat_bgwriter |
pg_stat_database | Database당 한 row, database 관련 통계정보를 나타냄. 자세한 정보는 pg_stat_database |
pg_stat_database_conflicts | Database당 한 row, standby server에 있는 recovery 정보와 conflict로 취소된 query 관련 통계 정보를 나타냄. 자세한 정보는 pg_stat_database_conflicts |
pg_stat_all_tables | 현 database 의 각 table 당 한 row, 특정 테이블 accesss관련 통계정보를 나타냄. 자세한 정보는 pg_stat_all_tables |
pg_stat_sys_tables | pg_stat_all_tables와 같으며, system table 관련 정보만 나타냄 |
pg_stat_user_tables | pg_stat_all_tables 와 같지만, User table 관련 정보만 나타냄 |
pg_stat_xact_all_tables | pg_stat_all_tables와 비슷하지만, 아직 pg_stat_all_tables에 포함되지 않은 현재 transaction 까지 포함함. live/dead row 수, vacuum, analyze action column 은 포함되지 않음 |
pg_stat_xact_sys_tables | pg_stat_xact_all_tables와 같지만 , system tables 관련 정보만 나타냄 |
pg_stat_xact_user_tables | pg_stat_xact_all_tables와 같지만 , User table 관련 정보만 나타냄 |
pg_stat_all_indexes | 현 database의 각 index 당 한 row, 특정 index access 관련 통계 정보를 나타냄. 자세한 정보는 pg_stat_all_indexes |
pg_stat_sys_indexes | pg_stat_all_indexes와 같지만, system tables 관련 정보만 나타냄 |
pg_stat_user_indexes | pg_stat_all_indexes와 같지만, User table 관련 정보만 나타냄 |
pg_statio_all_tables | 현 database 의 각 table 당 한 row, 특정 테이블 I/O 관련 통계정보를 나타냄. 자세한 정보는 pg_statio_all_tables |
pg_statio_sys_tables | pg_statio_all_tables와 같지만, system tables 관련 정보만 나타냄 |
pg_statio_user_tables | pg_statio_all_tables와 같지만, User table 관련 정보만 나타냄 |
pg_statio_all_indexes | 현 database의 각 index 당 한 row, 특정 index I/O 관련 통계 정보를 나타냄. 자세한 정보는 pg_statio_all_indexes |
pg_statio_sys_indexes | pg_statio_all_indexes와 같지만, system tables 관련 정보만 나타냄 |
pg_statio_user_indexes | pg_statio_all_indexes와 같지만, User table 관련 정보만 나타냄 |
pg_statio_all_sequences | 현 database의 각 sequence 당 한 row, 특정 sequence 에 대한 I/O 통계정보를 나타냄. 자세한 정보는 pg_statio_all_sequences |
pg_statio_sys_sequences | pg_statio_all_sequences와 같지만, system sequences 관련 정보만 나타냄 |
pg_statio_user_sequences | pg_statio_all_sequences와 같지만, user sequences 관련 정보만 나타냄 |
pg_stat_user_functions | function 당 한 row, 해당 function 수행 관련 통계 정보 나타냄. 자세한 정보는 pg_stat_user_functions |
pg_stat_xact_user_functions | pg_stat_user_functions 와 비슷하지만, 현 transaction 동안의 호출만 count (pg_stat_user_functions 에 아직 포함되지 않은 통계 정보) |
PostgreSQL Error Codes
- PostgreSQL이 출력하는 모든 message에는 5 글자의 error code 가 포함됩니다. 이 Error code는 SQL Standard convention을 따른다.
- 5글자의 error code 중 앞 2글자는 error 종류를 나타내고, 나머지 3글자는 세부사항을 나타낸다.
- 자세한 에러코드는 https://www.postgresql.org/docs/10/errcodes-appendix.html에서 확인 가능하다.
출처
https://www.postgresql.org/docs/10/monitoring.html
https://www.postgresql.org/docs/10/monitoring-stats.html
PostgreSQL 로그(Log) 레벨 설정
PostgreSQL은 여러가지 상황에 따른 내용을 텍스트 형태의 로그(Log)로 남길 수 있다.
postgresql.conf에서 로그(Log) 레벨을 설정할 수 있다.
※ 에러 레벨
출처
https://www.postgresql.org/docs/10/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHEN
https://www.postgresql.org/docs/10/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES
postgresql.conf에서 로그(Log) 레벨을 설정할 수 있다.
- client_min_messages (enum)
클라이언트에 보낼 메시지 수준을 제어한다.
DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, ERROR 레벨을 설정할 수 있다.
각 레벨 순서대로 뒤 레벨의 수준을 포함한다.
레벨이 낮을수록(아래쪽일수록) 더 적은 메시지만 전송된다.
Default : NOTICE - log_min_messages (enum)
서버 로그에 기록되는 메시지 수준을 제어한다.
DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC 레벨을 설정할 수 있다.
각 레벨 순서대로 뒤 레벨의 수준을 포함한다.
레벨이 낮을수록(아래쪽일수록) 로그에 보내는 메시지 수가 줄어든다.
Superuser만 설정 변경이 가능하다.
Default : WARNING
- log_min_error_statement (enum)
에러를 발생시키는 SQL문을 서버 로그에 기록한다.
DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC 레벨을 설정할 수 있다.
현재 SQL문은 지정된 수준 이상의 메시지에 대한 로그 항목에 포함된다.
Superuser만 설정 변경이 가능하다.
Default : ERROR (error / log messages / panics / fatal error 를 일으키는 명령문이 기록된다)
※ 에러 레벨
심각도 | 용도 | syslog | eventlog |
---|---|---|---|
DEBUG1~DEBUG5 | 개발자를 위한 상세 정보를 제공한다. (DEBUG5가 가장 많은 로그를 남기고, 숫자가 적어질수록 로그의 양이 줄어든다) | DEBUG | INFORMATION |
INFO | VACUUM VERBOSE로부터 출력 같은 사용자가 암시적으로 요청한 정보를 제공한다. | INFO | INFORMATION |
NOTICE | 공지 같이 사용자가 코드 개선을 위해 사용할 수 있는 유익한 정보가 제공된다. | NOTICE | INFORMATION |
WARNING | - 트랜잭션 블록 외부로 COMMIT 같은 문제의 가능성이 있는 경고를 제공한다. - COMMAND를 멈춘 동안 해결되지 않으면 오류가 발생할 수 있다. - 서버 및 App 단 측면에서 이슈를 조기발견하기에 좋다. | NOTICE | WARNING |
ERROR | 현재 명령이 중단된 원인이 되는 에러를 알려준다. | WARNING | ERROR |
LOG | - Checkpoint 작업 같이 관리자가 관심 있어 할 정보를 알려준다. - 정상 작동 메시지 | INFO | INFORMATION |
FATAL | - 현재 세션이 중단된 원인이 되는 에러를 알려준다. - 사용자가 다시 시도할 수 있으며, cluster의 다른 DB는 영향을 받지 않는다. | ERR | ERROR |
PANIC | - 모든 DB 세션이 중단된 원인이 되는 에러를 알려준다. - 모든 사용자에게 영향을 미치는 중요한 상황이다. | CRIT | ERROR |
- log_min_duration_statement(integer)
명령문이 적어도 지정된 밀리 초 동안 실행되면 완료된 각 명령문의 지속 기간을 기록한다.
- ‘0’ : 모든 명령문의 지속 시간을 기록한다.
- ‘-1’ : 로깅 문장의 기간을 비활성화 한다.
- ‘int’ : 만약 250ms로 설정하면 250ms 이상 실행되는 모든 SQL문이 기록된다.
Superuser만 설정 변경이 가능하다.
확장 Query Protocol을 사용하는 클라이언트의 경우 Parse / Bind / Execute 단계의 기간은 독립적으로 기록된다.
출처
https://www.postgresql.org/docs/10/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHEN
https://www.postgresql.org/docs/10/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES
2019년 9월 11일 수요일
CentOS 8 릴리즈 연기
CentOS는 RHEL 기반으로 만들어지기 때문에,
RHEL 새로운 버전이 발표되면, 1~2달 후에 CentOS 새로운 버전이 발표되는게 일반적이다.
"RHEL 8"은 2019년 5월에 발표되었었다.
Red Hat Enterprise Linux 8 (RHEL 8) 릴리즈 (2019.05.07)
http://kimchki.blogspot.com/2019/05/red-hat-enterprise-linux-8-rhel-8_8.html
그래서 "CentOS 8"을 기다리고 있었다.
가끔씩 진행상황을 확인하면서.
근데 왜 이렇게 오래 걸리는지.... 진도가 부진하더니,
결국 중단을 하고 말았다.
CentOS 7.7 먼저 작업 하겠다고 한다.
https://wiki.centos.org/About/Building_8
릴리즈 날짜를 보면, "RHEL 8" 보다 "RHEL 7.7"이 나중에 릴리즈 되었다.
"RHEL 8" 보다 "RHEL 7.7"이 나중에 릴리즈 되었지만,
"CentOS 8"보다 "CentOS 7.7"를 먼저 작업 하기로 결정한 모양이다.
https://wiki.centos.org/About/Building_7
결론적으로, "CentOS 8"을 사용해 보려면 좀 더 기다려야 할 듯 싶다.
출처
http://kimchki.blogspot.com/2019/05/red-hat-enterprise-linux-8-rhel-8_8.html
https://wiki.centos.org/About/Building_8
https://wiki.centos.org/About/Building_7
https://access.redhat.com/articles/3078
RHEL 새로운 버전이 발표되면, 1~2달 후에 CentOS 새로운 버전이 발표되는게 일반적이다.
"RHEL 8"은 2019년 5월에 발표되었었다.
Red Hat Enterprise Linux 8 (RHEL 8) 릴리즈 (2019.05.07)
http://kimchki.blogspot.com/2019/05/red-hat-enterprise-linux-8-rhel-8_8.html
그래서 "CentOS 8"을 기다리고 있었다.
가끔씩 진행상황을 확인하면서.
근데 왜 이렇게 오래 걸리는지.... 진도가 부진하더니,
결국 중단을 하고 말았다.
CentOS 7.7 먼저 작업 하겠다고 한다.
https://wiki.centos.org/About/Building_8
릴리즈 날짜를 보면, "RHEL 8" 보다 "RHEL 7.7"이 나중에 릴리즈 되었다.
Release | General Availability Date |
---|---|
RHEL 8.5 | 2021-11-09 |
RHEL 8.4 | 2021-05-18 |
RHEL 8.3 | 2020-11-03 |
RHEL 8.2 | 2020-04-28 |
RHEL 8.1 | 2019-11-05 |
RHEL 8.0 | 2019-05-07 |
RHEL 7.9 | 2020-09-30 |
RHEL 7.8 | 2020-03-31 |
RHEL 7.7 | 2019-08-06 |
RHEL 7.6 | 2018-10-30 |
RHEL 7.5 | 2018-04-10 |
RHEL 7.4 | 2017-07-31 |
RHEL 7.3 | 2016-11-03 |
RHEL 7.2 | 2015-11-19 |
RHEL 7.1 | 2015-03-05 |
RHEL 7.0 GA | 2014-06-09 |
RHEL 7.0 Beta | 2013-12-11 |
RHEL 6.10 | 2018-06-19 |
RHEL 6.9 | 2017-03-21 |
RHEL 6.8 | 2016-05-10 |
RHEL 6.7 | 2015-07-22 |
RHEL 6.6 | 2014-10-14 |
RHEL 6.5 | 2013-11-21 |
RHEL 6.4 | 2013-02-21 |
RHEL 6.3 | 2012-06-20 |
RHEL 6.2 | 2011-12-06 |
RHEL 6.1 | 2011-05-19 |
RHEL 6.0 | 2010-11-09 |
"RHEL 8" 보다 "RHEL 7.7"이 나중에 릴리즈 되었지만,
"CentOS 8"보다 "CentOS 7.7"를 먼저 작업 하기로 결정한 모양이다.
https://wiki.centos.org/About/Building_7
결론적으로, "CentOS 8"을 사용해 보려면 좀 더 기다려야 할 듯 싶다.
출처
http://kimchki.blogspot.com/2019/05/red-hat-enterprise-linux-8-rhel-8_8.html
https://wiki.centos.org/About/Building_8
https://wiki.centos.org/About/Building_7
https://access.redhat.com/articles/3078
PostgreSQL Replication 설정 방법
PostgreSQL Replication 개요
서버 1대로 DB 를 운영 중일때, 만약 서버에 문제가 생기면 서비스를 정작적으로 수행할 수 없게 된다.이럴 경우를 대비해서 예비 서버를 준비해 놓는다.
문제 발생 시, 예비 서버를 사용해서 서비스를 지속적으로 수행할 수 있도록 해야 한다.
이렇게 하기 위해서는 메인 서버에 갱신되는 DB 의 내용을 예비 서버에도 동일하게 유지시켜 줘야 하는데, 이럴 때 구축하는 것을 replication 이라고 한다.
replication 기능을 내부적으로 가지고 있는 DB 도 있고, 가지고 있지 않은 DB 도 있다.
다행히도 PostgreSQL 에도 replication 이라는 기능을 내부적으로 가지고 있다.
PostgreSQL replication 을 구성하는 방식에는 Log-Shipping, Streaming 2가지 방식이 있다.
- Log-Shipping 방식은 pg_xlog 디렉토리 안의 WAL 파일 자체를 전달하는 방식이다.
- Streaming 방식은 로그 내용을 전달하는 방식이다.
PostgreSQL의 Replication 구축
PostgreSQL replication Streaming 방식을 구축하는 과정을 기술해 본다.- 메인 서버를 master server 라고 지칭하겠다.
- 예비 서버를 stand-by server 라고 지칭하겠다.
Master 서버의 postgresql.conf 파일 수정하기
자신에게 맞는 편한 editor 를 사용해서 편집하면 된다. postgresql.conf 에는 여러가지 환경설정 값을 수정할 수 있다.listen_addresses = '*' wal_level = replica max_wal_senders = 2 wal_keep_segments = 32 |
listen_addresses
- default 값은 'localhost' 로 되어 있다.접속을 허용하는 ip 주소를 입력하는 항목이다.
- '*' 의 의미는 외부의 모든 ip 주소의 접속을 허용하겠다는 의미이다.
- 인증, 권한 관리는 pg_hba.conf 파일에서 진행하면 되므로 '*' 를 입력하자.
wal_level
- 9.6 이전 버전에서는 archive 와 hot_standby 옵션이 있었다. 지금도 설정 가능하만, relica 와 동일하게 취급된다.WAL 에 기록되는 정보의 양을 결정하는 항목이다.
- minimal, replica, logical 중 1가지를 선택할 수 있다.
- default 값은 minimal 로 되어 있다.
- minimal 은 충돌 또는 즉시 셧다운으로부터 복구하기 위해 필요한 정보만 기록하는 것이다.
- replica 은 WAL 아카이브에 필요한 로깅과 대기 서버에서 읽기 전용 쿼리에 필요한 정보를 추가한다.
- logical은 논리적 디코딩을 지원하는 데 필요한 정보를 추가한다.
max_wal_senders
- master server 에서 postgresql 을 실행하면 생성되는 process 들 중에서,WAL 파일을 전송할 수 있는 최대 서버수를 결정하는 항목이다. default 값은 0 으로 되어 있다.
- WAL sender 역할을 하는 process 의 갯수를 의미한다.
- replication 이 실행되면 아래 샘플 화면처럼 sender process 가 실행되어 있는걸 확인할 수 있다. 이때 sender process 개수를 의미한다.
kimchki 10225 1 0 11:23 pts/1 00:00:00 /home/kimchki/postgresql/bin/postgres kimchki 10227 10225 0 11:23 ? 00:00:00 postgres: checkpointer process kimchki 10228 10225 0 11:23 ? 00:00:00 postgres: writer process kimchki 10229 10225 0 11:23 ? 00:00:00 postgres: wal writer process kimchki 10230 10225 0 11:23 ? 00:00:00 postgres: autovacuum launcher process kimchki 10231 10225 0 11:23 ? 00:00:00 postgres: stats collector process kimchki 10243 10225 0 11:23 ? 00:00:00 postgres: wal sender process kimchki 10.0.2.2(58506) streaming 0/F60001E8 |
wal_keep_segments
- master server 에 보관할 WAL 파일의 수를 결정하는 항목이다.
- default 값은 0 으로 되어 있다.
- WAL 파일의 갯수가 32개가 되었을 때, 33번째 파일이 생성되는것이 아니라, 1번째 WAL 파일부터 다시 overwrite 하게 된다.
max_wal_senders, wal_keep_segments
- max_wal_senders, wal_keep_segments 는 상황에 맞춰 설정하면 된다.
Master 서버의 pg_hba.conf 파일 수정하기
host replication kimchki 0.0.0.0/0 trust |
- kimchki 사용자가 접속할 수 있게 해준다.
- 주석표시로 되어 있는데, 주석표시를 제거해 준다.
- 또한, IP 도 0.0.0.0/0 으로 변경해서 모든 IP 를 접속할 수 있게 해준다.
Master 서버의 PostgreSQL 재시작하기
변경된 설정 파일을 적용하기 위해 master 서버의 PostgreSQL을 restart 시킨다.Stand-by 서버 설정하기
Stand-by 서버 postgresql.conf 파일을 백업해 놓고 postgresql data 폴더 안에 있는 모든 파일을 삭제 한다.왜냐하면 master 서버 PostgreSQL data 를 가져와야 하기 때문이다. (비우지 않으면 다음 단계에서 해당 디렉토리가 비어있지 않다는 에러 메세지가 나올것이다.)
서버 데이터 복제하기
master 서버 PostgreSQL data 를 stand-by 서버 PostgreSQL에 넣어야 한다. 왜냐하면 현재의 data 상태를 맞춰야 그 다음부터는 log 를 통해 data 를 동기화할 수 있기 때문이다.pg_basebackup 프로그램을 사용하면 data 를 넣을 수 있다. (running 중인 PostgreSQL data 를 backup 해 주는 역할)
stand-by 서버에 접속한다.
shell 에서 아래 명령어를 수행한다.
% pg_basebackup -h MASTER_IP -D [data directory] -v -P -X stream |
- -D 옵션에는 stand-by 서버 PostgreSQL data 를 저장할 디렉토리를 입력한다.-h 옵션에는 master 서버 IP address 를 입력한다. 해당 디렉토리는 비어 있는 디렉토리여야 한다. master 서버 PostgreSQL data 를 통채로 가져올 것이기 때문이다.
- -v 옵션은 부가적인 정보를 표기해 준다.
- -P 옵션은 전송 진행 상황을 표기해 준다.
- -X 옵션은 WAL 도 같이 backup 하라는 옵션이다.
- stream 방식은 백업이 생성되는 동안 트랜잭션 로그도 같이 한다는 의미이다. 이렇게 하면 서버에 대한 두 번째 연결이 열리고 백업을 실행하는 동안 트랜잭션 로그 스트리밍이 병렬로 시작된다. 따라서 max_wal_senders 매개 변수로 구성된 두 개의 연결을 사용한다.
- fetch 방식은 트랜잭션 로그 파일은 백업이 끝날 때 수집된다. 따라서 wal_keep_segments 매개 변수를 높게 설정해야 백업이 끝나기 전에 로그가 제거되지 않는다.
pg_basebackup을 수행 후 아래와 같은 결과를 통해 정상적으로 수행되었음을 확인 할 수 있다.
pg_basebackup: initiating base backup, waiting for checkpoint to complete pg_basebackup: checkpoint completed transaction log start point: 0/F7000028 on timeline 1 pg_basebackup: starting background WAL receiver transaction log end point: 0/F7000130 pg_basebackup: waiting for background process to finish streaming ... pg_basebackup: base backup completed 2569818/2569818 kB (100%), 1/1 tablespace |
Stand-by 서버 postgresql.conf 파일 설정
백업해 놓았던, stand-by 서버 postgresql.conf 파일을 PostgreSQL data 디렉토리에 overwrite 한다.왜냐하면 PostgreSQL data 디렉토리에 있는 postgresql.conf 파일은 master 서버 postgresql.conf 파일이기 때문이다.
stand-by 서버 postgresql.conf 파일을 아래와 같이 수정하여 stand-by 기능을 활성화 시킨다.
hot_standby = on |
Stand-by 서버 recovery.conf 설정
postgresql.conf 파일과 같은 경로에 recovery.conf 파일을 새롭게 생성하고 아래 내용을 입력한다.standby_mode = on primary_conninfo = 'host=MASTER_IP port=5432 user=kimchki password=password' |
primary_conninfo 에 master 서버 postgresql 정보를 입력한다. 이 정보를 이용해서 master 서버 PostgreSQL에 접속해서 실시간으로 WAL 내용을 전달 받는다.
wal sender 및 receiver process 확인
master 서버에 보면 wal sender process 가 생성된것을 확인할 수 있다.kimchki 10225 1 0 11:23 pts/1 00:00:00 /home/kimchki/postgresql/bin/postgres kimchki 10227 10225 0 11:23 ? 00:00:00 postgres: checkpointer process kimchki 10228 10225 0 11:23 ? 00:00:00 postgres: writer process kimchki 10229 10225 0 11:23 ? 00:00:00 postgres: wal writer process kimchki 10230 10225 0 11:23 ? 00:00:00 postgres: autovacuum launcher process kimchki 10231 10225 0 11:23 ? 00:00:00 postgres: stats collector process kimchki 10243 10225 0 11:23 ? 00:00:00 postgres: wal sender process kimchki 10.0.2.2(58506) streaming 0/F60001E8 |
stand-by 서버에 보면 wal receiver process 가 생성된것을 확인할 수 있다.
kimchki 21547 1 0 11:23 pts/2 00:00:00 /home/kimchki/postgresql/bin/postgres kimchki 21548 21547 0 11:23 ? 00:00:00 postgres: startup process recovering 0000000100000000000000F6 kimchki 21549 21547 0 11:23 ? 00:00:00 postgres: checkpointer process kimchki 21550 21547 0 11:23 ? 00:00:00 postgres: writer process kimchki 21551 21547 0 11:23 ? 00:00:00 postgres: stats collector process kimchki 21552 21547 0 11:23 ? 00:00:00 postgres: wal receiver process streaming 0/F60001E8 |
Replication 동작 확인
master 서버 PostgreSQL에 data 변경을 하고, stand-by 서버 PostgreSQL에 변경사항이 잘 적용되는지 확인한다.출처
피드 구독하기:
글 (Atom)
화곡 어쩌라고, 굴사냥
석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...
-
종종 youtube에서 영상이나 노래를 다운로드 하고 싶을 때가 있다. 그래서 구글에서 검색해보면 수 많은 유투브(youtube) 다운로드(download) 사이트, 프로그램 정보를 찾을 수 있다. 그 중에서 몇가지를 기록해 두고자 한다. ...
-
PostgreSQL 은 DBMS 이다. 당연히 socket 을 통한 접속 기능을 제공하고 있다. 처음 설치를 하면, 보안을 위해서 socket 외부 접속이 막혀있다. 이것을 열어주기 위해서는 postgresql.conf 파일을 수정해야 한다. ...
-
Thunderbird(썬더버드) 백업 하는 방법은 간단하다. Thunderbird(썬더버드)는 특정 폴더에 메일 계정 정보와 메일 내용 모두 저장된다. 그러므로, 그 특정 폴더만 잘 백업하면 된다. 탐색기 실행 후, 아래 내용...