PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.1 » Référence » Applications relatives au serveur PostgreSQL » pg_checksums

pg_checksums

pg_checksums — Active, désactive ou vérifie les sommes de contrôle des fichiers de données d'une instance PostgreSQL

Synopsis

pg_checksums [option...] [[ -D | --pgdata ]RÉPERTOIRE_DONNÉES]

Description

pg_checksums vérifie, active ou désactive les sommes de contrôle des fichiers de données d'une instance PostgreSQL. Le serveur doit être arrêté proprement avant d'exécuter pg_checksums. Lors de la vérification des sommes de contrôle, le code de retour vaut zéro s'il n'y a pas d'erreur et différent de zéro s'il y a au moins une erreur détectée. Lors de l'activation ou de la désactivation des sommes de contrôle, le code de retour est différent de zéro si l'opération a échoué.

Lors de la vérification des sommes de contrôle, chaque fichier de l'instance est parcouru. Lors de l'activation des sommes de contrôle, chaque bloc des fichiers de l'instance dont le checksum a changé est réécrit. La désactivation des sommes de contrôle ne fait que mettre à jour le fichier pg_control.

Options

Les options suivantes sont disponibles en ligne de commande :

-D REPERTOIRE
--pgdata=REPERTOIRE

Spécifie le répertoire où l'instance de base de données est hébergée.

-c
--check

Vérifie les sommes de contrôle. Il s'agit du mode par défaut si rien d'autre n'est spécifié.

-d
--disable

Désactive les sommes de contrôle.

-e
--enable

Active les sommes de contrôle.

-f filenode
--filenode=filenode

Ne valide les sommes de contrôle que pour la relation ayant le nom de fichier filenode.

-N
--no-sync

Par défaut, pg_checksums va attendre que tous les fichiers soient écrits proprement sur disque. Cette option force pg_checksums à rendre la main sans attendre, ce qui est plus rapide, mais signifie qu'un arrêt impropre du système d'exploitation laissera le répertoire de données ciblé dans un état corrompu. Généralement, cette option est utile pour des tests mais ne devrait pas être utilisée sur une installation de production. Cette option n'a pas d'effet lorsque --check est utilisée.

-P
--progress

Active le suivi de la progression. Activer cette option produira un rapport de progression lors des phases de vérification ou d'activation des sommes de contrôle.

--sync-method=methode

Quand il est initialisé à fsync, qui est la valeur par défaut, pg_checksums va ouvrir récursivement tous les fichiers du répertoire de données et les synchroniser sur disque. La recherche des fichiers suivra les liens symboliques pour le répertoire des journaux de transactions et chaque tablespace configuré.

Sur Linux, syncfs peut être utilisé à la place pour demander au système d'exploitation de synchroniser les systèmes de fichiers complets qui contiennent le répertoire des données, les journaux de transactions et chaque tablespace. Voir recovery_init_sync_method pour plus d'informations sur les points importants à connaître lors de l'utilisation de syncfs.

Cette option n'a aucun effet quand --no-sync est utilisé.

-v
--verbose

Active l'affichage verbeux. Affichera tous les fichiers vérifiés.

-V
--version

Affiche la version de pg_checksums puis quitte.

-?
--help

Affiche l'aide sur les arguments en ligne de commande de pg_checksums puis quitte.

Environnement

PGDATA

Indique le répertoire de stockage de l'instance de bases de données ; peut être surchargé avec l'option -D.

PG_COLOR

Indique s'il faut utiliser la couleur dans les messages de diagnostic. Les valeurs possibles sont always, auto, never.

Notes

Activer les sommes de contrôle sur une grosse instance peut potentiellement prendre un long moment. Pendant cette opération, l'instance ou tout autre programme écrivant dans le répertoire des données ne peuvent pas être actifs. Dans le cas contraire, des pertes de données pourraient se produire.

Lors de l'utilisation de la réplication avec des outils qui copient directement les blocs des fichiers des relations (par exemple pg_rewind), l'activation ou la désactivation des sommes de contrôle peut mener à des corruptions de pages sous la forme de sommes de contrôle incorrectes si l'opération n'est pas menée de manière cohérente sur l'ensemble des nœuds. Lors de l'activation ou de la désactivation des sommes de contrôle dans un environnement répliqué, il est donc recommandé d'arrêter toutes les instances avant de les transformer une à une. Détruire toutes les instances secondaires, effectuant l'opération sur l'instance principale pour finalement recréer les secondaires de zéro est également considéré comme sûr.

Si pg_checksums est annulé ou tué lors de l'activation ou de la désactivation des sommes de contrôle, la configuration des sommes de contrôle des fichiers de l'instance reste inchangée, et pg_checksums peut être relancé pour effectuer à nouveau la même opération.