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 10341 게시물 읽기
No. 10341
wal file 증가 현상
작성자
채상호(chaiid)
작성일
2022-04-26 13:08
조회수
1,057

안녕하세요

streaming replication에 따른 wal file 증가 현상에 대해서 문의 드립니다.
 

저는 replication으로 streaming 방식을 사용 했습니다.
Cento7 , postgresql 10으로 환경을 구성하고 있습니다.
이슈는 pg_wal folder에 있는 file size가 1GB 정도로 유지 해야 하는데 10G이상 되는 경유가 발생 해서 문의 드립니다.
slave 다운을 고려 해서 wal_keep_segments를 64로 설정 했고, 계속 다운되어도 1G정도로 유지 하도록 하기위해서 max_wal_size는 default로 구성 했습니다.

Stream replication을 위해서 기본 설정에서 아래 와 같이 변경해서 구성 했습니다.
wal_level = replica
wal_keep_segments = 64
hot_standby = on
hot_standby_feedback = on
max_wal_senders = 10
 
아래 설정은 default로 두었습니다.
#checkpoint_timeout = 5min              # range 30s-1d
#max_wal_size = 1GB
#min_wal_size = 80MB
 
 
Recovery.conf file 설정
standby_mode = on
primary_conninfo = 'host=ems-c-vip application_name=ems-cm password=aaa'
recovery_target_timeline = 'latest'

감사합니다.
 
이 글에 대한 댓글이 총 3건 있습니다.

복제 환경을 만들 때 복제 슬롯을 사용했다면, 그것 때문에 wal 조각 파일을 계속 보관하고 있을 수도 있어요. 


pg_replication_slots 뷰를 한번 살펴보세요. 

그 안에 뭔가가 있다면, 그리고 쓰지 않는 복제 슬롯이라면 pg_drop_replication_slot() 함수로 해당 슬롯을 지워야할 것 같습니다. 


이 문제와 관계 없이 계속 커지고 있다면, 서버 상태를 꼼꼼히 봐야 원인을 알 수 있을 것 같습니다. 

볼만한 뷰로는 pg_stat_replication 일터이고, archive 설정도 봐야할 것 같고... 이렇네요. 

김상기(ioseph)님이 2022-04-26 13:20에 작성한 댓글입니다.

유용한 정보 및 조언 진심으로 감사드립니다.


pg_replication_slots을 조회 하니 아래와 같이 하나가 있네요

1. 혹시 아래와 같이 node_a_slot이 자동으로 생성 되는 경우가 있나요?

2. node_a_slot를 drop해도 정상적으로 streaming replication이 정상적으로 동작하는데 다른 영향은 없을까요?


postgres=# select * from pg_replication_slots;

  slot_name  | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn

-------------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------

 node_a_slot |        | physical  |        |          | f         | f      |            |      |              |             |

(1 row)

 

채상호(chaiid)님이 2022-04-26 15:13에 작성한 댓글입니다.
이 댓글은 2022-04-26 16:54에 마지막으로 수정되었습니다.

그  슬롯 만든 사람이 압니다. 저는 모릅니다. :)

통상 리플리카를 구축할 때, 슬롯을 만들어라고 지정하거나,

(아마 10버전에서는 미리 만들었어야했을것 같네요. 이 부분이 버전별로 바뀌어서 정확하게는 모르겠습니다.)

미리 만들었는데, 

그것을 사용하지 않고, 복제 작업을 하고 있는 것으로 판단됩니다. 

(아무것도 모르고 막 판단한거에요. 정확한 것은 복제구축 담당자가 제일 잘 알아요)


recovery.conf 안에 primary_slot_name 설정이 없고, 

정말 어떤 곳에서도 그 슬롯을 사용하지 않는다고 (복제용이나, 스냅샷 base backup 할 때도 DBA 취향에 따라 만들어 쓰기도 합니다.) 판단되면 지우시면 됩니다. 


정말 중요한 이야기, 제가 지우라고 한거 아니에요. 

지우는 판단은 직접 하셔야합니다. 


drop slot 되면 그 슬롯을 사용하는 복제 환경은 깨지게 됩니다. 

 

김상기(ioseph)님이 2022-04-26 18:13에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10344pg_dump -Fc (custom format) 파일 수정 질문 [1]
카비
2022-05-17
958
10343[문의] wal_keep_segments 값 조정 후 대량 dml발생 시, wal segments파일이 조정한 개수만큼 늘지 않습니다 [2]
우재권
2022-05-16
971
10342Master - Slave 간 Replication 연결 불가 이슈 문의드립니다. [2]
우재권
2022-05-04
996
10341wal file 증가 현상 [3]
채상호
2022-04-26
1057
10340pg_rman 시점복구 좀 봐주세요 [1]
고구마
2022-04-24
1033
10339팁: 비상 상황 서버를 읽기 전용으로 만들기 [1]
김상기
2022-04-16
1109
10338유저(롤) 이관 문의 [2]
초보
2022-04-13
1043
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.068초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다