Ao executar um sistema de banco de dados PostgreSQL, como sei se meu banco de dados como um todo tem 100% de integridade? Basicamente, como sei se meus arquivos e páginas de dados são 100% bons, sem corrupção?
No mundo do Microsoft SQL Server, existe um comando que você pode executar o 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)
Sou uma pessoa com espírito de integridade paranóica (que qualquer pessoa que trabalhe com o banco de dados em uma função do tipo DBA) e esse tipo de coisa dificulta que durma bem à noite. Um utilitário como este é obrigatório! As pesquisas no google encontraram algumas tentativas de ferramentas como essa e, na minha opinião, a menos que seja uma ferramenta oficial aceita pelo projeto PostgreSQL, não confio nela para algo tão importante.
Aqui estão alguns links para pessoas que fazem perguntas semelhantes com o que não considero uma 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 esse assunto. Eu acho que um comentário no artigo que provavelmente resume: "O Postgres é bastante manco quando se trata de identificar a corrupção do banco de dados e repará-lo. A única maneira de detectá-lo é despejar o banco de dados ou selecionar * de cada tabela no banco de dados . "
Como o PostgreSQL protege contra gravações parciais de páginas e corrupção de dados
Verificando dados e corrupção de arquivos de índice - Dev Shed
Ajuda: minha mesa está corrompida!
PostgreSQL: Chave primária corrompida, tabela inconsistente
Acredito que há uma chance da 9.3 ter alguns recursos de verificação de corrupção. Parece que pode haver uma esperança de que os arquivos de página sejam somados, se assim o desejar. Portanto, as coisas estão melhorando se você considerar usar o 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-JAN-2012 - Parece que o uso de um sistema de arquivos baseado no ZFS pode detectar corrupção, verificando a soma de cada bloco de dados. Vou ter que analisar isso mais a fundo e ver se isso é uma solução alternativa para permitir que se durma bem à noite, sabendo que os dados do banco de dados não estão silenciosamente corrompidos.
ATUALIZAÇÃO: 17-JAN-2012 - Como encontrar quais arquivos estão corrompidos com o ZFS. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz
ATUALIZAÇÃO: 14-APR-2014 9.3 obteve somas de verificação de dados. https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3
fonte
Respostas:
O PostgreSQL anterior à 9.3 não possuía somas de verificação de bloco. O recurso foi adicionado na 9.3 (muito tempo depois que esta pergunta foi publicada).
Para responder à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.
fonte