pgpool2 를 이용한 이중화 셋팅 (k3s)
·
DB/Postgresql
얼마전에 DB 서버 2대에 patroni를 이용하여 이중화를 했다.patroni는 서버를 모니터하면서 master 와 slave 를 관리해준다.이제는 이 서버에 적절히 분배해 주면서 앞단에서 로드밸런서 역할도 하고 쿼리 종류에 따라 Write 는 master 로 Read 는 두 서버를 적절히 분산을... 하기위해 pgpool 을 적용했다. 쿼리를 분석해서 자동 분기를 해주는 솔루션은 pgpool 이 거의 유일하다고 한다.개발자가 WAS 의 소스코드 레벨에서 ORM 등을 사용하여 두개의 역할을 나눠서 알아서 나눠서 호출하게 할수는 있지만 이미 만들어진 WAS서버에서 다시 고쳐서 쓰기는 번거롭다. 자동으로 해주는 솔루션을 찾다보니 pgpool 을 이용하게 되었다.일전에 했다가..별로여서 안쓰고 있었는데 학습..
(연습) postgresql 이중화 (Failover)
·
DB/Postgresql
이전에 작성한 연습글을 보면 이중화까지 완료를 했다.patroni 를 이용하여 master / slave 설정이 끝났다.그럼 한번 master 에 데이터베이스를 만들고 동기화가 잘되는지 보자.일단 현재 설정을 확인해보자. 가상환경에서 실행했으니 가상환경을 띄우고 아래와 같이 해보면gglabadmin@postgresql2:/opt/patroni_venv/venv_patroni$ sudo source venv_patroni/bin/activategglabadmin@postgresql2:/opt/patroni_venv/venv_patroni$ patronictl -c /etc/patroni/patroni.yaml list postgres-cluster+ Cluster: postgres-cluster (7580..
(연습) postgreSQL 이중화 (consul, patroni)
·
DB/Postgresql
postgresql 을 이전에 이중화를 해보려고 글을 쓴적이 있다.당시.. pgpool2 로 진행하다가 실패했다.성공을 못한건 아니었지만 운영을 해보았더니.. 자동 failover 가 문제가 있었고..실제 장애가 나서 처리하는데 애를 꽤 먹었다.그래서 현재 운영중인 서비스는 단일 구성에 하루 2회 백업을 진행하고 있다. 몇년이 지난 지금 검색을 해보니 그때와는 다르게 HA 구성을 하는 듯 하여 다른 방법으로 도전을 해보려고 한다.일단 이번에는 patroni 라는 솔루션을 사용해보려고 한다. 먼저 사용자 입장에서 접근을 한다고 생각해 보자.사용자는 일단 app 서버에 접근할것이다.참고로 내 서버는 nestjs 에 prisma orm 을 사용하였다.그다음 아무런 HA구성이 없다면 DB url을 찾아 바로 ..
pgpool 4.1.4 auto fail-over, fail-back
·
DB/Postgresql
이전글에서 postgresql stream replication 을 해봤고 pgpool 을 이용해서 로드밸런스까지 만들어봤습니다. 이제 추가적으로 하려고 하는 작업은 pgpool 을 이용한 자동 fail-over, fail-back pgpool 을 이중화(watchdog 을 이용한 vip 적용) 이렇게 두가지까지 하면 DB쪽에서 제가 하려고 하는 것은 다 되는것 같습니다. watchdog 이 무엇인지 몰라 한참을 찾아봤는데요. 두개의 pgpool 노드가 있을때 서로 서비스가 살아있는지를 지속적으로 체크해서 죽었다면 안죽은 쪽으로 vip를 셋팅해주는 역할을 하는것 같습니다. db도 master / slave 가 있듯이 pgpool 도 2개 이상 설치하면 master / slave 구조를 갖도록 셋팅을 할 ..
pgpool II 4.1.4 load balance
·
DB/Postgresql
이중화된 DB를 자동으로 fail-over 하고 두개 서버를 Active (Read/Write) - Active (Read only) 구성을 하기 위해서 pgpool 을 시도해 보려고 합니다. 뒤져보다 보니 성능이 문제가 된다고 하는 사람도 있는것 같긴한데 함쓰 앱 수준에서는 안정성 측면에서 더 낫겠다 싶습니다. pgpool II 설치 먼저 pgpool 설치를 하겠습니다. (Master / Slave) root@ggmoney-db1:/var/lib/postgresql/13# apt-get install pgpool2 Reading package lists... Done Building dependency tree... Done Reading state information... Done The follo..
postgresql replication 수동 fail-over / fail-back
·
DB/Postgresql
현재 구축하고 있는 함쓰 DB는 postgresql 의 stream 방식의 복제로 셋팅을 하였습니다. 처음 pgpool 을 이용한 auto failover 를 구성하려고 하였는데요. 이런저런 포스트를 보면서 지식을 축적하고 있습니다. 그래서 일단 셋팅해놓은 복제 기능을 수동으로 처리하는 방법을 기록으로 남기고자 합니다. Master 서버에 장애가 생기면 관리자는 수동으로 Slave 를 Master 로 승격시켜야 합니다. postgresql 12부터는 Slave 동작시 /var/lib/postgresql/13/main/standby.signal /var/lib/postgresql/13/main/postgresql.auto.conf 이렇게 두개의 파일이 생성이 됩니다. signal 파일은 비어있는 파일이구요..