Quando eseguo un sistema di database PostgreSQL come faccio a sapere se il mio database nel suo insieme ha integrità al 100%? Fondamentalmente come faccio a sapere se i miei file di dati e le mie pagine sono tutti buoni al 100% senza corruzione?
Nel mondo di Microsoft SQL Server c'è un comando che puoi eseguire DBCC CHECKDB che ti dirà se ci sono problemi. Ecco un link se sei interessato a saperne di più sul comando. DBCC CHECKDB (Transact-SQL)
Sono una persona paranoica e attenta all'integrità del database (come dovrebbe essere chiunque lavori con il database in un ruolo di tipo DBA) e questo tipo di cose mi rende difficile dormire bene la notte. Un'utilità come questa è d'obbligo! Ricerche su Google hanno trovato alcuni tentativi di strumenti come questo e secondo me a meno che non sia uno strumento ufficiale accettato dal progetto PostgreSQL, non mi fiderò di qualcosa di così importante.
Ecco alcuni link a persone che fanno domande simili con quella che non considero una vera risposta definitiva. E a mio avviso mostra che PostgreSQL deve disporre di alcuni strumenti che Oracle e Microsoft SQL Server sembrano avere.
Il primo link è il più interessante che ho trovato su questo argomento. Penso che un commento sull'articolo che probabilmente lo riassume affermi: "Postgres è piuttosto zoppo quando si tratta di identificare il danneggiamento del database e ripararlo. L'unico modo per rilevarlo è scaricare il database o selezionare * da ogni tabella del database ".
Come PostgreSQL protegge dalla scrittura parziale delle pagine e dalla corruzione dei dati
Verifica del danneggiamento dei dati e dei file di indice - Dev Shed
Aiuto: il mio tavolo è corrotto!
PostgreSQL: chiave primaria danneggiata, tabella incoerente
Credo che ci sia una possibilità che 9.3 possa avere alcune funzionalità di controllo della corruzione. Sembra che ci sia speranza di avere il controllo dei file di paging sommati se si sceglie. Quindi le cose sembrano brillanti se consideri l'uso di ZFS e / o una versione futura di Postgres con il sommario del controllo delle pagine. https://commitfest.postgresql.org/action/patch_view?id=759
AGGIORNAMENTO: 14-GEN-2012 - Sembra che l'utilizzo di un file system basato su ZFS sia in grado di rilevare la corruzione verificando la somma di ogni blocco di dati. Dovrò approfondire ulteriormente questo aspetto e vedere se si tratta di una soluzione per consentire di dormire bene la notte sapendo che i dati del loro database non stanno corrompendo silenziosamente.
AGGIORNAMENTO: 17-GEN-2012 - Come trovare quali file sono corrotti con ZFS. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz
AGGIORNAMENTO: 14-APR-2014 9.3 ha ottenuto checksum dei dati. https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3