O pg_wal local está limpando como deveria. E pg_wal\archive_status tem todo o arquivo com .done (Exemplo: 0000000100000004000000DE.done). Archive_mode está ativado e archive_command está copiando para um domínio de dados. Também estou executando o pg_basebackup todas as noites às 23h (ainda preciso gravar em lote para limpar qualquer coisa com mais de x dias). O requisito é poder restaurar a qualquer momento desde o último backup; que no meu caso será ontem à noite.
O problema que estou tentando resolver agora é limpar o domínio de dados archive_command. Não parece que os arquivos foram limpos desde que eu os configurei em 11/01/2024 (por recomendação da pasta PostgreSQL 16 pg_wal vs pg_wal\archive_status ). O PostgreSQL limpará automaticamente os arquivos compactados do domínio de dados? Os arquivos que tenho têm 16,0 MB (exemplo: 000000010000000000000F9) com um (0000000100000000000000F9.00000380.backup) durante o horário pg_basebackup às 23h.
Terei que escrever um .bat para excluir esses arquivos?
Obrigado
Agradeço suas sugestões, mustaccio. Temos apenas um servidor de desenvolvimento e um servidor de produção para oferecer suporte a um software de terceiros. A administração não vê isso crescendo nos próximos 5 anos. O fornecedor de terceiros nem fornece suporte. Somos principalmente ambiente Oracle.
O pg_archivecleanup está funcionando manualmente com base em https://documentation.tricentis.com/qtest/9910/en/content/qtest_onpremise/advanced_server_administration/continuous_wal_archiving_for_windows.htm
Pesquisarei sobre como automatizá-lo via postgresql.conf
O PostgreSQL não cuida dos seus segmentos WAL arquivados. Ele nem sabe que eles existem — tudo o que faz é executar o arquivo
archive_command
.Você pode usar
pg_archivecleanup
com o arquivo do backup mais antigo que você precisa recuperar:ou você pode simplesmente ter um trabalho agendado regularmente que remova todos os WAL arquivados com mais de X dias.