Configurer des indicateurs de base de données

Cette page décrit la procédure à suivre pour configurer des indicateurs de base de données Cloud SQL, ainsi que la liste des indicateurs que vous pouvez définir pour votre instance. Les indicateurs de base de données servent à ajuster les paramètres et les options PostgreSQL afin de configurer au mieux votre 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, 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 modifiiez ou la supprimiez.

Configurer des indicateurs de base de données

Définir un indicateur de base de données

Console

  1. Dans la console Google Cloud Platform, créez un nouveau projet de console GCP 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

Modifier une instance :

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

Pour les indicateurs sans valeur, spécifiez le nom de l'indicateur suivi d'un signe égal ("="). Incluez une valeur pour tous les indicateurs que vous souhaitez définir sur l'instance. Tout indicateur non inclus est réinitialisé à sa valeur par défaut.

cURL

Pour définir un indicateur sur une instance existante, procédez comme suit :

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings" : {"databaseFlags" :
         [{ "name": "<FLAG-NAME>",  "value": "<FLAG-VALUE>" }]}}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>

Si des indicateurs sont déjà configurés pour l'instance, 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 la console Google Cloud Platform, créez un nouveau projet de console GCP 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 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.

cURL

Pour effacer tous les indicateurs sur une instance existante :

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" 
--header 'Content-Type: application/json'
--data '{"settings" : {"databaseFlags" : []}}'
-X PATCH
https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>

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

Pour afficher toutes les valeurs actuelles des paramètres PostgreSQL, connectez-vous à l'instance avec le client psql et saisissez 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 la console Google Cloud Platform, créez un nouveau projet de console GCP 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, consultez la rubrique Représentation des ressources d'instances.

cURL

Pour répertorier les indicateurs configurés pour une instance :

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" 
--header 'Content-Type: application/json'
-X GET
https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>?fields=settings

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 correspondant.

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

Indicateur Cloud SQL Type
Valeurs acceptables et remarques
Redémarrage
Obligatoire ?
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 ... 262143
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
commit_delay integer
0 ... 100000
Non Non
commit_siblings integer
0 ... 1000
Non Non
contrainte_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
Non Non
log_statement_stats boolean
Peut ne pas être activé 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 ... 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_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 16 Mo pour Postgres 9.6. La taille par défaut de l'unité est de 1 Mo pour Postgres 11.1

Non Oui
min_parallel_relation_size integer
0 ... 715827882
L'unité est 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
random_page_cost float
0.0 ... inf
Non Non
replacement_sort_tuples integer
0 ... 2147483647
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 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
fonctions de piste 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

Étape suivante