Configurer des indicateurs de base de données

Cette page explique comment configurer des indicateurs de base de données pour Cloud SQL et répertorie ceux que vous pouvez définir pour votre instance. Les indicateurs de base de données sont utilisés pour de nombreuses opérations, y compris l'ajustement des paramètres et des options PostgreSQL, ainsi que la configuration et le réglage d'une instance.

Parfois, définir un indicateur implique d'en définir un autre, afin d'activer complètement la fonctionnalité souhaitée.

Lorsque vous définissez, supprimez ou modifiez un indicateur pour une instance de base de données, il peut être nécessaire de la redémarrer. La nouvelle valeur de l'indicateur est ensuite conservée pour l'instance, jusqu'à ce que vous la supprimiez. Si l'instance est la source d'une instance dupliquée, l'instance dupliquée redémarre également pour s'aligner sur la configuration actuelle de l'instance.

Configurer des indicateurs de base de données

Définir un indicateur de base de données

Console

  1. Dans Google Cloud Console, créez un projet Cloud Console ou ouvrez un projet existant en sélectionnant son nom.
  2. Ouvrez l'instance et cliquez sur Modifier.
  3. Faites défiler jusqu'à la section Indicateurs.
  4. Pour définir un nouvel indicateur sur l'instance, cliquez sur Ajouter un élément, choisissez-le dans le menu déroulant et définissez sa valeur.
  5. Cliquez sur Enregistrer pour enregistrer les modifications.
  6. Confirmez les modifications effectuées dans la section Indicateurs à partir de la page de présentation.

gcloud

Modifiez l'instance :

gcloud sql instances patch [INSTANCE_NAME] --database-flags [FLAG1=VALUE1,FLAG2=VALUE2]

Cette commande va écraser toutes les options de base de données précédemment définies. Pour les conserver et en ajouter d'autres, vous devez inclure les valeurs de toutes les options que vous souhaitez définir sur l'instance. Toute option non spécifiquement incluse est définie sur sa valeur par défaut. Pour les options sans valeur, spécifiez le nom de l'option suivi d'un signe égal ("=").

REST v1beta4

Pour définir une option pour une base de données existante, procédez comme suit :

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID du projet.
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Si des indicateurs sont déjà configurés pour la base de données, modifiez la commande précédente pour les inclure. La commande PATCH remplace les indicateurs existants par ceux spécifiés dans la requête.

Réinitialiser les valeurs par défaut des indicateurs

Console

  1. Dans Google Cloud Console, créez un projet Cloud Console ou ouvrez un projet existant en sélectionnant son nom.
  2. Ouvrez l'instance et cliquez sur Modifier.
  3. Ouvrez la section Indicateurs de base de données.
  4. Cliquez sur le symbole X à côté de tous les indicateurs affichés.
  5. Cliquez sur Enregistrer pour enregistrer les modifications.

gcloud

Réinitialiser les valeurs par défaut des indicateurs d'une instance :

gcloud sql instances patch [INSTANCE_NAME] --clear-database-flags

Vous êtes invité à confirmer le redémarrage de l'instance.

REST v1beta4

Pour effacer toutes les options sur une instance existante :

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID du projet.
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags": []
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Afficher les valeurs actuelles des indicateurs de base de données

Pour afficher toutes les valeurs actuelles des paramètres PostgreSQL, connectez-vous à votre instance avec le client psql et entrez l'instruction suivante :

 SELECT name, setting FROM pg_settings;

Notez que vous ne pouvez modifier la valeur que des indicateurs compatibles (répertoriés ci-dessous).

Déterminer les indicateurs de base de données définis pour une instance

Pour savoir quels indicateurs ont été définis pour une instance Cloud SQL :

Console

  1. Dans Google Cloud Console, créez un projet Cloud Console ou ouvrez un projet existant en sélectionnant son nom.
  2. Sélectionnez l'instance pour ouvrir la page Présentation de l'instance.

    Les indicateurs de base de données définis sont répertoriés dans la section Indicateurs de base de données.

