Ao executar um sistema de banco de dados PostgreSQL, como sei que meu banco de dados como um todo tem 100% de integridade? Basicamente, como sei se meus arquivos de dados e páginas estão 100% bons, sem corrupção?
No mundo do Microsoft SQL Server, há um comando que você pode executar DBCC CHECKDB que informa se há problemas. Aqui está um link se você estiver interessado em aprender mais sobre o comando. DBCC CHECKDB (Transact-SQL)
Eu sou uma pessoa paranóica preocupada com a integridade do banco de dados (o que qualquer um que trabalhe com o banco de dados em uma função do tipo DBA deveria ser) e esse tipo de coisa torna difícil para mim dormir bem à noite. Um utilitário como este é uma obrigação! Pesquisas no google encontraram algumas tentativas de ferramentas como esta e, na minha opinião, a menos que seja uma ferramenta oficial aceita pelo projeto PostgreSQL, não confiarei nela para algo tão importante.
Aqui estão alguns links para pessoas que fazem perguntas semelhantes com o que considero nenhuma resposta definitiva real. E, na minha opinião, mostra que o PostgreSQL precisa ter algumas ferramentas que o Oracle e o Microsoft SQL Server parecem ter.
O primeiro link é o mais interessante que encontrei sobre o assunto. Acho que um comentário no artigo que provavelmente resume isso afirma: "Postgres é muito ruim quando se trata de identificar corrupção de banco de dados e repará-la. A única maneira de detectá-la é descarregando o banco de dados ou selecionando * de cada tabela no banco de dados ."
Como o PostgreSQL protege contra gravações parciais de páginas e corrupção de dados
Verificando corrupção de dados e arquivo de índice - Dev Shed
Ajuda: minha tabela está corrompida!
PostgreSQL: chave primária corrompida, tabela inconsistente
Eu acredito que há uma chance de 9.3 ter alguns recursos de verificação de corrupção. Parece que pode haver esperança de ter os arquivos de página somados, se assim o desejar. Portanto, as coisas parecem boas se você considerar o uso do ZFS e/ou uma versão futura do Postgres com soma de verificação de página. https://commitfest.postgresql.org/action/patch_view?id=759
ATUALIZAÇÃO: 14 de janeiro de 2012 - Parece que o uso de um sistema de arquivos baseado em ZFS pode detectar corrupção verificando a soma de cada bloco de dados. Terei que investigar isso mais a fundo e ver se é uma solução alternativa para permitir que alguém durma bem à noite, sabendo que os dados do banco de dados não estão corrompidos silenciosamente.
ATUALIZAÇÃO: 17-JAN-2012 - Como descobrir quais arquivos estão corrompidos com o ZFS. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz
ATUALIZAÇÃO: 14 de abril de 2014 9.3 obteve somas de verificação de dados. https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3
O PostgreSQL anterior a 9.3 não tinha somas de verificação de bloco. O recurso foi adicionado em 9.3 (muito depois que esta pergunta foi postada).
Para atender às suas necessidades, eu provavelmente desenvolveria minha própria soma de verificação (gatilhos?) - trabalhando em valores de atributos, não em páginas de dados.