Utilisation de paramètres sur votre instance de base de données RDS pour PostgreSQL
Dans certains cas, vous pouvez créer une instance de base de données RDS pour PostgreSQL sans spécifier de groupe de paramètres personnalisé. Si tel est le cas, votre instance de base de données est créée à l'aide du groupe de paramètres par défaut de la version de PostgreSQL que vous choisissez. Par exemple, supposons que vous créez une instance de base de données RDS pour PostgreSQL à l’aide de PostgreSQL 13.3. Dans ce cas, l'instance de base de données est créée à l'aide des valeurs du groupe de paramètres pour les versions PostgreSQL 13, default.postgres13.
Vous pouvez créer votre propre groupe de paramètres de base de données avec des paramètres personnalisés. Vous devez le faire si vous souhaitez modifier les paramètres de l’instance de base de données RDS pour PostgreSQL à partir de leurs valeurs par défaut. Pour savoir comment procéder, consultez Groupes de paramètres pour Amazon RDS.
Vous pouvez suivre les paramètres de votre instance de base de données RDS pour PostgreSQL de plusieurs manières différentes. Vous pouvez utiliser l'AWS Management Console, l'AWS CLI ou l'API Amazon RDS. Vous pouvez également interroger les valeurs à partir de la table pg_settings PostgreSQL de votre instance, comme illustré ci-dessous.
SELECT name, setting, boot_val, reset_val, unit FROM pg_settings ORDER BY name;
Pour plus d’informations sur les valeurs renvoyées par cette requête, consultez pg_settings
Soyez particulièrement prudent lorsque vous modifiez les paramètres de max_connections et shared_buffers sur votre instance de base de données RDS pour PostgreSQL. Par exemple, supposons que vous modifiiez les paramètres de max_connections ou shared_buffers et vous utilisez des valeurs trop élevées pour votre charge de travail réelle. Dans ce cas, votre instance de base de données RDS pour PostgreSQL ne démarrera pas. Si cela se produit, une erreur telle que la suivante s'affiche dans le postgres.log.
2018-09-18 21:13:15 UTC::@:[8097]:FATAL: could not map anonymous shared memory: Cannot allocate memory
2018-09-18 21:13:15 UTC::@:[8097]:HINT: This error usually means that PostgreSQL's request for a shared memory segment
exceeded available memory or swap space. To reduce the request size (currently 3514134274048 bytes), reduce
PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.Toutefois, notez que vous ne pouvez modifier aucune valeur des paramètres contenus dans les groupes de paramètres RDS pour PostgreSQL DB par défaut. Pour modifier n'importe quel paramètre, créez d'abord un groupe de paramètres de base de données personnalisé. Modifiez ensuite les paramètres de ce groupe personnalisé, puis appliquez le groupe de paramètres personnalisé à votre instance de base de données RDS pour PostgreSQL. Pour en savoir plus, consultez Groupes de paramètres pour Amazon RDS.
Il existe deux types de paramètres dans RDS pour PostgreSQL.
-
Paramètres statiques : les paramètres statiques exigent que l’instance de base de données RDS pour PostgreSQL soit réinitialisée après une modification afin que la nouvelle valeur puisse prendre effet.
-
Paramètres dynamiques : les paramètres dynamiques ne nécessitent pas de réinitialisation après avoir modifié leurs paramètres.
Note
Si votre instance de base de données RDS pour PostgreSQL utilise votre propre groupe de paramètres de base de données personnalisé, vous pouvez modifier les valeurs des paramètres dynamiques sur l’instance en cours d’exécution. Pour ce faire, utilisez l'AWS Management Console, l'AWS CLI ou l'API Amazon RDS.
Vous pouvez également modifier des valeurs de paramètres, si vous disposez des privilèges nécessaires, en utilisant les commandes ALTER DATABASE, ALTER ROLE et SET.
Liste de paramètres d’instance de base de données RDS pour PostgreSQL
Le tableau suivant répertorie certains (mais pas tous) des paramètres disponibles (mais pas tous) dans une instance de base de données RDS pour PostgreSQL. Pour afficher tous les paramètres disponibles, utilisez la commande AWS CLI describe-db-parameters. Par exemple, pour obtenir la liste de tous les paramètres disponibles dans le groupe de paramètres par défaut pour RDS pour PostgreSQL version 13, procédez comme suit.
aws rds describe-db-parameters --db-parameter-group-name default.postgres13
Vous pouvez également utiliser la console. Choisissez Parameter groups (Groupes de paramètres) dans le menu Amazon RDS, puis choisissez le groupe de paramètres parmi ceux disponibles dans votre Région AWS.
|
Nom du paramètre |
Type d'application |
Description |
|---|---|---|
|
|
Dynamique | Définit le nom de l'application à indiquer dans les statistiques et les journaux. |
|
|
Dynamique | Définit la commande shell qui sera appelée pour archiver un fichier WAL. |
|
|
Dynamique | Autorise l'entrée d'éléments NULL dans les tableaux. |
|
|
Dynamique | Définit le délai maximum autorisé pour procéder à l'authentification du client. |
|
|
Dynamique | Démarre le sous-processus autovacuum. |
|
|
Dynamique | Nombre de tuples insérés, mis à jour ou supprimés avant analyse en tant que partie de reltuples. |
|
|
Dynamique | Nombre minimum de tuples insérés, mis à jour ou supprimés avant analyse. |
|
|
Statique | Âge auquel lancer le processus autovacuum sur une table pour empêcher le bouclage de l’ID de transaction. |
|
|
Dynamique | Temps de repos entre les exécutions autovacuum. |
|
|
Statique | Définit le nombre maximum de processus autovacuum qui peuvent être exécutés simultanément. |
|
|
Dynamique | Valeur du coût de retard du processus vacuum en millisecondes, pour le processus autovacuum. |
|
|
Dynamique | Coût cumulé qui provoque l'endormissement du processus vacuum, pour le processus autovacuum. |
|
|
Dynamique | Nombre de tuples mis à jour ou supprimés avant le processus vacuum en tant que partie de reltuples. |
|
|
Dynamique | Nombre de tuples mis à jour ou supprimés avant le processus vacuum. |
|
|
Dynamique | Définit si une barre oblique inverse (\) peut être utilisée dans les littéraux de chaîne. |
|
|
Dynamique | Délai d'inactivité entre les tours d'activité du processus d'écriture en arrière-plan. |
|
|
Dynamique | Nombre maximum de pages récemment utilisées qui peuvent être vidées à chaque tour par le processus d'écriture en tâche de fond. |
|
|
Dynamique | Multiple de l'utilisation moyenne de tampons à libérer par tour. |
|
|
Dynamique | Configure le format de sortie pour les valeurs de type octets. |
|
|
Dynamique | Vérifie les corps des fonctions pendant la fonction CREATE FUNCTION. |
|
|
Dynamique | Temps nécessaire pour vider les tampons sales au moment de la vérification, sous la forme d'une fraction de temps entre deux points de vérification. |
|
|
Dynamique | Définit la distance maximale dans les segments de journaux entre deux points de vérification automatique de journal WAL. |
|
|
Dynamique | Définit le temps maximum entre deux points de vérification automatique des WAL. |
|
|
Dynamique | Active les avertissements si des segments de points de vérification sont remplis à une fréquence supérieure à ce paramètre. |
|
|
Dynamique | Définit l'intervalle de temps entre les vérifications de déconnexion lors de l'exécution des requêtes. |
|
|
Dynamique | Définit l'encodage du jeu de caractères du client. |
|
|
Dynamique | Définit les niveaux des messages envoyés au client. |
|
|
Dynamique | Définit la durée, en micro-secondes, entre le déclenchement de la sonde transaction-commit et le vidage de WAL vers le disque. |
|
|
Dynamique | Définit le nombre minimum de transactions ouvertes simultanément avant d'atteindre le délai commit_delay. |
|
|
Dynamique | Autorise le planificateur à utiliser des contraintes pour optimiser les requêtes. |
|
|
Dynamique | Définit l'estimation faite par le planificateur du coût de traitement de chaque entrée d'index pendant la vérification d'un index. |
|
|
Dynamique | Définit l'estimation faite par le planificateur du coût de traitement de chaque opérateur ou appel de fonction. |
|
|
Dynamique | Définit l'estimation faite par le planificateur du coût de traitement de chaque ligne. |
|
|
Dynamique | Définit l'estimation faite par le planificateur de la fraction des lignes d'un curseur qui sera récupérée. |
|
|
Dynamique | Définit le format d'affichage des valeurs de type date et heure. |
|
|
Dynamique | Définit le délai d'attente au niveau d'un verrou avant blocage. |
|
|
Dynamique | Indente les affichages des arborescence d'analyse et de planification. |
|
|
Dynamique | Enregistre l'arborescence d'analyse de chaque requête. |
|
|
Dynamique | Enregistre le plan d'exécution de chaque requête. |
|
|
Dynamique | Enregistre l'arbre d'interprétation réécrit de chaque requête. |
|
|
Dynamique | Définit la cible des statistiques par défaut. |
|
|
Dynamique | Définit l'espace de table par défaut dans lequel créer des tables et des index. |
|
|
Dynamique | Définit le statut reportable des nouvelles transactions. |
|
|
Dynamique | Définit le niveau d’isolement de transaction de chaque nouvelle transaction. |
|
|
Dynamique | Définit le statut en lecture seule des nouvelles transactions. |
|
|
Dynamique | Crée de nouvelles tables avec des ID d'objets (OID) par défaut. |
|
|
Dynamique | Définit l'estimation faite par le planificateur de la taille du cache du disque. |
|
|
Dynamique | Nombre de demandes simultanées pouvant être traitées de manière efficace par le sous-système du disque. |
|
|
Dynamique | Autorise l'utilisation de plans de parcours de bitmap par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de plans d'agrégation hachée par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de plans de jointures de hachage par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de plans de parcours d'index par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de la matérialisation par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de plans de jointures de fusion par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de plans de jointures de boucles imbriquées par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de plans de parcours séquentiels par le planificateur. |
|
|
Dynamique | Autorise l'utilisation des étapes de tri explicite par le planificateur. |
|
|
Dynamique | Autorise l'utilisation de plans de parcours de TID par le planificateur. |
|
|
Dynamique | Avertit sur l'utilisation des barres obliques inverses (\) dans des littéraux de chaîne ordinaires. |
|
|
Dynamique | Définit le nombre de chiffres affichés pour les valeurs à virgule flottante. |
|
|
Dynamique | Définit la taille FROM-list au-delà de laquelle les sous-requêtes ne sont pas regroupées. |
|
|
Dynamique | Force la synchronisation des mises à jour sur le disque. |
|
|
Dynamique | Ecrit les pages complètes dans les WAL lors de la première modification après un point de vérification. |
|
|
Dynamique | Active l'optimisation génétique des requêtes. |
|
|
Dynamique | geqo_effort est utilisé pour définir la valeur par défaut pour les autres paramètres GEQO. |
|
|
Dynamique | GEQO : nombre d'itérations de l'algorithme. |
|
|
Dynamique | GEQO : nombre d'individus au sein d'une population. |
|
|
Dynamique | GEQO : valeur initiale pour la sélection des chemins au hasard. |
|
|
Dynamique | GEQO : pression de sélectivité au sein de la population. |
|
|
Dynamique | Définit le seuil d'éléments FROM au-delà duquel GEQO est utilisé. |
|
|
Dynamique | Définit le résultat maximum autorisé pour la recherche exacte par GIN. |
|
|
Dynamique | Détermine si une instance de secours envoie des messages de commentaire aux instances principales ou de veille en amont. |
|
|
Dynamique | Définit le format d'affichage des valeurs de type intervalle. |
|
|
Dynamique | Définit la taille FROM-list au-delà de laquelle les constructions JOIN ne sont pas mises à plat. |
|
|
Dynamique | Définit la langue d'affichage des messages. |
|
|
Dynamique | Définit la locale à utiliser pour le formatage des montants monétaires. |
|
|
Dynamique | Définit la locale à utiliser pour le formatage des nombres. |
|
|
Dynamique | Définit la locale à utiliser pour le formatage des valeurs de date et d'heure. |
|
|
Dynamique | Définit la durée minimum d'exécution au-delà de laquelle les actions autovacuum seront enregistrées. |
|
|
Dynamique | Enregistre chaque point de vérification. |
|
|
Dynamique | Enregistre toutes les connexions réussies. |
|
|
Dynamique | Enregistre la fin d'une session, y compris sa durée. |
|
|
Dynamique | Enregistre la durée de chaque instruction SQL terminée. |
|
|
Dynamique | Définit la quantité de détails dans les messages enregistrés. |
|
|
Dynamique | Ecrit les statistiques de performance de l'exécuteur dans le journal du serveur. |
|
|
Dynamique | Définit le modèle de nom de fichier pour les fichiers journaux. |
|
|
Dynamique | Définit les autorisations de fichier pour les fichiers journaux. La valeur par défaut est 0644. |
|
|
Dynamique | Enregistre le nom de l'hôte dans les journaux de connexion. À partir de PostgreSQL 12 et des versions ultérieures, ce paramètre est « désactivé » par défaut. Lorsqu'il est activé, la connexion utilise la recherche inversée DNS pour obtenir le nom d'hôte qui est capturé dans les journaux de connexion. Si vous activez ce paramètre, vous devez surveiller son impact sur le temps nécessaire à l'établissement des connexions. |
|
|
Dynamique | Contrôle les informations préfixées à chaque ligne de journal. |
|
|
Dynamique | Enregistre les longs temps d'attente pour l'acquisition d'un verrou. |
|
|
Dynamique | Définit la durée minimum d'exécution au-delà de laquelle les instructions seront enregistrées. |
|
|
Dynamique | Déclenche l'enregistrement de toutes les instructions générant une erreur à ce niveau ou à un niveau supérieur. |
|
|
Dynamique | Définit les niveaux des messages qui sont enregistrés. |
|
|
Dynamique | Ecrit les statistiques de performance de l'analyseur dans le journal du serveur. |
|
|
Dynamique | Ecrit les statistiques de performance du planificateur dans le journal du serveur. |
|
|
Dynamique | Déclenchement de la rotation de fichier journal automatique au-delà d'un délai de N minutes. |
|
|
Dynamique | Déclenchement de la rotation de fichier journal automatique au-delà de N kilo-octets. |
|
|
Dynamique | Définit le type d'instructions enregistrées. |
|
|
Dynamique | Ecrit les statistiques de performance cumulées dans le journal du serveur. |
|
|
Dynamique | Enregistre l'utilisation des fichiers temporaires dont la taille est supérieure à cette taille en kilo-octets. |
|
|
Dynamique | Définit le fuseau horaire à utiliser dans les messages de journaux. |
|
|
Dynamique | Tronquez les fichiers journaux existants du même nom pendant la rotation des journaux. |
|
|
Statique | Démarrez un sous-processus pour capturer la sortie stderr et/ou csvlogs dans des fichiers journaux. |
|
|
Dynamique | Définit la quantité maximum de mémoire que peuvent utiliser les opérations de maintenance. |
|
|
Statique | Définit le nombre maximum de connexions simultanées. |
|
|
Statique | Définit le nombre maximum de fichiers ouverts simultanément pour chaque processus serveur. |
|
|
Statique | Définit le nombre maximum de verrous par transaction. |
|
|
Statique | Définit le nombre maximum de verrous de prédicat par transaction. |
|
|
Statique | Définit le nombre maximum de transactions préparées simultanément. |
|
|
Dynamique | Définit la profondeur maximum de la pile, en kilo-octets. |
|
|
Dynamique | Définit le délai maximum avant l'annulation des requêtes lorsqu'un serveur hot standby traite des données WAL archivées. |
|
|
Dynamique | Définit le délai maximum avant l'annulation des requêtes lorsqu'un serveur hot standby traite des données WAL diffusées. |
max_wal_size |
Dynamique | Définit la taille (en Mo) de journal WAL qui déclenche un point de vérification.
Utilisez la commande suivante sur votre instance de base de données Amazon RDS pour PostgreSQL pour voir sa valeur actuelle :
|
min_wal_size |
Dynamique | Définit la taille minimale à laquelle réduire le journal WAL. Pour PostgreSQL version 9.6 ou antérieure, la taille min_wal_size est exprimée en unités de 16 Mo. Pour PostgreSQL version 10 ou supérieure, la taille min_wal_size est exprimée en unités de 1 Mo. |
|
|
Dynamique | Ajoute des guillemets (") à tous les identifiants lors de la génération de fragments SQL. |
|
|
Dynamique | Définit l'estimation faite par le planificateur du coût d'une page de disque extraite de façon non séquentielle. Ce paramètre n'a aucune valeur sauf si la gestion du plan de requête (QPM) est activée. Lorsque QPM est activée, la valeur par défaut de ce paramètre est 4. |
rds.adaptive_autovacuum |
Dynamique | Règle automatiquement les paramètres d'autovacuum chaque fois que les seuils d'ID de transaction sont dépassés. |
rds.force_ssl |
Dynamique | Nécessite l'utilisation de connexions SSL. La valeur par défaut est définie sur 1 (activé) pour RDS pour PostgreSQL version 15. Toutes les autres versions majeures 14 et antérieures de RDS pour PostgreSQL ont la valeur par défaut définie sur 0 (désactivé). |
|
|
Statique | Permet d’écrire des fichiers de déversement logiques sur le volume local. |
|
|
Dynamique | Définit la rétention des journaux de telle manière qu'Amazon RDS supprime les journaux PostgreSQL antérieurs à n minutes. |
rds.rds_superuser_reserved_connections |
Statique | Définit le nombre d'emplacements de connexion réservés pour rds_superusers. Ce paramètre est uniquement disponible dans les versions 15 et antérieures. Pour plus d’informations, consultez la documentation de PostgreSQL sur reserved_connections |
|
Dynamique |
Lorsque vous définissez ce paramètre sur NoteL’activation de ce paramètre peut augmenter les IOPS de votre instance de base de données en raison de la journalisation WAL supplémentaire. |
rds.restrict_password_commands |
Statique | Limite la gestion des mots de passe aux utilisateurs auxquels le rôle rds_password a été affecté. Pour la restriction par mot de passe, définissez ce paramètre sur 1. La valeur par défaut est 0. |
|
|
Dynamique | Définit l'ordre de recherche des schémas pour les noms pour lesquels le schéma n'est pas précisé. |
|
|
Dynamique | Définit l'estimation faite par le planificateur du coût d'une page de disque extraite de façon séquentielle. |
|
|
Dynamique | Définit le comportement des sessions concernant les déclencheurs et les règles de réécriture. |
|
|
Statique | Définit le nombre de tampons de mémoire partagée utilisés par le serveur. |
|
|
Statique | Répertorie les bibliothèques partagées à précharger dans l’instance de base de données RDS pour PostgreSQL. Les valeurs prises en charge incluent auto_explain, orafce, pgaudit, pglogical, pg_bigm, pg_cron, pg_hint_plan, pg_prewarm, pg_similarity, pg_stat_statements, pg_tle, pg_transport, plprofiler et plrust. |
|
|
Dynamique | Active les connexions SSL. |
|
|
Dynamique | Entraîne l'ajout par défaut de sous-tables dans plusieurs commandes. |
|
|
Dynamique | Définit la quantité de trafic à envoyer et recevoir avant de renégocier les clés de chiffrement. |
|
|
Dynamique | Entraîne les chaînes ... à traiter littéralement les barres obliques inverses. |
|
|
Dynamique | Définit la durée maximum de toute instruction. |
|
|
Dynamique | Active les analyses séquentielles synchronisées. |
|
|
Dynamique | Définit le niveau de synchronisation des transactions actuelles. |
|
|
Dynamique | Nombre maximum de paquets TCP keepalive. |
|
|
Dynamique | Délai entre les émissions de paquets TCP keepalive. |
|
|
Dynamique | Délai entre les envois de paquets TCP keepalive. |
|
|
Dynamique | Définit le nombre maximum de tampons temporaires utilisés par chaque session. |
temp_file_limit |
Dynamique | Définit la taille maximale en Ko que peuvent atteindre les fichiers temporaires. |
|
|
Dynamique | Définit l'espace de table à utiliser pour les tables et fichiers de tri temporaires. |
|
|
Dynamique | Définit le fuseau horaire pour l'affichage et l'interprétation de la date et de l'heure. L'Internet Assigned Numbers Authority (IANA) publie de nouveaux fuseaux horaires sur https://www.iana.org/time-zones |
|
|
Dynamique | Collecte des informations sur les commandes en cours d'exécution. |
|
|
Statique | Définit la taille réservée pour pg_stat_activity.current_query, en octets. |
|
|
Dynamique | Active la collecte de statistiques sur l'activité de la base de données. |
|
|
Dynamique | Active la collecte de statistiques au niveau de la fonction sur l'activité de la base de données. |
|
|
Dynamique | Active la collecte de statistiques de durée sur l'activité I/O de la base de données. |
|
|
Dynamique | Indique si une transaction sérialisable en lecture seule doit être différée jusqu'à ce qu'elle puisse être démarrée sans échec de sérialisation possible. |
|
|
Dynamique | Définit le niveau d’isolement des transactions actuelles. |
|
|
Dynamique | Définit le statut en lecture seule des transactions actuelles. |
|
|
Dynamique | Traite l'expression =NULL en tant que IS NULL. |
|
|
Dynamique | Met à jour le titre du processus pour indiquer la commande SQL active. |
|
|
Dynamique | Valeur du coût de délai du processus vacuum en millisecondes. |
|
|
Dynamique | Coût cumulé qui provoque l'endormissement du processus vacuum. |
|
|
Dynamique | Coût du processus vacuum pour une page salie par le processus vacuum. |
|
|
Dynamique | Coût du processus vacuum pour une page trouvée dans le cache des tampons. |
|
|
Dynamique | Coût du processus vacuum pour une page non trouvée dans le cache des tampons. |
|
|
Dynamique | Nombre de transactions pendant lesquelles le processus vacuum et le nettoyage hot seront reportés à plus tard, le cas échéant. |
|
|
Dynamique | Âge limite auquel le processus vacuum doit figer une ligne de tableau. |
|
|
Dynamique | Âge auquel le processus vacuum effectue une analyse complète de la table pour figer des lignes. |
|
|
Statique | Définit le nombre de tampons de page de disque dans la mémoire partagée pour les WAL. |
|
|
Dynamique | Délai d'inactivité de l'enregistreur des WAL entre les actions de vidage WAL. |
|
|
Dynamique | Définit la quantité maximum de mémoire que peuvent utiliser les espaces de travail des requêtes. |
|
|
Dynamique | Définit la façon dont les valeurs binaires doivent être codées en XML. |
|
|
Dynamique | Définit si des données XML dans des opérations d'analyse ou de sérialisation implicites doivent être considérées comme des documents ou des fragments de contenu. |
Amazon RDS utilise les unités PostgreSQL par défaut pour tous les paramètres. Le tableau suivant présente l'unité par défaut PostgreSQL pour chaque paramètre.
|
Nom du paramètre |
Unité |
|---|---|
|
s |
|
s |
|
s |
|
ms |
|
ms |
|
s |
|
s |
|
ms |
|
8 Ko |
|
ms |
|
ms |
|
ms |
|
minutes |
|
Ko |
|
Ko |
|
Ko |
|
Ko |
|
ms |
|
ms |
|
s |
|
s |
|
8 Ko |
|
8 Ko |
|
ms |
|
Ko |
|
s |
|
s |
|
Ko |
|
Ko |
|
8 Ko |
|
ms |
|
8 Ko |
|
ms |
|
B |
|
ms |
|
ms |
|
s |