pg_checksums — Active, désactive ou vérifie les sommes de contrôle des fichiers de données d'une instance PostgreSQL
pg_checksums
[option
...] [[ -D
| --pgdata
]RÉPERTOIRE_DONNÉES
]
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
.
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.
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
.
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.