gcloud

Afficher l'état de l'instance :

gcloud sql instances describe [INSTANCE_NAME]

Dans le résultat, les indicateurs de base de données sont répertoriés sous la section settings dans la collection databaseFlags. Pour en savoir plus sur la représentation des options dans le résultat, consultez la page Représentation des ressources d'instances.

REST v1beta4

Pour répertorier les options configurées pour une instance :

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID du projet.
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Dans le résultat, recherchez le champ databaseFlags.

Indicateurs compatibles

Pour un indicateur donné, Cloud SQL peut être compatible avec une plage différente de celle du paramètre ou de l'option PostgreSQL correspondants.

A | C | D | E | F | G | H | I | J | L | M | O | P | R | S | T | V | W

Option Cloud SQL Valeurs
acceptables et remarques pour le type
Redémarrage
nécessaire ?
En version bêta ?
autovacuum boolean
on | off
Non Non
autovacuum_analyze_scale_factor float
0 ... 100
Non Non
autovacuum_analyze_threshold integer
0 ... 2147483647
Non Non
autovacuum_freeze_max_age integer
100000 ... 2000000000
Oui Oui
autovacuum_max_workers integer
1 ... varies (see note)

Oui Non
autovacuum_multixact_freeze_max_age integer
10000 ... 2000000000
Oui Oui
autovacuum_naptime integer
1 ... 2147483 s
Non Non
autovacuum_vacuum_cost_delay integer
0 ... 100 ms, ou -1 pour utiliser la valeur vacuum_cost_delay
Non Non
autovacuum_vacuum_cost_limit integer
0 ... 10000, ou -1 pour utiliser la valeur vacuum_cost_limit
Non Non
autovacuum_vacuum_scale_factor float
0 ... 100
Non Non
autovacuum_vacuum_threshold integer
0 ... 2147483647
Non Non
autovacuum_work_mem integer
0 ... 2147483647 Ko, ou -1 pour utiliser la valeur maintenance_work_mem
Non Oui
checkpoint_completion_target float
0.0 ... 1.0
Non Non
checkpoint_timeout integer
30 ... 86400 s
Non Oui
checkpoint_warning integer
0 ... 2147483647 s
Non Non
cloudsql.enable_pgaudit boolean
on | off
Oui Oui
cloudsql.iam_authentication boolean
on | off
par défaut : off
Oui Oui
commit_delay integer
0 ... 100000
Non Non
commit_siblings integer
0 ... 1000
Non Non
constraint_exclusion enumeration
partition | on | off
Non Non
cpu_index_tuple_cost float
0.0 ... inf
Non Non
cpu_operator_cost float
0.0 ... inf
Non Non
cpu_tuple_cost float
0.0 ... inf
Non Non
curseur_tuple_fraction float
0.0 ... 1.0
Non Non
deadlock_timeout integer
1 ... 2147483647 ms
Non Non
default_statistics_target integer
1 ... 10000
Non Non
default_tablespace string Non Non
default_transaction_deferrable boolean
on | off
Non Non
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
Non Non
enable_bitmapscan boolean
on | off
Non Non
enable_hashagg boolean
on | off
Non Non
enable_hashjoin boolean
on | off
Non Non
enable_indexonlyscan boolean
on | off
Non Non
enable_indexscan boolean
on | off
Non Non
enable_material boolean
on | off
Non Non
enable_mergejoin boolean
on | off
Non Non
enable_nestloop boolean
on | off
Non Non
enable_seqscan boolean
on | off
Non Non
enable_sort boolean
on | off
Non Non
enable_tidscan boolean
on | off
Non Non
force_parallel_mode enumeration
off | on | regress
Non Non
from_collapse_limit integer
1 ... 2147483647
Non Non
geqo boolean
on | off
Non Non
geqo_effort integer
1 ... 10
Non Non
geqo_generations integer
0 ... 2147483647
Non Non
geqo_pool_size integer
0 ... 2147483647
Non Non
geqo_seed float
0.0 ... 1.0
Non Non
geqo_selection_bias float
1.5 ... 2.0
Non Non
geqo_threshold integer
2 ... 2147483647
Non Non
gin_fuzzy_search_limit integer
0 ... 2147483647
Non Non
gin_pending_list_limit integer
64 ... 2147483647 Ko
Non Non
hot_standby_feedback boolean
on | off
Non Non
idle_in_transaction_session_timeout integer
0 ... 2147483647 ms
Non Non
join_collapse_limit integer
1 ... 2147483647
Non Non
lock_timeout integer
0 ... 2147483647 ms
Non Non
log_autovacuum_min_duration integer
0 ... 2147483647 ms, ou -1 pour désactiver
Non Non
log_checkpoints boolean
on | off
Non Non
log_connections boolean
on | off
Non Non
log_disconnections boolean
on | off
Non Non
log_duration boolean
on | off
Non Non
log_error_verbosity enumeration
terse | default | verbose
Non Non
log_executor_stats boolean
on | off
Non Non
log_hostname boolean
on | off
Non Non
log_lock_waits boolean
on | off
Non Non
log_min_duration_statement integer
-1 ... 2147483647 ms
Non Non
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Non Non
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Non Non
log_parser_stats boolean
on | off
Non Non
log_planner_stats boolean
on | off
Non Non
log_replication_commands boolean
on | off
Non Non
log_statement enumeration
none | ddl | mod | all
Définissez cette option sur mod pour enregistrer toutes les instructions LDD (langage de définition de données), y compris les instructions de modification de données telles que INSERT, UPDATE, DELETE et TRUNCATE.
Non Non
log_statement_stats boolean
on | off
Peut ne pas être activée avec log_parser_stats, log_planner_stats ou log_executor_stats.
Non Non
log_temp_files integer
0 ... 2147483647 Ko, ou -1 pour désactiver
Non Non
maintenance_work_mem integer
1024 ... 2147483647 Ko
Non Oui
max_connections integer
14 ... varies (see note)

