안녕하세요
postgresql 12버전에서 wal_keep_segments 개수 조정 후 대량 dml발생 시, 정상적으로 wal segments 파일이 설정한 개수만큼 늘어나는지 테스트를 해보았는데요
테스트하면서 궁금한 것이 있어 문의드립니다.
- DB버전 : postgresql 12
- 구성 : master - slave ( streaming replication )
** 대량 insert 테스트 작업 전 wal관련 파라미터는 아래와 같습니다.
-------------------------------
[ master 서버 ]
# postgresql.conf
wal_keep_segments = 0 --> 150으로 변경 후 작업
wal_sender_timeout = 0
max_wal_size = 1GB
min_wal_size = 1GB
-------------------------------
1. 위 파라미터 중, wal_keep_segments = 0 --> 150으로 설정하여 적용(reload) 하였습니다.
2. ** 다만, DB접속 후 대량 insert 발생 ( 1000만건 ) 시, pg_wal영역에 파일은 생성되나 기존 작업 전 116개에서 늘어나지 않고 오래된 wal segments파일이 삭제되고 있는데요
( 예상대로라면 대량 insert 발생 시, 116개에서 늘어나야될텐데 늘어나지 않았습니다.... )
3. 하여 한 가지 더 테스트를 해보았는데 wal_sender_timeout를 default값 60s(1m) 로 수정 후 동일하게 insert 1000만건을 해보았을 때에는 정상적으로 wal_segments 개수가 150개 이상 쌓이는 것을 확인하였습니다.
4. 마지막으로 wal_sender_timeout 을 다시 0으로 원복 후 insert 1000만건을 넣었을 때에는 상식적으로 아까와 동일하게 늘어나지 않아야할 wal_segments 개수가 늘어나고 있다는 것인데요
질문 ) 버그인건지요? 아니면 다른 이유가 있는건가요?
|