database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10148 게시물 읽기
No. 10148
Replication 시 마스터의 wal 정리 질문 입니다.
작성자
폼포코
작성일
2020-03-25 12:26
조회수
2,552

 안녕하세요.

현재 사내 클라우드서버를 운영하고 있습니다.

CentOS 8에 PostgreSQL 10을 올려서 현재 운영중에 있습니다.

장애 발생시를 대비하여 Replication을 하고 있습니다.

여러 사이트에서 검색해서 설정을 아래와 같이 하기는 했는데 제대로 된건지는 잘모르겠습니다만 슬래이브에 pg_admin으로 접속해서 쿼리 해보면 동일하게 보이는것으로 보아 제대로 된듯 합니다.

문제는 슬래이브는 pg_archivecleanup을 설정하니 두개의 wal만 유지되어 좋습니다만

마스터는 어떻게 해야 할지 모르겠습니다. 마스터에 wal파일이 많이 생깁니다.

최근 한두개만 남기고 싶습니다. archive_mode = off으로 하면 해결되겠지만 슬래이브 장애시에 통으로 다시 보내야 해서 만들지 않을 수도 없습니다.

도와주세요~ ㅠ_ㅠ 

 

## 현재 설정은 아래와 같습니다.

0. 설치

 - 두대의 서버를 이중화 하기 위함입니다.

 - 마스터서버IP : 10.23.1.101, 슬레이브서버IP : 10.23.1.102

 - 서비스를 10.23.1.100번의 대표IP로 VIP설정

   vi  /etc/sysconfig/network-scripts/eth0:0  # 복사한뒤 vip를 설정해 줍니다.

   DEVICE=eth0:0

   TYPE=Ethernet

   ONBOOT=yes

   IPV6INIT=no

   NM_CONTROLLED=no

   BOOTPROTO=none

   IPADDR=10.23.1.100

   PREFIX=24

   GATEWAY=10.23.1.254

 - 두대의 서버에 ssh-keygen으로 서로의 퍼블릭키를 authorized_keys에 복사 해주었습니다.

 

1. CentOS8은 Base만 설치하고 firewalld에서 postgresql을 외부에서 접속할 수 있도록 포트를 열어 줍니다.

firewall-cmd --permanent --zone=public --add-port=5432/tcp

firewall-cmd --reload

 

2. PostgreSQL는 Yum으로 설치 합니다.

yum install postgresql-server postgresql-contrib

 

3. db사용자 계정과 db를 생성합니다.

createuser nextcloud -W

createdb nextcloud -O nextcloud -W

 

4. postgres 계정으로 데이터베이스를 초기화 합니다.

initdb

 

5. 마스터 pg_hba.conf

local   all             all                                     peer

host    all             all             127.0.0.1/32            trust

host    all             all             ::1/128                 ident

host    all             all             0.0.0.0/0               password

host    replication     replication     10.23.1.101/32          trust

host    replication     replication     10.23.1.102/32          trust

 

6. 슬레이브 pg_hba.conf

hot_standby = on

 

7. 마스터 postgresql.conf

wal_level = hot_standby

max_wal_senders = 2

wal_keep_segments = 32

 

archive_mode = on

archive_command = 'cp %p /var/lib/pgsql/data/pg_wal/%f'

 

 

8. 슬레이브 recover.conf

restore_command = 'cp /var/lib/pgsql/data/pg_wal/%f %p'

archive_cleanup_command = 'pg_archivecleanup /var/lib/pgsql/data/pg_wal %r'

recovery_target_timeline = 'latest'

standby_mode = on

primary_conninfo = 'host=10.23.1.100 port=5432 user=replication password=비밀번호'

이 글에 대한 댓글이 총 2건 있습니다.

마스터 쪽의 WAL 조각 파일들이 많은 것은 당연합니다.

10버전이면 아마 복제 슬롯 기능이 있을겁니다.

이걸로 복제 관련 WAL 조각 파일들을 최적으로 관리할 수 있습니다.

https://postgresql.kr/docs/10/warm-standby.html#STREAMING-REPLICATION-SLOTS

이 부분 참고 하시면 됩니다.

김상기(ioseph)님이 2020-03-25 15:08에 작성한 댓글입니다.

답변감사합니다.

출근하면 해보겠습니다. ^_^

 

폼포코님이 2020-03-25 22:12에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
10152postgresql.conf 설정변경 성능 문의 [1]
김범수
2020-04-07
2338
10151postgresql out of memory for query result [1]
뾰로롱
2020-04-07
2373
10150DB에 대용량파일 저장하는 방법 [3]
정준
2020-04-03
2453
10148Replication 시 마스터의 wal 정리 질문 입니다. [2]
폼포코
2020-03-25
2552
10147특정 테이블의 특정 레코드만 update,delete 문제발생 [1]
김태산
2020-03-23
2330
10145인코딩에러 [1]
aa
2020-03-23
2682
10144대소문자 바꾸는 방법.. [1]
김현준
2020-03-22
2307
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다