Postgresql WAL(Write-Ahead Logging) 아카이브 및 풀 백업과 복구

데이터베이스는 하나의 서비스에 꼭 필요하며, 무결성과 지속 가능성이 깨지지 않도록 하는 게 원칙입니다. 그에 따라 철저한 백업 관리 및 정책이 당연시 요구됩니다. 이번 포스팅에서는 Postgresql 환경에서 WAL 파일을 아카이빙하고 해당 파일을 이용해서 백업, 마지막으로 복구까지 해보도록 하겠습니다. WAL(Write-Ahead Logging)파일이란? Write-Ahead Logging (WAL) is a standard method for ensuring data integrity. Briefly, WAL's central concept is that changes to data files (where tables and indexes reside) must be written only after..

패키지 관리자를 통해 NGINX 최신 버전(Mainline/Stable) 설치하기

아무런 조치 없이 리눅스의 패키지 관리자를 통해서 웹 서버인 NGINX를 설치하게 되면 자신이 원하는 버전을 설치하지 못할뿐더러, 현재 패키지 관리자에선 구 버전이 기본 설정되어 있습니다. 실제 운영환경에서 구 버전은 보안 문제든 기능 문제든 치명적으로 작용할 수 있습니다. 패키지 관리자를 업데이트해서 NGINX 최신 버전 및 원하는 버전을 설치해보도록 하겠습니다. NGINX의 버전 관리 일반적으로, 많이 알려진 버전은 단 두 가지인데요. Mainline 버전과 Stable 버전이 있습니다. 새로운 특징, 기능, 버그 패치 등은 Mainline 버전에서 작업하고 그 이후에, 새로운 기능이 추가되지 않고 버그 패치만 하는 게 Stable 버전입니다. 버전 선택에 관련해서 NGINX의 공식 입장은 다음과 같..

ulimit 명령어로 시스템 자원 최대로 활용하기

최근에, 회사에서 채굴관련 웹 서버를 운영하는데 stratum 서버에 다수의 채굴기가 연결 되면서 서버 트래픽이 급격히 증가하면서 다운되는 현상이 있었다. 동시 접속자와 네트워크 트래픽이 증가하면 어떻게 처리를 할까 검색을 하던 중 ulimit 이라는 아주 최고의 설정을 발견했다. ulimit 이란?프로세스의 소켓 최대 개수를 늘려 자원 한도를 설정하는 명령어 라고 한다. ulimit -a 로 전체적인 설정 값들을 볼 수 있으며, ulimit -n 으로 현재 설정되어있는 ulimit 값을 볼 수 있습니다.(참고로, 우리가 원하는 정보는 ulimit -n 명령어로도 충분하다.) sudo vim /etc/security/limits.conf 에서 다음과 같이 설정해주면 된다. 맨 마지막 부분에 * - nof..

netcat(nc)를 이용해 포트 열기

얼마 전 회사에서 서버 포트를 열어달라는 요청을 받았다. 근데, 웹서버가 있는 것도 아니고 어떻게 포트만 달랑 열 수 있는 방법은 무엇인가? 처음엔 iptables 라는 명령어로 연신 포트 설정만 해댔다. 하고 나서 윈도우에서 telnet 으로 붙어보니 연결이 되지 않은 것을 확인했다. 검색결과, netcat(nc)를 사용하면 간단히 해결 될 문제 였다. netcat(nc) 란?Network connection 에서 raw-data read, write를 할수 있는 유틸리티 프로그램이다. 일반적으로는 UNIX의 cat과 비슷한 사용법을 가지고 있지만 cat이 파일에 쓰거나 읽듯이 nc는 network connection에 읽거나 쓴다. 이것은 스크립트와 병용하여 network에 대한 debugging, ..