내 postgresql 환경에서 내 wal 동작을 이해하려고합니다. 내 월마트의 설정은 다음과 같습니다PostgreSQL 9.6 wals 관리
wal_keep_segments = 200
max_wal_size = 3GB
min_wal_size = 80MB
archive_command = 'cp %p /PostgreSQL-wal/9.6/pg_xlog/wal_archives/%f'
archive_timeout = 10
#checkpoint_flush_after = 256kB
#checkpoint_completion_target = 0.5
내 wals 디렉토리는 /PostgreSQL-wal/9.6/pg_xlog/하고 내 아카이브 디렉토리는 PostgreSQL을 - 월마트/9.6/pg_xlog/wal_archives입니다. 지난 밤 내 wals 디렉토리에 저장 (그들은 같은 FS에 또한 아카이브 디렉토리이기 때문에 ..) L 전체 얻었다
내 wal`s 디렉토리에 지금 211 wals 있습니다
ls -l /PostgreSQL-wal/9.6/pg_xlog/ | wc -l
212
유일한을 밤 동안 달리던 일은 우리의 모니터링 에이전트에서만 선택됩니다. wal_keep_segments가 높기 때문에 archive_timeout이 매우 낮았 기 때문에 wal이 만들어 졌다고 생각합니다. 오늘 아침에 wal_keep_segments를 100으로 설정하고 archive_timeout을 6 분으로 설정했습니다. 이제 설정을 완료하고 클러스터를 시작한 후 wals 스위치가 제대로 작동하고 많은 왈이 만들어 졌음을 알지 못했습니다. 그러나 오래된 왈은 자동으로 삭제되어서는 안됩니까? 보관 파일을 안전하게 삭제할 수 있습니까?
wal_keep_segments를 100으로 설정했습니다. 지금은 3.360G를 의미하는 212 개의 월이 있습니다. 그래서, 그것은 어떤 wal을 삭제하기 시작해야하지 않습니까? 아카이브에 관해서는, 그것들을 삭제하는 것이 안전할까요? 지금 데이터베이스를 복원 할 의도가 없다면? – Mariel
'pg_xlog' 파일을 절대로 삭제하면 데이터베이스가 손상 될 수 있습니다. 나는'pg_xlog'의 크기를 줄이는 방법을 추가했습니다. –
너는 나를 이해하지 못했다. 아카이브에 관해서는 archive_command로 생성 된 파일에 대해 이야기하고 있습니다. – Mariel