Procédures PostgreSQL
- Changer de segment WALWAL et checkpoint
- Exécuter un CHECKPOINT manuelWAL et checkpoint
- Afficher la taille du WAL et le LSN courantWAL et checkpoint
- Afficher le retard d'archivage (WAL pas encore archivé)WAL et checkpoint
- Ajouter un nouveau tablespaceStockage
- Déplacer une table vers un autre tablespaceStockage
- Déplacer un index vers un autre tablespaceStockage
- Interroger la taille de la base et des tablesStockage
- Estimer le bloat d'une tableStockage
- VACUUM ANALYZE d'une table donnéeMaintenance
- Exécuter un VACUUM FREEZE agressifMaintenance
- Reconstruire un index sans verrouiller (REINDEX CONCURRENTLY)Maintenance
- Régler autovacuum pour une table donnéeMaintenance
- Augmenter la cible de statistiques d'une colonneMaintenance
- Modifier un paramètre et recharger (ALTER SYSTEM)Paramètres
- Modifier un paramètre pour la session (SET)Paramètres
- Afficher la valeur courante d'un paramètreParamètres
- Créer une réplique physique (pg_basebackup)Réplication
- Promouvoir une réplique en primaireRéplication
- Afficher le retard de réplicationRéplication
- Créer et supprimer un replication slotRéplication
- Mettre en place une publication et une souscription de réplication logiqueRéplication
- Terminer un backend (pg_terminate_backend)Sessions
- Annuler une requête en cours (pg_cancel_backend)Sessions
- Afficher les requêtes actives et bloquantesSessions
- Ajouter une extensionExtensions
- Lister les extensions installéesExtensions
- Afficher l'état, la topologie et l'historique du cluster PatroniPatroni
- Effectuer un switchover planifié avec PatroniPatroni
- Effectuer un failover manuel avec PatroniPatroni
- Reconstruire une réplique défaillante avec Patroni (reinit)Patroni
- Modifier les paramètres du cluster dans Patroni (edit-config) et appliquer les redémarrages en attentePatroni
- Mettre Patroni en mode maintenance et en sortir (pause/resume)Patroni
- Vérifier la santé du DCS Patroni (etcd/Consul) et de l'API RESTPatroni
- Configurer l'archivage WAL pour pgBackRest (archive-push/archive-get)Sauvegarde et PITR
- Créer la stanza pgBackRest et vérifier l'archivage (stanza-create/check)Sauvegarde et PITR
- Effectuer des sauvegardes full, différentielles et incrémentales avec pgBackRestSauvegarde et PITR
- Afficher le catalogue de sauvegardes pgBackRest et la plage d'archives WAL (info)Sauvegarde et PITR
- Restaurer la dernière sauvegarde avec pgBackRestSauvegarde et PITR
- Restaurer à un instant donné avec pgBackRest (PITR, --type=time)Sauvegarde et PITR
- Reconstruire rapidement une standby avec la restauration delta de pgBackRestSauvegarde et PITR
- Configurer la rétention pgBackRest et exécuter expireSauvegarde et PITR
- Configurer manuellement une standby (standby.signal + primary_conninfo)Réplication
- Surveiller le retard de réception et de replay du WAL sur la standby (pg_stat_wal_receiver)Réplication
- Réintégrer l'ancienne primaire comme réplique après un failover avec pg_rewindRéplication
- Configurer la réplication synchrone par quorum (ANY) ou par priorité (FIRST)Réplication
- Surveiller le WAL retenu par les replication slots et supprimer sans risque un slot abandonnéRéplication
- Limiter le WAL que les slots peuvent retenir (max_slot_wal_keep_size)Réplication
- Ajouter une table à une publication et rafraîchir la souscription (REFRESH PUBLICATION)Réplication logique
- Surveiller la réplication logique (pg_stat_subscription, erreurs d'apply, retard des slots)Réplication logique
- Résoudre un conflit de réplication logique (disable_on_error, SKIP)Réplication logique
- Synchroniser les valeurs des séquences vers le subscriber en réplication logiqueRéplication logique
- Supprimer une souscription et nettoyer un slot logique orphelin sur le publisherRéplication logique
- Mise à niveau majeure avec pg_upgrade --link (runbook de bout en bout)Mise à niveau
- Mise à niveau majeure quasi sans interruption par réplication logiqueMise à niveau
- Afficher les pools, statistiques et connexions PgBouncer (SHOW POOLS/STATS/CLIENTS/SERVERS)PgBouncer
- Retenir les connexions pendant une maintenance avec PgBouncer (PAUSE/RESUME) et recharger la configuration (RELOAD)PgBouncer
- Choix du pool_mode PgBouncer et dimensionnement de basePgBouncer
- Trouver les requêtes les plus coûteuses (pg_stat_statements : temps total et moyen)Performances
- Trouver les requêtes à l'origine des E/S disque, fichiers temporaires et WAL (pg_stat_statements)Performances
- Réinitialiser les statistiques pg_stat_statements (toutes ou une seule requête)Performances
- Journaliser les plans d'exécution des requêtes lentes avec auto_explainPerformances
- Lire un plan en profondeur avec EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL)Performances
- Détecter les régressions de plan par queryid (comparaison de snapshots pg_stat_statements)Performances
- Vérifier la capacité de requêtes parallèles et l'utilisation actuelle des workersPerformances
- Mesurer l'impact de la compilation JIT sur le temps des requêtesPerformances
- Construire l'arbre de blocage (trouver le bloqueur racine)Sessions
- Examiner en détail les attentes de verrous par objet et mode de verrou (pg_locks)Sessions
- Trouver les transactions longues et 'idle in transaction'Sessions
- Terminer en masse, de façon contrôlée, les longues sessions 'idle in transaction'Sessions
- Définir statement_timeout / lock_timeout par rôle et par baseSessions
- Appliquer un DDL en toute sécurité avec lock_timeout et des tentatives répétées (éviter les files de verrous)Sessions
- Mesurer l'utilisation des connexions par rapport à max_connectionsSessions
- Suivre la progression des opérations autovacuum/VACUUM en coursMaintenance
- Mesurer le risque de wraparound des identifiants de transaction (âge XID par base et par table)Maintenance
- Trouver ce qui retient l'horizon xmin et empêche VACUUM de supprimer les dead tuplesMaintenance
- Mesurer le bloat des tables et index avec pgstattupleMaintenance
- Réorganiser une table gonflée sans verrous longs (pg_repack)Maintenance
- Trouver et nettoyer les index INVALIDMaintenance
- Créer des statistiques étendues pour des colonnes corrélées (CREATE STATISTICS)Maintenance
- Trouver les tables aux statistiques obsolètes (stratégie ANALYZE)Maintenance
- Vérifier la couverture de la visibility map et l'efficacité des Index Only ScanMaintenance
- Créer une table partitionnée par range mensuel (générer les partitions dans une boucle)Partitionnement
- Attacher une table préparée comme partition avec un verrou court (ATTACH PARTITION)Partitionnement
- Détacher une ancienne partition sans bloquer le trafic (DETACH CONCURRENTLY)Partitionnement
- Piège de la partition par défaut : une nouvelle partition échoue avec 'would be violated by some row'Partitionnement
- Vérifier que le partition pruning fonctionne (à la planification et à l'exécution)Partitionnement
- Automatiser la création et la rétention des partitions avec pg_partmanPartitionnement
- Construire une hiérarchie de rôles à moindre privilège (GRANT + ALTER DEFAULT PRIVILEGES)Sécurité
- Mettre en place l'isolation des tenants avec la row-level securitySécurité
- Valider l'ordre des règles de pg_hba.conf et recharger sans risqueSécurité
- Activer SSL/TLS et vérifier les connexions chiffrées (pg_stat_ssl)Sécurité
- Migrer des mots de passe md5 vers scram-sha-256Sécurité
- Conserver des journaux d'audit par rôle et par objet avec pgauditSécurité
- Revoir les réglages mémoire (shared_buffers, work_mem, maintenance_work_mem)Paramètres
- Afficher les paramètres en attente de redémarrage et les erreurs des fichiers de configurationParamètres
- Revoir le comportement des checkpoints (PG17+ pg_stat_checkpointer, PG16 et antérieur pg_stat_bgwriter)Paramètres
- Lister la taille des tables ventilée en heap / index / TOAST, et les plus gros indexStockage
- Trouver les extensions ayant des mises à jour en attente et les mettre à jourExtensions
- Analyser l'origine des E/S avec pg_stat_io (type de backend, objet, contexte)Extensions