La valeur sur les instances dupliquées doit être supérieure ou égale à la valeur de l'instance principale. Les modifications sur l'instance principale se propagent sur les instances dupliquées dont la valeur est inférieure à la nouvelle valeur principale ou dont la valeur par défaut n'a pas été modifiée.

Oui Oui
max_locks_per_transaction integer
10 ... 2147483647

La valeur sur les instances dupliquées doit être supérieure ou égale à la valeur de l'instance principale. Les modifications sur l'instance principale se propagent sur les instances dupliquées dont la valeur est inférieure à la nouvelle valeur principale ou dont la valeur par défaut n'a pas été modifiée.

Oui Oui
max_prepared_transactions integer
0 ... 262143

La valeur sur les instances dupliquées doit être supérieure ou égale à la valeur de l'instance principale. Les modifications sur l'instance principale se propagent sur les instances dupliquées dont la valeur est inférieure à la nouvelle valeur principale ou dont la valeur par défaut n'a pas été modifiée.

Oui Oui
max_standby_archive_delay integer
0 ... 2147483647 ms, ou -1 pour attendre indéfiniment
Non Non
max_standby_streaming_delay integer
0 ... 2147483647  ms, ou -1 pour attendre indéfiniment
Non Non
max_wal_size integer
2 ... 2147483647

L'unité est de 1 Mo pour Postgres 10, 11, 12 et 13. L'unité est de 16 Mo (taille du fichier WAL) pour Postgres 9.6.

Non Oui
min_parallel_relation_size integer
0 ... 715827882
L'unité est de 8 Ko.
Non Non
old_snapshot_threshold integer
0 ... 86400 min, ou -1 pour désactiver
Oui Non
parallel_setup_cost float
0.0 ... inf
Non Non
parallel_tuple_cost float
0.0 ... inf
Non Non
pg_stat_statements.max integer
100 ... 2147483647
Oui Non
pg_stat_statements.save boolean
on | off
Non Non
pg_stat_statements.track enumeration
none | top | all
Non Non
pg_stat_statements.track_utility boolean
on | off
Non Non
pgaudit.log enumeration
read | write | function | role | ddl | misc | misc_set | all|none

