PostgreSQL сохраняет сегменты WAL, не требующиеся для любого слота репликации
Я имею wal_keep_segments
установлен в 3000
, Но каталог pg_xlog
содержит более 6000 сегментов WAL. Интересно, что существует около 3000 файлов, датированных после 14 августа, поэтому, я думаю, файлов, датированных до 14 августа, быть не должно. Также в этих файлах установлен исполняемый бит.
$ ls -al pg_xlog | grep -A2 -B2 00000001000034DB0000003B
-rwx------ 1 postgres postgres 16777216 Jul 19 07:58 00000001000034DB00000039
-rwx------ 1 postgres postgres 16777216 Jul 19 07:58 00000001000034DB0000003A
-rwx------ 1 postgres postgres 16777216 Jul 19 07:58 00000001000034DB0000003B
-rw------- 1 postgres postgres 16777216 Aug 14 19:17 0000000100003826000000EA
-rw------- 1 postgres postgres 16777216 Aug 14 19:17 0000000100003826000000EB
`` `
Этот кластер не имеет слотов репликации, archive_mode
включен, но archive_command
установлен в /bin/true
, Я думаю, что новые сегменты WAL перерабатываются, и общее количество составляет около 6000, но Postgres по какой-то причине не удаляет старые файлы. Есть идеи?
1 ответ
PostgreSQL не имеет привычки устанавливать исполняемые флаги в сегментах WAL.
Кроме того, похоже, что в нумерации есть пробел.
Эти файлы должны быть там случайно, вы можете удалить их.