patronictl
Patroni dispose d’une interface en ligne de commande nommée patronictl , utilisée principalement pour interagir avec l’API REST de Patroni et avec le DCS. Elle vise à simplifier l’exécution d’opérations au sein du cluster et peut être facilement utilisée par des humains ou des scripts.
Configuration
patronictl utilise trois sections de la configuration :
- ctl : comment s’authentifier contre l’API REST de Patroni, et comment valider l’identité du serveur. Consulter paramètres ctl pour plus de détails ;
- restapi : comment s’authentifier contre l’API REST de Patroni, et comment valider l’identité du serveur. N’est utilisé que si la configuration
ctlest insuffisante. patronictl s’intéresse principalement à la sectionrestapi.authentication(en cas de non-présence dectl.authentication) et au paramètrerestapi.cafile(en cas de non-présence dectl.cacert). Consulter paramètres de l’API REST pour plus de détails ; - DCS (par exemple etcd) : comment contacter et s’authentifier contre le DCS utilisé par Patroni.
Ces options de configuration peuvent provenir soit de variables d’environnement, soit d’un fichier de configuration. Consultez les sections ci-dessus dans Paramètres de configuration par environnement ou Paramètres de configuration YAML pour comprendre comment définir ces options via des variables d’environnement ou un fichier de configuration.
Si vous choisissez d’utiliser des variables d’environnement, il s’agit d’une approche directe. Patronictl lira les variables d’environnement et utilisera leurs valeurs.
Si vous choisissez d’utiliser un fichier de configuration, vous disposez de différentes méthodes pour indiquer à patronictl
le fichier à utiliser. Par défaut, patronictl
tentera de charger un fichier de configuration nommé patronictl.yaml, qui doit se trouver dans l’un des chemins suivants, selon votre système :
- macOS :
~/Library/Application Support/patroni - macOS (POSIX) :
~/.patroni - Unix :
~/.config/patroni - Unix (POSIX) :
~/.patroni - Windows (enregistrement local) :
C:\Users\<user>\AppData\Roaming\patroni - Windows (sans enregistrement local) :
C:\Users\<user>\AppData\Local\patroni
Vous pouvez remplacer ce comportement soit en :
- Définition de la variable d’environnement
PATRONICTL_CONFIG_FILEavec le chemin vers un fichier de configuration personnalisé ; - Utilisation de l’argument en ligne de commande
-c/--config-filede patronictl avec le chemin vers un fichier de configuration personnalisé.
Si vous exécutez patronictl
sur le même hôte que le patronidaemon__, vous pouvez utiliser le même fichier de configuration, à condition qu’il contienne toutes les sections de configuration requises par patronictl
.
Utilisation
patronictl met à disposition plusieurs opérations pratiques. Cette section a pour but de décrire chacune d’entre elles.
Avant d’aborder chacune des sous-commandes de patronictl , sachez que patronictl dispose elle-même des arguments suivants en ligne de commande :
-c / --config-file
Comme expliqué précédemment, utilisé pour spécifier le chemin vers un fichier de configuration pour patronictl
.
-d / --dcs-url / --dcs
Fournir une chaîne de connexion vers le DCS utilisé par Patroni.
Cet argument peut être utilisé soit pour remplacer les paramètres DCS et namespace provenant de la configuration patronictl
, soit pour les définir s’ils sont absents de la configuration.
La valeur doit être au format DCS://HOST:PORT/NAMESPACE, par exemple etcd3://localhost:2379/service pour se connecter à etcd v3 en cours d’exécution sur localhost avec le cluster Patroni stocké dans l’espace de noms service. Toute partie manquante dans la valeur de l’argument sera remplacée par la valeur présente dans la configuration ou par sa valeur par défaut.
-k / --insecure
Indicateur permettant de contourner la validation du certificat SSL du serveur API REST.
Voici le synopsis de l’exécution d’une commande depuis le patronictl :
Voici la syntaxe pour le synopsis :
- Les options entre crochets sont facultatives ;
- Les options entre accolades représentent une opération « choisir un parmi un ensemble » ;
- Les options avec
[, ... ]peuvent être spécifiées plusieurs fois ; - Les éléments écrits en majuscules représentent une valeur littérale qui doit être fournie.
Nous utiliserons cette même syntaxe pour décrire les sous-commandes de patronictl
dans les sous-sections suivantes. De plus, lors de la description des sous-commandes dans les sous-sections suivantes, la synthaxe des commandes doit être considérée comme une substitution du SUBCOMMAND dans le synopsis ci-dessus.
Dans les sous-sections suivantes, vous trouverez la description de chaque commande implémentée par patronictl
. Pour illustrer, nous utiliserons les fichiers de configuration présents dans le dépôt GitHub de Patroni (fichiers postgres0.yml, postgres1.yml et postgres2.yml).
patronictl demote-cluster
Synopsis
Description
patronictl demote-cluster convertit un cluster Patroni régulier en cluster de secours standby cluster
.
La commande applique une mise à jour de la configuration dynamique avec une section standby_cluster construite à partir des options de connexion fournies pour le primaire distant, puis attend que le leader soit en cours d’exécution en tant que leader de basculement. Elle affiche la topologie actuelle du cluster avant de modifier la configuration et demande une confirmation, sauf si --force est utilisé.
Au moins un des éléments --host, --port ou --restore-command doit être spécifié.
Paramètres
CLUSTER_NAME : Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--host : Adresse du nœud distant.
--port : Port du nœud distant.
--restore-command : Commande permettant de restaurer les enregistrements WAL depuis le serveur primaire distant.
--primary-slot-name : Nom de l’ensemble de réplication sur le nœud distant à utiliser pour la réplication.
--force : Indicateur permettant de passer outre les invites de confirmation lors de la désactivation du cluster.
Utile pour les scripts.
Exemples
Baissez le cluster en cluster de secours qui suit un point de terminaison primaire distant :
patronictl dsn
Synopsis
Description
patronictl dsn obtient la chaîne de connexion d’un membre du cluster Patroni.
Si plusieurs membres correspondent aux paramètres de cette commande, l’un d’entre eux sera sélectionné, en priorisant le nœud primaire.
Paramètres
CLUSTER_NAME : Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
-r / --role
Choisissez un membre ayant le rôle indiqué.
Le rôle peut être l’un des suivants :
leader: le leader d’un cluster Patroni régulier ou d’un cluster Patroni en veille ; ouprimary: le leader d’un cluster Patroni régulier ; oustandby-leader: le leader d’un cluster Patroni en veille ; oureplica: une réplique d’un cluster Patroni ; oustandby: identique àreplica; ouany: tout rôle. Identique à la suppression de ce paramètre ; ou
-m / --member
Sélectionnez un membre du cluster portant le nom indiqué.
MEMBER_NAME est le nom du membre.
--group
Sélectionnez un membre faisant partie du groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
Exemples
Obtenir le DSN du nœud primaire :
Obtenir la chaîne de connexion (DSN) du nœud nommé postgresql1 :
patronictl edit-config
Synopsis
Description
patronictl edit-config modifie la configuration dynamique du cluster et met à jour le DCS avec ces modifications.
Lorsqu’il est appelé via un TTY, la commande tente d’afficher une différence de la configuration dynamique à l’aide d’un visualiseur de pages. Par défaut, elle tente d’utiliser soit less soit more. Si vous souhaitez utiliser un autre visualiseur, définissez la variable d’environnement PAGER avec celui souhaité.
Paramètres
CLUSTER_NAME : Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Modifie la configuration dynamique du groupe Citus indiqué.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration citus.group, si elle existe.
CITUS_GROUP est l’identifiant du groupe Citus.
-q / --quiet
Indicateur permettant de passer outre l’affichage de la différence de configuration.
-s / --set
Définir une option de configuration dynamique donnée avec une valeur donnée.
CONFIG est le nom du chemin de configuration dynamique dans l’arborescence YAML, dont les niveaux sont séparés par ..
VALUE est la valeur de CONFIG. Si elle est égale à null, alors CONFIG sera supprimé de la configuration dynamique.
-p / --pg
Définir une option de configuration dynamique Postgres donnée avec la valeur indiquée.
Il s’agit essentiellement d’un raccourci pour --s / --set avec CONFIG préfixé par postgresql.parameters..
PG_CONFIG est le nom de la configuration Postgres à définir.
PG_VALUE est la valeur de PG_CONFIG. Si elle est égale à null, alors PG_CONFIG sera supprimé de la configuration dynamique.
--apply
Appliquer la configuration dynamique à partir du fichier spécifié.
Il est similaire à la spécification de plusieurs options -s / --set, une pour chaque configuration de CONFIG_FILE.
CONFIG_FILE est le chemin vers un fichier contenant la configuration dynamique à appliquer, au format YAML. Utilisez - si vous souhaitez lire à partir de stdin.
--replace
Remplacez la configuration dynamique dans le DCS par la configuration dynamique spécifiée dans le fichier fourni.
CONFIG_FILE est le chemin vers un fichier contenant la nouvelle configuration dynamique à appliquer, au format YAML. Utilisez - si vous souhaitez lire depuis stdin.
--force
Indicateur permettant de passer outre les invites de confirmation lors du changement de la configuration dynamique.
Utile pour les scripts.
Exemples
Modifiez le paramètre GUC Postgres max_connections :
Modifiez les paramètres loop_wait et ttl :
Supprimez le paramètre maximum_lag_on_failover de la configuration dynamique :
patronictl basculement
Synopsis
Description
patronictl failover effectue un basculement manuel dans le cluster.
Il est conçu pour être utilisé lorsque le cluster n’est pas sain, par exemple :
- Il n’y a pas de leader ; ou
- Aucun standby synchrone n’est disponible dans un cluster synchrone.
Il permet également de basculer vers un nœud asynchrone si le mode synchrone est activé.
Rien n’empêche d’exécuter patronictl failover dans un cluster sain. Toutefois, nous recommandons d’utiliser patronictl switchover dans ces cas.
[!AVERTISSEMENT]
Le déclenchement d’un basculement peut entraîner une perte de données, selon l’état de mise à jour de la réplique promue par rapport au primaire.
Paramètres
CLUSTER_NAME : Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Effectuez un basculement dans le groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
--candidate
Nœud à promouvoir lors d’un basculement.
CANDIDATE_NAME est le nom du nœud à promouvoir.
--force
Indicateur permettant de passer outre les invites de confirmation lors d’un basculement.
Utile pour les scripts.
Exemples
Basculer vers le nœud postgresql2 :
patronictl flush
Synopsis
Description
patronictl flush rejette les événements planifiés, le cas échéant.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
MEMBER_NAME
Ignorer les événements planifiés pour le ou les membres Patroni indiqués.
Plusieurs membres peuvent être spécifiés. Si aucun membre n’est spécifié, tous les membres sont pris en compte.
Utilisé uniquement si les événements de redémarrage planifié sont ignorés.
restart
Ignorer les événements de redémarrage planifiés.
switchover
Annuler l’événement de basculement planifié.
--group
Ignore les événements planifiés du groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
-r / --role
Ignorer les événements planifiés pour les membres ayant le rôle spécifié.
Le rôle peut être l’un des suivants :
leader: le leader d’un cluster Patroni régulier ou d’un cluster Patroni en veille ; ouprimary: le leader d’un cluster Patroni régulier ; oustandby-leader: le leader d’un cluster Patroni en veille ; oureplica: une réplique d’un cluster Patroni ; oustandby: identique àreplica; ouany: tout rôle. Identique à omettre ce paramètre.
Utilisé uniquement si les événements de redémarrage planifié sont ignorés.
--force
Indicateur permettant de passer outre les invites de confirmation lors de l’exécution de l’opération d’effacement.
Utile pour les scripts.
Exemples
Annuler un événement de basculement planifié :
Annuler le redémarrage planifié de tous les nœuds de secours :
Annuler le redémarrage planifié des nœuds postgresql0 et postgresql1 :
patronictl history
Synopsis
Description
patronictl history affiche l’historique des événements de basculement et de basculement planifié du cluster, le cas échéant.
Les informations suivantes sont incluses dans la sortie :
TL
Timeline Postgres au moment de l’événement.
LSN
LSN de Postgres au moment de l’événement.
Reason
Raison extraite du fichier Postgres .history.
Timestamp
Heure à laquelle l’événement s’est produit.
New Leader
Membre Patroni ayant été promu pendant l’événement.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Affiche l’historique des événements du groupe Citus spécifié.
CITUS_GROUP est l’identifiant du groupe Citus.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration citus.group, si elle existe.
-f / --format
Comment formater la liste des événements dans la sortie.
Le format peut être l’un des suivants :
pretty: affiche l’historique sous forme de tableau élégant ; outsv: affiche l’historique sous forme d’information tabulaire, les colonnes étant séparées par\t; oujson: affiche l’historique au format JSON ; ouyaml: affiche l’historique au format YAML.
La valeur par défaut est pretty.
--force
Indicateur permettant de passer outre les invites de confirmation lors de l’exécution de l’opération d’effacement.
Utile pour les scripts.
Exemples
Affichez l’historique des événements :
Affichez l’historique des événements au format YAML :
patronictl list
Synopsis
Description
patronictl list affiche des informations sur le cluster Patroni et ses membres.
Les informations suivantes sont incluses dans la sortie :
Cluster
Nom du cluster Patroni.
Member
Nom du membre Patroni.
Host
Hôte sur lequel le membre est situé.
Role
Rôle actuel du membre.
Peut être l’un des suivants :
Leader: le leader actuel d’un cluster Patroni régulier ; ouStandby Leader: le leader actuel d’un cluster de secours Patroni ; ouSync Standby: une réplique de secours synchrone d’un cluster Patroni avec le mode synchrone activé ; ouReplica: une réplique de secours régulière d’un cluster Patroni.
State
État actuel de PostgreSQL dans le membre Patroni.
Quelques exemples parmi les états possibles :
running: si PostgreSQL est actuellement en cours d’exécution ;streaming: si une réplique et PostgreSQL reçoit actuellement des journaux WAL depuis le nœud primaire ;in archive recovery: si une réplique et PostgreSQL récupère actuellement les journaux WAL depuis l’archive ;stopped: si PostgreSQL a été arrêté ;crashed: si PostgreSQL a planté.
TL
Timeline actuelle de PostgreSQL dans le membre Patroni.
Receive LSN
Dernière position du journal d’avance écrite reçue et synchronisée sur le disque par la réplication en streaming du membre (pg_catalog.pg_last_(xlog|wal)_receive_(location|lsn)()).
Receive Lag
Délai de réplication entre la position Receive LSN du membre et son amont, en mégaoctets.
Replay LSN
Emplacement du dernier journal d’écriture avancée rejeu durant la récupération du membre (pg_catalog.pg_last_(xlog|wal)_replay_(location|lsn)()).
Replay Lag
Délai de réplication entre la position Replay LSN du membre et son amont, en mégaoctets.
En outre, les informations suivantes peuvent être incluses dans la sortie :
System identifier
Identifiant système Postgres.
Affiché dans l’en-tête du tableau.
Affiché uniquement si le format de sortie est pretty.
Group
ID du groupe Citus.
Affiché dans l’en-tête du tableau.
Affiché uniquement si un cluster Citus est utilisé.
Pending restart
* indique que le nœud nécessite un redémarrage pour que certaines configurations Postgres prennent effet. Une valeur vide indique que le nœud n’a pas besoin de redémarrage.
Affiché en tant qu’attribut membre.
Affiché si :
- Impression au format
prettyoutsvavec la sortie étendue activée ; ou - Si le nœud nécessite un redémarrage.
Scheduled restart
Horodatage à partir duquel une redémarrage a été planifié pour l’instance Postgres gérée par le membre Patroni. Une valeur vide indique qu’aucun redémarrage n’est planifié pour le membre.
Affiché en tant qu’attribut membre.
Affiché si :
- Impression au format
prettyoutsvavec la sortie étendue activée ; ou - Si le nœud a un redémarrage planifié.
Tags
Contient les balises définies pour le membre Patroni. Une valeur vide indique qu’aucune balise n’a été configurée, ou qu’elles ont été configurées avec des valeurs par défaut.
Affiché en tant qu’attribut membre.
Affiché si :
- Impression au format
prettyoutsvavec la sortie étendue activée ; ou - Si le nœud possède des balises personnalisées, ou des balises par défaut avec des valeurs non par défaut.
Scheduled switchover
Horodatage auquel un basculement planifié a été prévu pour le cluster Patroni, le cas échéant.
Affiché dans le pied de tableau.
Affiché uniquement s’il existe un basculement planifié, et que le format de sortie est pretty.
Maintenance mode
Si la surveillance du cluster est actuellement mise en pause.
NoteAffiché dans le pied de tableau.
Affiché uniquement si le cluster est en pause, et que le format de sortie est
pretty.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Affiche les informations relatives aux membres du groupe Citus spécifié.
CITUS_GROUP est l’identifiant du groupe Citus.
-e / --extended
Affiche des informations étendues.
Forcer l’affichage des attributs Pending restart, Scheduled restart et Tags, même si leur valeur est vide.
S’applique uniquement aux formats de sortie pretty et tsv.
-t / --timestamp
Affiche une horodatage avant d’afficher les informations sur le cluster et ses membres.
-f / --format
Comment formater la liste des événements dans la sortie.
Le format peut être l’un des suivants :
pretty: affiche l’historique sous forme de tableau élégant ; outsv: affiche l’historique sous forme d’information tabulaire, les colonnes étant séparées par\t; oujson: affiche l’historique au format JSON ; ouyaml: affiche l’historique au format YAML.
La valeur par défaut est pretty.
-W
Actualisez automatiquement les informations toutes les 2 secondes.
-w / --watch
Actualiser automatiquement les informations à l’intervalle spécifié.
TIME est l’intervalle entre les actualisations, en secondes.
Exemples
Affichez les informations sur le cluster au format lisible :
Affichez les informations sur le cluster au format lisible avec des colonnes étendues :
Affichez les informations sur le cluster au format YAML, avec l’horodatage de l’exécution :
patronictl pause
Synopsis
Description
patronictl pause met temporairement le cluster Patroni en mode maintenance et désactive le basculement automatique.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Met en pause le groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration citus.group, si elle existe.
--wait
Attendez que tous les membres Patroni soient mis en pause avant de restituer le contrôle à l’appelant.
Exemples
Mettez le cluster en mode maintenance, puis attendez que tous les nœuds aient été mis en pause :
patronictl promouvoir-cluster
Synopsis
Description
patronictl promote-cluster convertit un cluster de secours en cluster Patroni régulier.
La commande supprime la section standby_cluster de la configuration dynamique et attend que le leader fonctionne en tant que primaire. Elle affiche la topologie actuelle du cluster avant de modifier la configuration et demande une confirmation, sauf si --force est utilisé.
Paramètres
CLUSTER_NAME : Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--force : Indicateur permettant de passer outre les invites de confirmation lors de la promotion du cluster.
Utile pour les scripts.
Exemples
Promouvoir le cluster de secours pour qu’il fonctionne en tant que cluster Patroni régulier :
patronictl query
Synopsis
Description
patronictl query exécute une commande ou un script SQL sur un membre du cluster Patroni.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Interrogez le groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
-r / --role
Choisissez un membre ayant le rôle indiqué.
Le rôle peut être l’un des suivants :
leader: le leader d’un cluster Patroni régulier ou d’un cluster Patroni en veille ; ouprimary: le leader d’un cluster Patroni régulier ; oustandby-leader: le leader d’un cluster Patroni en veille ; oureplica: une réplique d’un cluster Patroni ; oustandby: identique àreplica; ouany: tout rôle. Identique à omettre ce paramètre.
-m / --member
Choisissez un membre ayant le nom indiqué.
MEMBER_NAME est le nom du membre à sélectionner.
-d / --dbname
Base de données à laquelle se connecter pour exécuter la requête.
DBNAME est le nom de la base de données. S’il n’est pas fourni, la valeur par défaut est USERNAME.
-U / --username
Utilisateur pour se connecter à la base de données.
USERNAME nom de l’utilisateur. S’il n’est pas fourni, la valeur par défaut est l’utilisateur du système d’exploitation exécutant patronictl query.
--password
Invite le mot de passe de l’utilisateur connecté.
Comme Patroni utilise libpq, vous pouvez également créer un fichier ~/.pgpass ou définir la variable d’environnement PGPASSWORD.
--format
Comment formater la sortie de la requête.
Le format peut être l’un des suivants :
pretty: affiche les résultats de la requête sous forme de tableau mis en forme ; outsv: affiche les résultats de la requête sous forme d’information tabulaire, les colonnes étant séparées par\t; oujson: affiche les résultats de la requête au format JSON ; ouyaml: affiche les résultats de la requête au format YAML.
La valeur par défaut est tsv.
-f / --file
Utilisez un fichier comme source de commandes pour exécuter des requêtes.
FILE_NAME est le chemin d’accès au fichier source.
-c / --command
Exécutez la commande SQL fournie dans la requête.
SQL_COMMAND est la commande SQL à exécuter.
--delimiter
Le délimiteur utilisé lors de l’affichage des informations au format tsv, ou \t si omis.
-W
Exécuter automatiquement la requête toutes les 2 secondes.
-w / --watch
Réexécuter automatiquement la requête à l’intervalle spécifié.
TIME indique, en secondes, l’intervalle séparant les réexécutions.
Exemples
Exécutez une commande SQL en tant qu’utilisateur postgres, puis indiquez son mot de passe :
Exécutez une commande SQL en tant qu’utilisateur postgres, en prenant le mot de passe depuis la variable d’environnement libpq :
Exécutez une commande SQL et affichez au format pretty toutes les 2 secondes :
Exécutez une commande SQL sur la base de données test et affichez la sortie au format YAML :
Exécutez une commande SQL sur le membre postgresql2 :
Exécutez une commande SQL sur l’un des serveurs de secours :
patronictl reinit
Synopsis
Description
patronictl reinit reconstruit une instance Postgres en mode standby gérée par une réplique membre du cluster Patroni.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
MEMBER_NAME
Nom du membre réplique pour lequel l’instance Postgres sera reconstruite.
Plusieurs répliques peuvent être spécifiées. Si aucune réplique n’est spécifiée, la commande ne fait rien.
--group
Reconstruit un membre réplica du groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
--wait
Attendez que la réinitialisation du(nœud) de secours Postgres soit terminée.
--force
Indicateur permettant de passer outre les invites de confirmation lors de la reconstruction des instances secondaires Postgres.
--from-leader
Indicateur permettant d’obtenir un basebackup directement depuis le leader.
Utile pour les scripts.
Exemples
Demandez une reconstruction de toutes les répliques du cluster Patroni et renvoyez immédiatement le contrôle à l’appelant :
Demandez une reconstruction de postgresql2 et attendez sa finalisation :
Demandez une reconstruction de postgresql2 et obtenez le basebackup directement depuis le leader :
patronictl reload
Synopsis
Description
patronictl reload demande un rechargement de la configuration locale pour un ou plusieurs membres Patroni.
Il déclenche également pg_ctl reload sur l’instance Postgres gérée, même si rien n’a changé.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
MEMBER_NAME
Demander un rechargement de la configuration locale pour le ou les membres Patroni indiqués.
Plusieurs membres peuvent être spécifiés. Si aucun membre n’est spécifié, tous les membres sont pris en compte.
--group
Demandez un rechargement des membres du groupe Citus donné.
CITUS_GROUP est l’identifiant du groupe Citus.
-r / --role
Sélectionne les membres ayant le rôle indiqué.
Le rôle peut être l’un des suivants :
leader: le leader d’un cluster Patroni régulier ou d’un cluster Patroni en veille ; ouprimary: le leader d’un cluster Patroni régulier ; oustandby-leader: le leader d’un cluster Patroni en veille ; oureplica: une réplique d’un cluster Patroni ; oustandby: identique àreplica; ouany: tout rôle. Identique à omettre ce paramètre.
--force
Indicateur permettant de passer outre les invites de confirmation lors de la demande de rechargement de la configuration locale.
Utile pour les scripts.
Exemples
Demandez un rechargement de la configuration locale de tous les membres du cluster Patroni :
patronictl supprimer
Synopsis
Description
patronictl remove supprime les informations du cluster du DCS.
Il s’agit d’une action interactive.
[!AVERTISSEMENT]
Cette opération supprimera les informations du cluster Patroni dans le DCS.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
--group
Supprimez les informations relatives au cluster Patroni associées au groupe Citus donné.
CITUS_GROUP est l’identifiant du groupe Citus.
-f / --format
Comment formater la liste des membres dans la sortie lors de la demande de confirmation.
Le format peut être l’un des suivants :
pretty: affiche les membres sous forme de tableau mis en forme ; outsv: affiche les membres sous forme de tableaux, les colonnes étant séparées par\t; oujson: affiche les membres au format JSON ; ouyaml: affiche les membres au format YAML.
La valeur par défaut est pretty.
Exemples
Supprimer les informations relatives au cluster Patroni batman du DCS :
patronictl restart
Synopsis
Description
patronictl restart demande un redémarrage de l’instance Postgres gérée par un membre du cluster Patroni.
La redémarrage peut être effectué immédiatement ou planifié pour une date ultérieure.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
--group
Redémarrez le cluster Patroni associé au groupe Citus donné.
CITUS_GROUP est l’identifiant du groupe Citus.
-r / --role
Sélectionnez les membres ayant le rôle indiqué.
Le rôle peut être l’un des suivants :
leader: le leader d’un cluster Patroni régulier ou d’un cluster Patroni en veille ; ouprimary: le leader d’un cluster Patroni régulier ; oustandby-leader: le leader d’un cluster Patroni en veille ; oureplica: une réplique d’un cluster Patroni ; oustandby: identique àreplica; ouany: tout rôle. Identique à omettre ce paramètre.
--any
Redémarre un nœud aléatoire parmi ceux qui correspondent aux filtres donnés.
--pg-version
Sélectionnez uniquement les membres dont la version de l’instance Postgres gérée est antérieure à la version indiquée.
PG_VERSION est la version de Postgres à comparer.
--pending
Sélectionnez uniquement les membres marqués comme Pending restart.
--timeout : Interrompre le redémarrage s’il dure plus que le délai spécifié, et basculer vers une réplique si le problème se situe sur le primaire.
TIMEOUT est le nombre de secondes à attendre avant d’abandonner le redémarrage.
--scheduled
Planifiez une redémarrage à effectuer à l’instant indiqué.
TIMESTAMP est l’horodatage auquel la redémarrage doit avoir lieu. Spécifiez-le au format non ambigu, idéalement avec fuseau horaire. Vous pouvez également utiliser la valeur littérale now pour exécuter le redémarrage immédiatement.
--force
Indicateur permettant de passer outre les invites de confirmation lors de la demande de redémarrage.
Utile pour les scripts.
Exemples
Redémarrez immédiatement tous les membres du cluster :
Redémarrez immédiatement un membre aléatoire du cluster :
Planifiez une redémarrage à se produire à 2023-09-13T18:00-03:00 :
patronictl reprendre
Synopsis
Description
patronictl resume sort le cluster Patroni du mode maintenance et réactive le basculement automatique.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Reprendre le groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration citus.group, si elle existe.
--wait
Attendez que tous les membres Patroni soient repassés en mode actif avant de restituer le contrôle à l’appelant.
Exemples
Mettez le cluster hors du mode maintenance :
patronictl show-config
Synopsis
Description
patronictl show-config affiche la configuration dynamique du cluster stockée dans le DCS.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Affiche la configuration dynamique du groupe Citus donné.
CITUS_GROUP est l’identifiant du groupe Citus.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration citus.group, si elle existe.
Exemples
Affiche la configuration dynamique du cluster batman :
patronictl basculement planifié
Synopsis
Description
patronictl switchover effectue un basculement planifié dans le cluster.
Il est conçu pour être utilisé lorsque le cluster est sain, par exemple :
- Il y a un leader ;
- Il existe des répliques synchrones disponibles dans un cluster synchrone.
Si votre cluster est défaillant, vous pourriez être intéressé par patronictl failover à la place.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Effectuez un basculement planifié dans le groupe Citus indiqué.
CITUS_GROUP est l’identifiant du groupe Citus.
--leader / --primary
Indiquez le leader à rétrograder au moment du basculement planifié.
LEADER_NAME doit correspondre au nom du leader actuel dans le cluster.
--candidate
Nœud à promouvoir lors d’un basculement planifié, et qui prendra le rôle primaire.
CANDIDATE_NAME est le nom du nœud à promouvoir.
--scheduled
Planifiez un basculement planifié à s’effectuer à l’instant indiqué.
TIMESTAMP est l’horodatage auquel le basculement planifié doit avoir lieu. Indiquez-le au format non ambigu, idéalement avec fuseau horaire. Vous pouvez également utiliser le littéral now pour exécuter le basculement planifié immédiatement.
--force
Indicateur permettant de passer outre les invites de confirmation lors d’un basculement planifié.
Utile pour les scripts.
Exemples
Basculer sur le nœud postgresql2 :
Planifiez un basculement planifié entre postgresql0 et postgresql2 afin qu’il ait lieu à 2023-09-13T18:00:00-03:00 :
patronictl topology
Synopsis
Description
patronictl topology affiche les informations concernant le cluster Patroni et ses membres selon une approche en arbre.
Les informations suivantes sont incluses dans la sortie :
Cluster
Nom du cluster Patroni.
Affiché dans l’en-tête du tableau.
System identifier
Identifiant système Postgres.
Affiché dans l’en-tête du tableau.
Member
Nom du membre Patroni.
Les informations de cette colonne s’affichent sous forme d’arborescence des membres en fonction des connexions de réplication.
Host
Hôte sur lequel le membre est situé.
Role
Rôle actuel du membre.
Peut être l’un des suivants :
Leader: le leader actuel d’un cluster Patroni régulier ; ouStandby Leader: le leader actuel d’un cluster de secours Patroni ; ouSync Standby: une réplique de secours synchrone d’un cluster Patroni avec le mode synchrone activé ; ouReplica: une réplique de secours régulière d’un cluster Patroni.
State
État actuel de PostgreSQL dans le membre Patroni.
Quelques exemples parmi les états possibles :
running: si PostgreSQL est actuellement en cours d’exécution ;streaming: si une réplique et PostgreSQL reçoit actuellement des journaux WAL depuis le nœud primaire ;in archive recovery: si une réplique et PostgreSQL récupère actuellement les journaux WAL depuis l’archive ;stopped: si PostgreSQL a été arrêté ;crashed: si PostgreSQL a planté.
TL
Timeline actuelle de PostgreSQL dans le membre Patroni.
Receive LSN
Dernière position du journal d’avance écrite reçue et synchronisée sur le disque par la réplication en streaming du membre (pg_catalog.pg_last_(xlog|wal)_receive_(location|lsn)()).
Receive Lag
Délai de réplication entre la position Receive LSN du membre et son amont, en mégaoctets.
Replay LSN
Emplacement du dernier journal d’écriture avancée rejeu durant la récupération du membre (pg_catalog.pg_last_(xlog|wal)_replay_(location|lsn)()).
Replay Lag
Délai de réplication entre la position Replay LSN du membre et son amont, en mégaoctets.
En outre, les informations suivantes peuvent être incluses dans la sortie :
Group
ID du groupe Citus.
Affiché dans l’en-tête du tableau.
Affiché uniquement si un cluster Citus est utilisé.
Pending restart
* indique que le nœud nécessite un redémarrage pour que certaines configurations Postgres prennent effet. Une valeur vide indique que le nœud n’a pas besoin de redémarrage.
Affiché en tant qu’attribut membre.
Affiché si le nœud nécessite un redémarrage.
Scheduled restart
Horodatage à partir duquel une redémarrage a été planifié pour l’instance Postgres gérée par le membre Patroni. Une valeur vide indique qu’aucun redémarrage n’est planifié pour le membre.
Affiché en tant qu’attribut membre.
Affiché si le nœud a un redémarrage planifié.
Tags
Contient les balises définies pour le membre Patroni. Une valeur vide indique qu’aucune balise n’a été configurée, ou qu’elles ont été configurées avec des valeurs par défaut.
Affiché en tant qu’attribut membre.
Affiché si le nœud possède des balises personnalisées, ou des balises par défaut avec des valeurs non par défaut.
Scheduled switchover
Horodatage auquel un basculement planifié a été prévu pour le cluster Patroni, le cas échéant.
Affiché dans le pied de tableau.
Affiché uniquement si un basculement planifié est prévu.
Maintenance mode
Si la surveillance du cluster est actuellement mise en pause.
NoteAffiché dans le pied de tableau.
Affiché uniquement si le cluster est mis en pause.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
Si elle n’est pas fournie, patronictl
tentera de la récupérer à partir de la configuration scope, si elle existe.
--group
Affiche les informations relatives aux membres du groupe Citus spécifié.
CITUS_GROUP est l’identifiant du groupe Citus.
-W
Actualisez automatiquement les informations toutes les 2 secondes.
-w / --watch
Actualiser automatiquement les informations à l’intervalle spécifié.
TIME est l’intervalle entre les actualisations, en secondes.
Exemples
Affiche la topologie du cluster batman – postgresql1 et postgresql2 sont en réplication depuis postgresql0 :
patronictl version
Synopsis
Description
patronictl version obtient la version de l’application patronictl
. En outre, elle peut également inclure des informations sur la version des clusters Patroni et de leurs membres.
Paramètres
CLUSTER_NAME
Nom du cluster Patroni.
MEMBER_NAME
Nom du membre du cluster Patroni.
--group
Considérez un cluster Patroni avec le groupe Citus donné.
CITUS_GROUP est l’identifiant du groupe Citus.
Exemples
Obtenir la version de patronictl uniquement :
Obtenir la version de patronictl
et de tous les membres du cluster batman :
Obtenir la version de patronictl
et des membres postgresql1 et postgresql2 du cluster batman :