2016-10-26 11:55 GMT-02:00 Cleiton Luiz Domazak <[email protected]>:
> > > 2016-10-26 11:45 GMT-02:00 Flavio Henrique Araque Gurgel <[email protected] > >: > >> >> >> Em qua, 26 de out de 2016 às 15:27, Cleiton Luiz Domazak < >> [email protected]> escreveu: >> >>> 2016-10-26 11:19 GMT-02:00 Cleiton Luiz Domazak < >>> [email protected]>: >>> >>> >>> >>> 2016-10-26 11:13 GMT-02:00 Flavio Henrique Araque Gurgel < >>> [email protected]>: >>> >>> >>> >>> O que quer dizer com "não existissem"? Eles não cairam no seu bucket? >>> >>> >>> Sim, nem no bucket e nem no archive_status, é como eles tivessem sido >>> criados pelo banco, mas não existissem para o archive_command >>> >>> >>> Pergunta : Seu banco está escrevendo? >>> Qual o resultado de: >>> select pg_current_xlog_location(); >>> ? >>> Se você fizer um: >>> select pg_switch_xlog(); >>> Há um arquivamento feito? >>> >>> >>> Sim, o arquivamento está funcionando. >>> >>> >> Eu não perguntei se o arquivamento está funcionando. >> A pergunta foi: seu banco está escrevendo? >> Por isso pedi o teste do pg_switch_xlog. >> > > O que quis dizer é que estão sendo arquivados os wals, e a escrita não > importa nesse caso, pois o timeout está setado para 60 segundos. > >> >> >>> >>> postgres=# \x >>> Expanded display is on. >>> postgres=# SELECT *, >>> postgres-# current_setting('archive_mode')::BOOLEAN >>> postgres-# AND (last_failed_wal IS NULL >>> postgres(# OR last_failed_wal <= last_archived_wal) >>> postgres-# AS is_archiving, >>> postgres-# CAST (archived_count AS NUMERIC) >>> postgres-# / EXTRACT (EPOCH FROM age(now(), stats_reset)) >>> postgres-# AS current_archived_wals_per_second >>> postgres-# FROM pg_stat_archiver; >>> -[ RECORD 1 ]--------------------+------------------------------ >>> archived_count | 147 >>> last_archived_wal | 000000010000011B00000078 >>> last_archived_time | 2016-10-26 11:19:04.131357-02 >>> <04%2013%2013%2057%2002> >>> failed_count | 0 >>> last_failed_wal | >>> last_failed_time | >>> stats_reset | 2016-10-26 08:52:26.66709-02 >>> is_archiving | t >>> current_archived_wals_per_second | 0.0166593669872578 >>> >>> Note que não há nenhum arquivamento falho. >> > > Sim, e ainda mais por isso que gostaria de entender o pq desses arquivos > não arquivados e não falhados. > >> >>> O que reparei agora, é que alguns archives desses que não são >>> processados, acabaram sendo arquivados. >>> >>> # cat ../pg_log/postgresql-Wed.log | grep '000000010000011B0000006F' >>> DETAIL: Uploading "pg_xlog/000000010000011B0000006F" to >>> "s3://bkp-postgresql-wale-local-hmg/wal_005/000000010000011B >>> 0000006F.lzo". >>> STRUCTURED: time=2016-10-26T13:10:01.724498-00 >>> <01%2072%2044%2098%2000> pid=54026 action=push-wal >>> key=s3://bkp-postgresql-wale-local-hmg/wal_005/000000010000011B0000006F.lzo >>> prefix= seg=000000010000011B0000006F state=begin >>> DETAIL: Archiving to "s3://bkp-postgresql-wale-loca >>> l-hmg/wal_005/000000010000011B0000006F.lzo" complete at 1577.14KiB/s. >>> STRUCTURED: time=2016-10-26T13:10:02.240725-00 >>> <02%2024%2007%2025%2000> pid=54026 action=push-wal >>> key=s3://bkp-postgresql-wale-local-hmg/wal_005/000000010000011B0000006F.lzo >>> prefix= rate=1577.14 seg=000000010000011B0000006F state=complete >>> >>> >>> Minha dúvida é, pq eles foram criados e não processados pelo >>> archive_command, e agora, depois de 2 horas depois são arquivados? >>> >> >> Provavelmente porque seu banco não teve escrita no período e, agora, veio >> uma rajada de escrita qualquer. Banco que não escreve não gera wal e não >> faz checkpoint. >> Para forçar arquivamento, você precisa configurar a GUC archive_timeout. >> Note que isso vai forçar o banco a arquivar 16MiB, mesmo sem necessidade se >> o arquivo estiver parcialmente cheio. >> > > No .conf que enviei, o meu archive_timeout está setado para 60 segundos. > >> >> >>> >>> E uma curiosidade, a diretório pg_xlog, está sempre com 130 arquivos(wal >>> segments), não importa o horário. >>> >>> Meu wal_keep_segments está setado para 30. >>> >> >> A quantidade de arquivos depende de outras configurações, dependendo da >> sua versão. >> Até 9.4, depende de checkpoint_segments e checkpoint_completion_target >> (normalmente a quantidade de arquivos é igual a >> 2*checkpoint_segments+checkpoint_segments*checkpoint_ >> completion_target+wal_keep_segments). >> A partir da 9.5 depende de max_wal_size. >> > > Vou conferir se bate com os valores. > > Será que não são justamente os arquivos gerados pelo timeout que não são processados, por não possuírem nenhuma escrita? E acabam sendo arquivados somente quando é feita a "limpa" dos mais antigos? > > >> []s >> Flavio Gurgel >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
