{"id":6672,"date":"2026-04-14T22:23:12","date_gmt":"2026-04-14T20:23:12","guid":{"rendered":"https:\/\/rootfan.com\/?p=6672"},"modified":"2026-04-14T22:27:39","modified_gmt":"2026-04-14T20:27:39","slug":"liste-des-outils-postgresql","status":"publish","type":"post","link":"https:\/\/rootfan.com\/fr\/postgresql-tools-list\/","title":{"rendered":"Liste des outils PostgreSQL : La pile essentielle pour les DBA de production"},"content":{"rendered":"<p><strong>TL;DR :<\/strong> PostgreSQL n'est pas livr\u00e9 avec une suite de surveillance int\u00e9gr\u00e9e, un gestionnaire de sauvegarde ou un cadre de haute disponibilit\u00e9 \u2014 vous assemblez la pile vous-m\u00eame \u00e0 partir d'outils sp\u00e9cialis\u00e9s.<br>Ce n'est pas une faiblesse : cela signifie que vous choisissez ce qui correspond \u00e0 votre environnement au lieu de payer pour des fonctionnalit\u00e9s que vous n'utilisez pas.<br>Cette liste couvre un choix de premier ordre par cat\u00e9gorie, avec de br\u00e8ves notes sur le moment d'utiliser les alternatives.<br>Six cat\u00e9gories sont non n\u00e9gociables en production : haute disponibilit\u00e9\/basculement, sauvegarde et restauration \u00e0 un point dans le temps, mise en commun des connexions, surveillance, analyse des requ\u00eates et analyse des journaux.<br>Tout le reste est facultatif.<\/p>\n\n\n\n<!--more-->\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>J'ai configur\u00e9 PostgreSQL dans des environnements de production qui ont succ\u00e9d\u00e9 \u00e0 Oracle RAC, \u00e0 SQL Server AlwaysOn et \u00e0 du MySQL nu sans aucune haute disponibilit\u00e9.<\/p>\n\n\n\n<p>La question que l'on me pose le plus souvent est toujours la m\u00eame : de quels outils ai-je r\u00e9ellement besoin ?<\/p>\n\n\n\n<p>Oracle est livr\u00e9 avec tout int\u00e9gr\u00e9 \u2014 RMAN pour la sauvegarde, Enterprise Manager pour la surveillance, Data Guard pour la r\u00e9plication, DBMS_SCHEDULER pour les t\u00e2ches.<\/p>\n\n\n\n<p>PostgreSQL ne le fait pas.<\/p>\n\n\n\n<p>Vous construisez la pile \u00e0 partir de composants, et chaque composant fait une chose bien.<\/p>\n\n\n\n<p>Voici les outils que j'installe ou que je recommande pour chaque d\u00e9ploiement de production PostgreSQL.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table des mati\u00e8res<\/h2><nav><ul><li><a href=\"#what-tools-do-you-need-to-run-postgre-sql-in-production\">Quels outils sont n\u00e9cessaires pour ex\u00e9cuter PostgreSQL en production ?<\/a><\/li><li><a href=\"#high-availability-patroni\">Haute Disponibilit\u00e9 \u2014 Patroni<\/a><\/li><li><a href=\"#backup-and-point-in-time-recovery-pg-back-rest\">Sauvegarde et restauration \u00e0 un instant T \u2014 pgBackRest<\/a><\/li><li><a href=\"#connection-pooling-pg-bouncer\">Pooling de Connexion \u2014 PgBouncer<\/a><\/li><li><a href=\"#monitoring-postgres-exporter-and-pgwatch-2\">Surveillance \u2014 postgres_exporter et pgwatch2<\/a><\/li><li><a href=\"#query-analysis-pg-badger-and-pev-2\">Analyse des requ\u00eates \u2014 pgBadger et PEV2<\/a><\/li><li><a href=\"#extensions-every-production-dba-should-know\">Extensions que tout DBA de production devrait conna\u00eetre<\/a><\/li><li><a href=\"#gui-and-cli-d-beaver-and-pgcli\">Interface graphique et interface en ligne de commande \u2014 DBeaver et pgcli<\/a><\/li><li><a href=\"#one-tool-most-db-as-miss-postgres-checkup\">Un outil que la plupart des DBA ignorent \u2014 postgres-checkup<\/a><\/li><li><a href=\"#frequently-asked-questions\">Foire aux questions<\/a><ul><li><a href=\"#faq-question-1775168995440\">Quel est le meilleur outil de surveillance pour PostgreSQL ?<\/a><\/li><li><a href=\"#faq-question-1775168996440\">Ai-je besoin de PgBouncer si mon application utilise d\u00e9j\u00e0 un pool de connexions ?<\/a><\/li><li><a href=\"#faq-question-1775168997440\">Sauvegardes et restauration de PostgreSQL<\/a><\/li><li><a href=\"#faq-question-1775168998440\">Qu'est-ce qui remplace Oracle Enterprise Manager dans PostgreSQL ?<\/a><\/li><\/ul><\/li><li><a href=\"#in-summary\">En r\u00e9sum\u00e9<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-tools-do-you-need-to-run-postgre-sql-in-production\">Quels outils sont n\u00e9cessaires pour ex\u00e9cuter PostgreSQL en production ?<\/h2>\n\n\n\n<p>Six cat\u00e9gories sont non n\u00e9gociables : haute disponibilit\u00e9 et basculement, sauvegarde avec r\u00e9cup\u00e9ration \u00e0 un point pr\u00e9cis dans le temps, pooling de connexions, surveillance, analyse des requ\u00eates et analyse des journaux.<br>Manquer l'un des quatre premiers cr\u00e9e un \u00e9cart qui co\u00fbtera en production.<br>Tout dans les sections ci-dessous correspond \u00e0 l'une de ces six options, avec une recommandation principale pour chaque cat\u00e9gorie et des notes claires sur quand les alternatives ont plus de sens.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"high-availability-patroni\">Haute Disponibilit\u00e9 \u2014 Patroni<\/h2>\n\n\n\n<p><strong>Patroni<\/strong> est la norme pour la haute disponibilit\u00e9 de PostgreSQL dans les environnements sur site et cloud.<br>Il g\u00e8re un cluster de n\u0153uds PostgreSQL, g\u00e8re l'\u00e9lection du leader via un magasin de configuration distribu\u00e9 externe (etcd, Consul ou ZooKeeper) et effectue un basculement automatique lorsque le n\u0153ud primaire \u00e9choue.<br>Les basculements sont manuels et propres \u2013 utiles pour la maintenance planifi\u00e9e.<br>L'API REST vous permet d'interroger l'\u00e9tat du cluster, de d\u00e9clencher des basculements et de vous int\u00e9grer \u00e0 des \u00e9quilibreurs de charge externes.<\/p>\n\n\n\n<p>Pour la plupart des d\u00e9ploiements sur site, Patroni avec etcd est le bon choix.<br>La communaut\u00e9 est grande, la documentation est compl\u00e8te et elle g\u00e8re les cas limites que les outils plus simples manquent.<\/p>\n\n\n\n<p><strong>Quand utiliser les alternatives :<\/strong><br><strong>repmgr<\/strong> \u2014 plus simple \u00e0 configurer, moins de surcharge op\u00e9rationnelle ; id\u00e9al pour les environnements plus petits o\u00f9 la pile compl\u00e8te Patroni\/etcd est plus que n\u00e9cessaire.<br><strong>pg_auto_failover<\/strong> \u2014 extension unique, sans d\u00e9pendances externes ; le moyen le plus simple de basculer automatiquement pour les \u00e9quipes qui veulent quelque chose qui fonctionne sans g\u00e9rer etcd.<br><strong>Stolon<\/strong> \u2014 con\u00e7u pour Kubernetes ; utilisez-le lorsque le client ex\u00e9cute PostgreSQL sur Kubernetes et souhaite une int\u00e9gration native.<\/p>\n\n\n\n<p>Si vous migrez depuis Oracle RAC, Patroni est l'\u00e9quivalent fonctionnel le plus proche pour le basculement automatique.<br>Ce n'est pas actif-actif \u2014 PostgreSQL + Patroni est un mod\u00e8le ma\u00eetre\/r\u00e9plique avec promotion automatique.<br>Pour les charges de travail qui n\u00e9cessitent v\u00e9ritablement le mode actif-actif en lecture\/\u00e9criture de RAC entre les n\u0153uds, il s'agit d'une r\u00e9elle diff\u00e9rence architecturale qui vaut la peine d'\u00eatre \u00e9valu\u00e9e s\u00e9par\u00e9ment.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"backup-and-point-in-time-recovery-pg-back-rest\">Sauvegarde et restauration \u00e0 un instant T \u2014 pgBackRest<\/h2>\n\n\n\n<p><strong>pgBackRest<\/strong> est le premier outil que j'installe sur chaque serveur PostgreSQL.<br>Il g\u00e8re les sauvegardes compl\u00e8tes, diff\u00e9rentielles et incr\u00e9mentielles ; la sauvegarde et la restauration parall\u00e8les ; l'archivage des WAL (Write-Ahead Log) ; et la restauration \u00e0 un point dans le temps.<br>Il compresse et chiffre facultativement les fichiers de sauvegarde, prend en charge le stockage local et distant, et dispose d'une documentation claire et bien entretenue.<\/p>\n\n\n\n<p>Pour les DBA Oracle, c'est l'\u00e9quivalent RMAN.<br>La PITR fonctionne en rejouant les segments WAL \u00e0 partir d'une sauvegarde de base, ce qui permet une r\u00e9cup\u00e9ration \u00e0 n'importe quel point dans le temps entre les sauvegardes \u2014 le m\u00eame mod\u00e8le que la r\u00e9cup\u00e9ration bas\u00e9e sur SCN d'Oracle, exprim\u00e9 diff\u00e9remment.<\/p>\n\n\n\n<p><strong>Quand utiliser les alternatives :<\/strong><br><strong>WAL-G<\/strong> \u2014 mieux pour les environnements cloud natifs o\u00f9 les sauvegardes atterrissent dans S3, GCS ou Azure Blob Storage ; plus l\u00e9ger que pgBackRest, pas de fichier de configuration.<br><strong>Barman<\/strong> \u2014 option solide pour les environnements multi-serveurs g\u00e9r\u00e9s de mani\u00e8re centralis\u00e9e ; largement utilis\u00e9 par les entreprises qui souhaitent un mod\u00e8le de serveur de sauvegarde d\u00e9di\u00e9.<\/p>\n\n\n\n<p>N'utilisez pas WAL-E pour les nouveaux d\u00e9ploiements \u2014 il a \u00e9t\u00e9 remplac\u00e9 par WAL-G par le m\u00eame auteur.<\/p>\n\n\n\n<p>La seule r\u00e8gle qui importe par-dessus tout : testez vos restaurations.<br>Une sauvegarde que vous n'avez jamais restaur\u00e9e n'est pas une sauvegarde \u2014 c'est un fichier.<br>Planifiez une restauration mensuelle sur un serveur distinct et v\u00e9rifiez les donn\u00e9es.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"connection-pooling-pg-bouncer\">Pooling de Connexion \u2014 PgBouncer<\/h2>\n\n\n\n<p><strong>PgBouncer<\/strong> n'est pas facultatif en production.<br>PostgreSQL cr\u00e9e un nouveau processus syst\u00e8me pour chaque connexion client.<br>Pour de faibles nombres de connexions, cela fonctionne bien.<br>Aux 500 connexions simultan\u00e9es, cela devient un probl\u00e8me de performance.<br>\u00c0 2\u00a0000, il fait tomber le serveur.<\/p>\n\n\n\n<p>PgBouncer se situe entre l'application et PostgreSQL et multiplexe de nombreuses connexions client sur un petit pool de connexions serveur.<br>Pour les applications migrant depuis Oracle \u2014 o\u00f9 le mod\u00e8le de serveur partag\u00e9 d'Oracle ou le pooling de connexions via UCP ou JDBC le g\u00e9raient de mani\u00e8re transparente \u2014 l'ajout de PgBouncer est une \u00e9tape de migration obligatoire, et non une optimisation optionnelle.<\/p>\n\n\n\n<p>Le choix de configuration qui importe le plus est le mode de pooling :<br><strong>Mode de transaction<\/strong> \u2014 une connexion serveur n'est conserv\u00e9e que pour la dur\u00e9e d'une transaction ; efficacit\u00e9 maximale ; interrompt les applications utilisant des fonctionnalit\u00e9s au niveau de la session (instructions pr\u00e9par\u00e9es, verrous consultatifs, SET LOCAL).<br><strong>Mode de session<\/strong> \u2014 une connexion serveur par session client ; efficacit\u00e9 r\u00e9duite ; compatible avec tout ; utilisez cette option si le mode transactionnel provoque des erreurs d'application.<\/p>\n\n\n\n<p>Commencez en mode transaction et passez en mode session uniquement aux sections de trafic qui en ont besoin.<\/p>\n\n\n\n<p><strong>pgpool-II<\/strong> est l'alternative \u2014 elle ajoute l'\u00e9quilibrage de charge des requ\u00eates de lecture sur les r\u00e9pliques en plus de la mise en commun.<br>Utilisez-le uniquement lorsque vous avez besoin de cette fonctionnalit\u00e9 sp\u00e9cifique ; il ajoute une complexit\u00e9 op\u00e9rationnelle significative par rapport \u00e0 PgBouncer.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"monitoring-postgres-exporter-and-pgwatch-2\">Surveillance \u2014 postgres_exporter et pgwatch2<\/h2>\n\n\n\n<p>Aucun outil unique ne couvre toutes les configurations de surveillance, je donne donc deux recommandations en fonction de ce que le client poss\u00e8de d\u00e9j\u00e0.<\/p>\n\n\n\n<p><strong>postgres_exporter<\/strong> \u2014 si le client utilise Prometheus et Grafana, c'est la norme.<br>Il expose les m\u00e9triques PostgreSQL au format Prometheus, s'int\u00e8gre aux tableaux de bord existants et dispose de mod\u00e8les de tableaux de bord Grafana maintenus par la communaut\u00e9, pr\u00eats \u00e0 \u00eatre import\u00e9s.<\/p>\n\n\n\n<p><strong>pgwatch2<\/strong> \u2014 si le client ne dispose pas de Prometheus et souhaite une pile de surveillance autonome, pgwatch2 est livr\u00e9 avec son propre stockage (TimescaleDB ou PostgreSQL) et des tableaux de bord Grafana pr\u00e9-con\u00e7us.<br>R\u00e9duire les frictions de mise en place par rapport \u00e0 la cr\u00e9ation de la pile Prometheus \u00e0 partir de z\u00e9ro.<\/p>\n\n\n\n<p>Ce qu'il faut surveiller quel que soit l'outil que vous utilisez :<br>Connexions actives vs max_connections.<br>D\u00e9lai de r\u00e9plication sur les r\u00e9pliques.<br>Attentes de verrouillage et interblocages.<br>Activit\u00e9 Autovacuum et gonflement de table.<br>Requ\u00eates de longue dur\u00e9e.<br>Taux de succ\u00e8s du cache.<\/p>\n\n\n\n<p><strong>PMM<\/strong> (Percona Monitoring and Management) est l'option full-stack \u2014 surveillance, analyse des requ\u00eates et alertes dans un seul package.<br>Je le recommanderais aux clients qui veulent tout pr\u00e9configur\u00e9 et qui n'ont pas d'infrastructure Prometheus existante.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Lancer PostgreSQL en production pour la premi\u00e8re fois apr\u00e8s une migration Oracle ?<\/strong><br>Je propose une v\u00e9rification de sant\u00e9 \u00e0 prix fixe couvrant la configuration HA, la v\u00e9rification des sauvegardes, le pooling de connexions et la surveillance, livr\u00e9e sous forme de rapport \u00e9crit.<br><a href=\"https:\/\/rootfan.com\/fr\/services\/\">Voir ce que couvre le bilan de sant\u00e9 \u2192<\/a><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"query-analysis-pg-badger-and-pev-2\">Analyse des requ\u00eates \u2014 pgBadger et PEV2<\/h2>\n\n\n\n<p><strong>pgBadger<\/strong> est le premier outil que j'ex\u00e9cute lorsque j'enqu\u00eate sur des plaintes de requ\u00eates lentes apr\u00e8s une migration.<br>Il analyse les fichiers journaux PostgreSQL et g\u00e9n\u00e8re un rapport HTML pr\u00e9sentant les requ\u00eates les plus lentes, les requ\u00eates les plus fr\u00e9quentes, les attentes de verrouillage, l'activit\u00e9 de connexion et les mod\u00e8les d'erreur.<br>Activer <code>d\u00e9claration_min_dur\u00e9e_log<\/code> en <code>postgresql.conf<\/code> pour capturer les requ\u00eates lentes, puis ex\u00e9cuter pgBadger sur les journaux.<br>Le rapport donne une image claire de l'endroit o\u00f9 le temps de requ\u00eate se situe en quelques minutes.<\/p>\n\n\n\n<p><strong>PEV2<\/strong> (Postgres EXPLAIN Visualizer 2) est un outil en ligne qui prend la sortie de <code>EXPLIQUER (ANALYSER, TAMPONS)<\/code> et le rend sous la forme d'un diagramme de plan annot\u00e9 et cod\u00e9 par couleur.<br>Il rend les plans de requ\u00eates lisibles pour les d\u00e9veloppeurs et les clients qui ne pensent pas encore en termes de plan d'ex\u00e9cution PostgreSQL.<br>Utile pour montrer aux clients exactement o\u00f9 une requ\u00eate perd du temps et pourquoi un changement d'index est utile.<\/p>\n\n\n\n<p><strong>HypoPG<\/strong> est-ce qu'une extension PostgreSQL vaut la peine d'\u00eatre connue pour les r\u00e9glages de performance post-migration.<br>Il vous permet de cr\u00e9er des index hypoth\u00e9tiques \u2014 des index qui n'existent que dans la vue du planificateur \u2014 et d'ex\u00e9cuter <code>EXPLIQUER<\/code> contre eux pour tester si un nouvel index aiderait avant de supporter le co\u00fbt de sa construction sur une grande table.<br>Ceci est particuli\u00e8rement utile pendant les 30 \u00e0 90 premiers jours apr\u00e8s la migration, lorsque les performances des requ\u00eates sont ajust\u00e9es par rapport aux charges de travail de production r\u00e9elles.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"extensions-every-production-dba-should-know\">Extensions que tout DBA de production devrait conna\u00eetre<\/h2>\n\n\n\n<p>Ces six extensions couvrent les lacunes les plus courantes que les administrateurs de bases de donn\u00e9es Oracle remarquent apr\u00e8s une migration.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Extension<\/th><th>Remplace ou couvre<\/th><\/tr><\/thead><tbody><tr><td><strong>pg_partman<\/strong><\/td><td>Automatise la maintenance des partitions \u2014 cr\u00e9ez, d\u00e9tachez et supprimez des partitions selon un calendrier ; remplace la gestion manuelle du partitionnement par intervalles d'Oracle<\/td><\/tr><tr><td><strong>PGAudit<\/strong><\/td><td>Enregistrement d'audit d\u00e9taill\u00e9 au niveau des sessions et des objets ; l'\u00e9quivalent le plus proche d'Oracle Unified Auditing ; requis pour les charges de travail de conformit\u00e9<\/td><\/tr><tr><td><strong>pg_cron<\/strong><\/td><td>Ex\u00e9cutez des t\u00e2ches planifi\u00e9es dans PostgreSQL en utilisant la syntaxe cron ; remplace Oracle DBMS_SCHEDULER pour les t\u00e2ches r\u00e9currentes simples<\/td><\/tr><tr><td><strong>pglogical<\/strong><\/td><td>R\u00e9plication logique entre instances PostgreSQL ; la base des strat\u00e9gies de migration sans interruption de service<\/td><\/tr><tr><td><strong>pg_stat_monitor<\/strong><\/td><td>Am\u00e9lioration du \"drop-in\" sur pg_stat_statements ; ajout d'histogrammes, de capture de plans de requ\u00eate et d'informations client<\/td><\/tr><tr><td><strong>plpgsql_check<\/strong><\/td><td>Analyse statique du code PL\/pgSQL ; ex\u00e9cutez-la sur des proc\u00e9dures stock\u00e9es Oracle converties avant le d\u00e9ploiement pour d\u00e9tecter les erreurs qui ne se manifestent qu'\u00e0 l'ex\u00e9cution<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"gui-and-cli-d-beaver-and-pgcli\">Interface graphique et interface en ligne de commande \u2014 DBeaver et pgcli<\/h2>\n\n\n\n<p><strong>DBeaver<\/strong> est l'outil que je recommande \u00e0 tout DBA qui passe d'Oracle \u00e0 PostgreSQL et qui a besoin de travailler simultan\u00e9ment avec les deux bases de donn\u00e9es pendant la migration.<\/p>\n\n\n\n<p>Il est gratuit, open-source et prend en charge Oracle, PostgreSQL, MySQL, SQL Server et la plupart des autres bases de donn\u00e9es \u00e0 partir d'une seule interface.<\/p>\n\n\n\n<p>Lors d'une migration, vous comparez souvent des donn\u00e9es entre Oracle et PostgreSQL en temps r\u00e9el \u2014 DBeaver g\u00e8re cela sans changer d'outil.<\/p>\n\n\n\n<p><strong>pgcli<\/strong> est le remplacement en ligne de commande de psql.<\/p>\n\n\n\n<p>Il ajoute la compl\u00e9tion automatique des noms de tables, des noms de colonnes et des mots-cl\u00e9s SQL, la coloration syntaxique et la sortie format\u00e9e.<\/p>\n\n\n\n<p>Pour les DBA Oracle habitu\u00e9s \u00e0 SQL*Plus avec un bon prompt, pgcli supprime la plupart des frictions des premi\u00e8res semaines sur la ligne de commande.<\/p>\n\n\n\n<p>Pour les \u00e9quipes clientes post-migration : <strong>pgAdmin<\/strong> est l'interface graphique gratuite standard et la plupart des \u00e9quipes la connaissent d\u00e9j\u00e0.<\/p>\n\n\n\n<p><strong>DataGrip<\/strong> (JetBrains) est le choix privil\u00e9gi\u00e9 pour les \u00e9quipes fortement compos\u00e9es de d\u00e9veloppeurs \u2014 fonctionnalit\u00e9s IDE compl\u00e8tes, excellent \u00e9diteur de requ\u00eates, comparaison de sch\u00e9mas.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"one-tool-most-db-as-miss-postgres-checkup\">Un outil que la plupart des DBA ignorent \u2014 postgres-checkup<\/h2>\n\n\n\n<p><strong>postgres-checkup<\/strong> ex\u00e9cute une analyse structur\u00e9e de la sant\u00e9 d'une instance PostgreSQL et produit un rapport d\u00e9taill\u00e9 au format Markdown couvrant le \"bloat\", les index manquants, le risque de \"replication slot\", les probl\u00e8mes d'autovacuum, les probl\u00e8mes de configuration, et plus encore.<\/p>\n\n\n\n<p>Je l'ex\u00e9cute au d\u00e9but de chaque engagement de bilan de sant\u00e9 et \u00e0 la fin de chaque migration avant la validation.<\/p>\n\n\n\n<p>Cela met en \u00e9vidence des probl\u00e8mes qui ne deviendraient visibles qu'en charge de production : des tables avec un \"bloat\" important, des index qui n'ont pas \u00e9t\u00e9 utilis\u00e9s depuis des mois, des slots de r\u00e9plication qui retiennent les WAL et pourraient remplir le disque.<\/p>\n\n\n\n<p>Il faut moins de dix minutes pour l'ex\u00e9cuter et il produit un rapport que vous pouvez remettre directement \u00e0 un client.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Foire aux questions<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list\">\n<div id=\"faq-question-1775168995440\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question\"><strong>Quel est le meilleur outil de surveillance pour PostgreSQL ?<\/strong><\/h3>\n<div class=\"rank-math-answer\">\n\n<p>Pour les \u00e9quipes utilisant Prometheus et Grafana, postgres_exporter avec un tableau de bord pr\u00e9-construit est la norme.<br \/>Pour les \u00e9quipes qui souhaitent une pile de surveillance autonome sans avoir \u00e0 construire une infrastructure Prometheus, pgwatch2 est livr\u00e9 avec un stockage et des tableaux de bord int\u00e9gr\u00e9s.<br \/>Pour les \u00e9quipes qui veulent tout pr\u00e9-emball\u00e9, Percona Monitoring and Management (PMM) est l'option compl\u00e8te.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775168996440\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question\"><strong>Ai-je besoin de PgBouncer si mon application utilise d\u00e9j\u00e0 un pool de connexions ?<\/strong><\/h3>\n<div class=\"rank-math-answer\">\n\n<p>Oui, dans la plupart des cas.<br \/>Les pools de connexions au niveau de l'application r\u00e9duisent le nombre de connexions d'un service d'application donn\u00e9, mais dans les architectures multi-services, chaque service maintient son propre pool.<br \/>Le nombre total de connexions c\u00f4t\u00e9 serveur continue de cro\u00eetre avec le nombre de services et d'instances.<br \/>PgBouncer se situe au niveau de la base de donn\u00e9es et plafonne le total, ind\u00e9pendamment du nombre de pools d'applications en amont.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775168997440\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question\"><strong>Sauvegardes et restauration de PostgreSQL<\/strong><\/h3>\n<div class=\"rank-math-answer\">\n\n<p>pgBackRest est l'\u00e9quivalent le plus proche \u2014 il g\u00e8re les sauvegardes compl\u00e8tes, incr\u00e9mentielles et diff\u00e9rentielles, l'archivage des WAL et la r\u00e9cup\u00e9ration \u00e0 un instant T.<br \/>Pour les environnements cloud, WAL-G est une alternative plus l\u00e9g\u00e8re qui archive les WAL et les sauvegardes directement sur S3, GCS ou Azure Blob Storage.<br \/>Les deux prennent en charge PITR, qui est l'\u00e9quivalent PostgreSQL de la r\u00e9cup\u00e9ration bas\u00e9e sur les SCN d'Oracle.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775168998440\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question\"><strong>Qu'est-ce qui remplace Oracle Enterprise Manager dans PostgreSQL ?<\/strong><\/h3>\n<div class=\"rank-math-answer\">\n\n<p>Il n'y a pas d'\u00e9quivalent unique \u2014 la surveillance de PostgreSQL est assembl\u00e9e \u00e0 partir de composants.<br \/>postgres_exporter alimente Prometheus et les tableaux de bord Grafana en m\u00e9triques ; pgBadger analyse les journaux de requ\u00eates lentes ; pgwatch2 fournit une pile de surveillance autonome.<br \/>Pour une exp\u00e9rience tout-en-un plus compl\u00e8te, Percona Monitoring and Management (PMM) couvre les m\u00e9triques, l'analyse des requ\u00eates et les alertes sur une unique plateforme.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"in-summary\">En r\u00e9sum\u00e9<\/h2>\n\n\n\n<p>Six cat\u00e9gories, six outils \u00e0 ne pas n\u00e9gliger : Patroni pour la haute disponibilit\u00e9 (HA), pgBackRest pour la sauvegarde et la restauration \u00e0 un point dans le temps (PITR), PgBouncer pour la gestion des pools de connexions, postgres_exporter ou pgwatch2 pour la surveillance, pgBadger pour l'analyse des logs, PEV2 pour la visualisation des plans de requ\u00eates.<\/p>\n\n\n\n<p>Les extensions et utilitaires des sections ci-dessus comblent les lacunes que les DBA Oracle remarquent le plus couramment dans les premiers mois apr\u00e8s la migration.<\/p>\n\n\n\n<p>La pile n'est pas compliqu\u00e9e \u2014 elle est simplement assembl\u00e9e diff\u00e9remment de ce \u00e0 quoi les administrateurs de bases de donn\u00e9es Oracle sont habitu\u00e9s.<\/p>\n\n\n\n<p>Chaque composant fait une chose bien, et ensemble ils couvrent tout ce que RMAN, Enterprise Manager, RAC et DBMS_SCHEDULER fournissaient dans une seule licence Oracle.<\/p>\n\n\n\n<p>Si vous configurez PostgreSQL en production pour la premi\u00e8re fois et que vous souhaitez un second avis sur votre pile, <a href=\"https:\/\/rootfan.com\/fr\/contact\/\">prendre contact \u2192<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>TL;DR: PostgreSQL doesn\u2019t ship with a built-in monitoring suite, backup manager, or HA framework \u2014 you assemble the stack yourself from specialised tools.That\u2019s not a weakness: it means you pick what fits your environment instead of paying for features you don\u2019t use.This list covers one best-in-class pick per category, with brief notes on when to &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/rootfan.com\/fr\/postgresql-tools-list\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;PostgreSQL Tools List: The Essential Stack for Production DBAs&nbsp;&raquo;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":6674,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_focus_keyword":"postgresql tools list","rank_math_title":"PostgreSQL Tools List: The Essential Stack for Production DBAs","rank_math_description":"A curated PostgreSQL tools list covering every production layer: HA, backup, connection pooling, monitoring, query analysis, and essential extensions. One best-in-class pick per category.","rank_math_robots":"","rank_math_og_title":"","rank_math_og_description":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[31,126],"tags":[127,137,138],"class_list":["post-6672","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","category-postgresql","tag-architecture","tag-migration","tag-performance-tuning"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/rootfan.com\/wp-content\/uploads\/pexels-photo-25478100.jpeg?fit=867%2C1300&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/posts\/6672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/comments?post=6672"}],"version-history":[{"count":5,"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/posts\/6672\/revisions"}],"predecessor-version":[{"id":6737,"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/posts\/6672\/revisions\/6737"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/media\/6674"}],"wp:attachment":[{"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/media?parent=6672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/categories?post=6672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rootfan.com\/fr\/wp-json\/wp\/v2\/tags?post=6672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}