Lors de l'exécution d'un système de base de données PostgreSQL, comment puis-je savoir que ma base de données dans son ensemble est 100% intègre? Fondamentalement, comment savoir si mes fichiers et pages de données sont tous 100% bons sans corruption?
Dans le monde Microsoft SQL Server, il existe une commande que vous pouvez exécuter DBCC CHECKDB qui vous indiquera s'il y a des problèmes. Voici un lien si vous souhaitez en savoir plus sur la commande. DBCC CHECKDB (Transact-SQL)
Je suis une personne soucieuse d'intégrité de la base de données paranoïaque (ce que toute personne qui travaille avec la base de données dans un rôle de type DBA devrait être) et ce genre de choses rend difficile pour moi de bien dormir la nuit. Un utilitaire comme celui-ci est un must! Les recherches sur Google ont trouvé quelques tentatives d'outils comme celui-ci et à mon avis, sauf si c'est un outil officiellement accepté par le projet PostgreSQL, je ne lui ferai pas confiance pour quelque chose d'aussi important.
Voici quelques liens vers des personnes qui posent des questions similaires avec ce que je considère comme aucune vraie réponse définitive. Et à mon avis, montre que PostgreSQL doit avoir en place certains outils qu'Oracle et Microsoft SQL Server semblent avoir.
Le premier lien est le plus intéressant que j'ai trouvé à ce sujet. Je pense qu'un commentaire sur l'article qui le résume probablement dit: "Postgres est assez boiteux lorsqu'il s'agit d'identifier la corruption de la base de données et de la réparer. La seule façon de le détecter est de vider la base de données ou de sélectionner * dans chaque table de la base de données . "
Comment PostgreSQL protège contre les écritures de page partielles et la corruption de données
Vérification de la corruption des données et des fichiers d'index - Dev Shed
PostgreSQL: clé primaire corrompue, table incohérente
Je crois qu'il y a une chance que 9.3 puisse avoir des fonctionnalités de vérification de la corruption. Il semble qu'il y ait un espoir de faire vérifier la vérification des fichiers de page si l'on le souhaite. Les choses semblent donc brillantes si vous envisagez d'utiliser ZFS et / ou une future version de Postgres avec sommation de vérification de page. https://commitfest.postgresql.org/action/patch_view?id=759
MISE À JOUR: 14-JAN-2012 - Il semble que l'utilisation d'un système de fichiers basé sur ZFS puisse détecter la corruption en vérifiant la somme de chaque bloc de données. Je vais devoir approfondir cela et voir s'il s'agit d'un moyen de contourner le problème pour bien dormir la nuit, sachant que les données de leur base de données ne sont pas silencieusement corrompues.
MISE À JOUR: 17-JAN-2012 - Comment trouver quels fichiers sont corrompus avec ZFS. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz
MISE À JOUR: 14-AVR-2014 9.3 a obtenu des sommes de contrôle de données. https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3