Vous pouvez fournir plusieurs classes à l'aide d'une liste d'éléments séparés par une virgule, et retirer une classe en la faisant précéder d'un signe -. La valeur par défaut est none.

Non Oui
pgaudit.log_catalog boolean
on | off

La valeur par défaut est on.

Non Oui
pgaudit.log_client boolean
on | off

La valeur par défaut est off.

Non Oui
pgaudit.log_level enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log

La valeur par défaut est log. En outre, pgaudit.log_level n'est activé que lorsque pgaudit.log_client est activé.

Non Oui
pgaudit.log_parameter boolean
on | off

La valeur par défaut est off.

Non Oui
pgaudit.log_relation boolean
on | off

La valeur par défaut est off.

Non Oui
pgaudit.log_statement_once boolean
on | off

La valeur par défaut est off.

Non Oui
pgaudit.role string

Il n'y a pas de valeur par défaut.

Non Oui
random_page_cost float
0.0 ... inf
Non Non
replacement_sort_tuples integer
0 ... 2147483647
Non Non
ssl_max_protocol_version enumeration
Postgres 12 : définit la version de protocole SSL/TLS maximale à utiliser. Les valeurs valides sont les suivantes pour ssl_min_protocol_version, avec l'ajout d'une chaîne vide, ce qui permet de spécifier n'importe quelle version de protocole.
Non Non
ssl_min_protocol_version enumeration
Postgres 12 : définit la version de protocole SSL/TLS minimale à utiliser. Actuellement, les valeurs valides sont TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.

La valeur par défaut est TLSv1.

Non Non
standard_conforming_strings boolean
on | off
Non Non
synchronize_seqscans boolean
on | off
Non Non
temp_buffers integer
100 ... 1073741823
L'unité est de 8 Ko.
Non Oui
temp_file_limit integer
1048576 ... 2147483647 Ko
Non Non
trace_notify boolean
on | off
Non Non
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
Non Non
trace_sort boolean
on | off
Non Non
track_activities boolean
on | off
Non Non
track_activity_query_size integer
100 ... 102400
Oui Non
track_commit_timestamp boolean
on | off
Oui Non
track_counts boolean
on | off
Non Non
track_functions enumeration
none | pl | all
Non Non
track_io_timing boolean
on | off
Non Non
vacuum_cost_delay integer
0 ... 100 ms
Non Non
vacuum_cost_limit integer
1 ... 10000
Non Non
vacuum_freeze_min_age integer
0 ... 1000000000
Non Non
vacuum_freeze_table_age integer
0 ... 2000000000
Non Non
vacuum_multixact_freeze_min_age integer
0 ... 1000000000
Non Non
vacuum_multixact_freeze_table_age integer
0 ... 2000000000
Non Non
work_mem integer
64 ... 2147483647 Ko
Non Oui

Dépannage

Cliquez sur les liens du tableau pour en savoir plus :

Pour ce problème... Le problème peut être... Essayez ce qui suit...
Aucune option présente permettant de définir le fuseau horaire. Option de fuseau horaire non disponible. Il existe des solutions.

Aucune option présente permettant de définir le fuseau horaire

Avec Postgres, aucune option de fuseau horaire n'est disponible pour ajuster le fuseau horaire en fonction des besoins de l'utilisateur.

Cause possible

Option de fuseau horaire non disponible.

Solutions possibles

Vous pouvez définir le fuseau horaire par session, mais celle-ci expire lorsque vous vous déconnectez. La meilleure solution consiste à vous connecter à la base de données et à définir le fuseau horaire souhaité pour celle-ci, par utilisateur ou par base de données :

ALTER DATABASE dbname SET TIMEZONE TO 'timezone';
ALTER USER username SET TIMEZONE TO 'timezone';

Ces paramètres restent accessibles même après la fermeture de la session, ce qui imite la configuration .conf.

Étape suivante