Détecter et terminer les requêtes de longue durée de Public Cloud Databases pour PostgreSQL
Ce guide explique comment détecter et terminer des sessions spécifiques depuis l'espace client OVHcloud et l'interface en ligne de commande (CLI)
Objectif
Les requêtes sur une instance PostgreSQL peuvent s'exécuter indéfiniment, et OVHcloud ne les arrêtera pas automatiquement. De telles requêtes peuvent verrouiller des ressources de manière inappropriée et provoquer des comportements incorrects dans votre système.
Ce guide explique comment détecter et terminer des sessions spécifiques depuis l'espace client OVHcloud et l'interface en ligne de commande (CLI).
Prérequis
- Un projet Public Cloud dans votre compte OVHcloud
- Une base de données PostgreSQL exécutée sur votre service Public Cloud Databases OVHcloud (ce guide peut vous aider à répondre à ce prérequis)
Accès à l'espace client OVHcloud
- Lien direct :
- Chemin de navigation :
Public Cloud> Sélectionnez votre projet
En pratique
Terminer les requêtes de longue durée depuis l'espace client OVHcloud
Cliquez sur Databases dans la barre de navigation de gauche, puis sélectionnez votre instance PostgreSQL.
Cliquez sur l'onglet Requêtes en cours.
Ce tableau regroupe les requêtes en cours avec quelques options de filtrage, comme l'affichage des connexions inactives ou actives.
Le tableau des requêtes affiche la requête exacte, ainsi que des informations détaillées : PID (identifiant de processus), durée, base de données, adresse client et nom de l'application.
Dans la liste du tableau, trouvez la session que vous souhaitez terminer, puis cliquez sur le bouton ... à la fin de la ligne. Vous pourrez alors terminer directement la session et le processus backend associé.
La requête disparaîtra, mais si votre application cliente est codée pour relancer la requête après un échec, une nouvelle requête et un nouveau PID réapparaîtront.
Terminer les requêtes de longue durée avec la CLI (psql)
La CLI PostgreSQL, appelée psql, fournit des fonctions d'administration natives telles que pg_terminate_backend().
Pour plus d'informations, veuillez consulter leur documentation officielle.
Se connecter à votre base de données avec psql
Veuillez consulter ce guide pour savoir comment vous connecter à votre base de données avec psql.
Assurez-vous d'abord de disposer de privilèges d'accès suffisants
Vous ne pouvez terminer une session que si vous êtes le propriétaire de la base de données.
Pour vérifier vos rôles et droits, exécutez la commande suivante dans psql :
Elle retournera la liste des bases de données et des privilèges d'accès. Par exemple :
Si vous ne voyez pas votre utilisateur, vous devrez lui accorder les privilèges d'accès requis sur la base de données appropriée. Sinon, les instructions ci-dessous renverront une erreur.
Trouver les requêtes de longue durée
Une fois connecté à votre base de données, saisissez par exemple :
Cela vous affichera une liste de requêtes et de PID.
Pour plus d'informations sur les statistiques, veuillez consulter la documentation officielle.
Terminer une requête spécifique
Maintenant que vous avez obtenu le PID, vous pouvez terminer une requête spécifique avec la commande suivante :
Où pid est l'identifiant unique trouvé lors de l'étape précédente.
Cette commande ne renvoie aucun résultat en cas de succès.
Comme expliqué ici, la requête disparaîtra si vous vérifiez à nouveau les statistiques, mais si votre application cliente est codée pour relancer la requête après un échec, une nouvelle requête et un nouveau PID réapparaîtront.
Aller plus loin
Visitez notre chaîne Discord dédiée : https://discord.gg/ovhcloud. Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe nos services de bases de données.
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Rejoignez notre communauté d'utilisateurs.