Verificando lacunas nos arquivos WAL do Postgres

1

Eu quero escrever um script para verificar as lacunas em meus arquivos WAL arquivados, mas não consigo encontrar nenhuma documentação do esquema de numeração. Parece bastante simples, mas gostaria de basear meu script em alguma documentação oficial para que eu não perca nenhuma complexidade oculta com rolagem, etc.

    
por Matt 15.02.2012 / 17:14

2 respostas

1

Isso não é realmente fácil de fazer no sistema de arquivos. O nome do arquivo é na verdade três partes (8 caracteres cada, valores hexadecimais): Timeline, Logical XLOG, Physical Segment. Para saber o que é o "próximo" arquivo, você realmente precisa saber o que aconteceu com o banco de dados subjacente (novo xlog, nova linha de tempo, etc.).

Uma solução melhor se você estiver arquivando logs de transações é fazer com que seu comando de arquivamento também anexe o nome do arquivo que está sendo arquivado em uma lista em algum lugar - o Postgres passa o nome para seu script de arquivamento para que você não precise se preocupar sobre descobrir por si mesmo, e se todos os arquivos da lista estão presentes, você não tem lacunas.
(Isso não resolve o problema de ter certeza de que você não tem lacunas antes de implementar essa solução, então você deve faça um backup básico de acordo com o 24.3.2 no manual do Postgres depois de implementar esta solução ...

    
por 15.02.2012 / 18:19
0

Não há documentação fora do código-fonte. Há um passo a passo desse código que explica isso, bem como qualquer coisa que eu saiba, tentando resolver o mesmo problema que você é. Conte os dois últimos dígitos para cima em hexadecimais até atingirem FE, em seguida, passe para 0 e incremente o segundo campo de número de registro no meio. As notas em Noções básicas sobre nomenclatura WAL são úteis aqui também.

Uma das razões pelas quais não está documentado é que você pode alterá-lo em tempo de compilação; na prática ninguém faz. O outro problema é que, quando você ativa um sistema em espera ou faz outra coisa para alterar o ID da linha do tempo, todas as garantias de sequência desaparecem. Isso também não é um problema na prática para a maioria das pessoas. Se isso acontecer, você também desejará verificar o monitoramento.

    
por 24.02.2012 / 04:50

Tags