O pg_xlog
diretório do meu cluster mestre tem esta aparência:
-rw------- 1 postgres postgres 16M Jun 21 21:42 000000010000000000000001
-rw------- 1 postgres postgres 16M Jun 21 22:42 000000010000000000000002
-rw------- 1 postgres postgres 16M Jun 21 23:42 000000010000000000000003
-rw------- 1 postgres postgres 16M Jun 22 00:42 000000010000000000000004
-rw------- 1 postgres postgres 16M Jun 22 01:42 000000010000000000000005
-rw------- 1 postgres postgres 16M Jun 22 01:49 000000010000000000000006
-rw------- 1 postgres postgres 16M Jun 22 01:55 000000010000000000000007
-rw------- 1 postgres postgres 16M Jun 22 02:05 000000010000000000000008
-rw------- 1 postgres postgres 16M Jun 22 02:30 000000010000000000000009
-rw------- 1 postgres postgres 16M Jun 22 02:50 00000001000000000000000A
O pg_xlog/archive_status
diretório se parece com isso:
-rw------- 1 postgres postgres 0 Jun 22 01:49 000000010000000000000006.done
-rw------- 1 postgres postgres 0 Jun 22 01:55 000000010000000000000007.done
-rw------- 1 postgres postgres 0 Jun 22 02:05 000000010000000000000008.done
-rw------- 1 postgres postgres 0 Jun 22 02:30 000000010000000000000009.done
Quando ativei o arquivamento pela primeira vez, 006
era o segmento atual, mas por que não eram 001
- 005
arquivados mesmo assim? A última vez que configurei o arquivamento em um cluster existente (que foi ontem - tenho experimentado), todos os segmentos de log foram arquivados quando ativei o arquivamento, apesar do pg_xlog
diretório conter mais de 50 segmentos de log anteriores.
Configurações relevantes:
wal_level = hot_standby
archive_mode = on
wal_keep_segments = 2048 # I know, right :)
archive_timeout = 3600
archive_command = 'rsync -aq --delay-updates --ignore-existing %p postgres@db-slave:/mnt/pgsql/'
Observação: alterei todas essas configurações (incluindo was_level
, que era minimal
anterior) quando ativei o arquivamento anteriormente. Será que meu nível de wal não era suficiente para justificar o arquivamento ou porque há uma incompatibilidade entre o nível anterior e o nível atual?
Isso provavelmente se deve ao fato de que pelo menos o 5º segmento WAL foi usado para recuperação para colocar o banco de dados em um estado consistente após uma
immediate
parada. Não sei por que os segmentos WAL ainda não seriam úteis (por exemplo, para recuperação pontual).