Configurer des options 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 et est redémarrée, elle est également redémarrée pour s'aligner sur la configuration actuelle de l'instance.

Configurer des options de base de données

Définir une option de base de données

Console

  1. Dans la console Google Cloud, sélectionnez le projet contenant l'instance Cloud SQL pour laquelle vous souhaitez définir une option de base de données.
  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 tous les indicateurs de base de données précédemment définis. Pour les conserver et en ajouter d'autres, vous devez inclure les valeurs de tous les indicateurs que vous souhaitez définir sur l'instance. Tout indicateur qui n'est pas spécifiquement inclus est défini à sa valeur par défaut. Pour les options sans valeur, spécifiez le nom de l'option suivi d'un signe égal ("=").

Par exemple, pour définir les options log_connections et log_min_error_statement, vous pouvez exécuter la commande suivante :

gcloud sql instances patch INSTANCE_NAME \
  --database-flags=log_connections=on,log_min_error_statement=error

Terraform

Pour ajouter des options de base de données, utilisez une ressource Terraform.

resource "google_sql_database_instance" "instance" {
  name             = "postgres-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    database_flags {
      name  = "log_connections"
      value = "on"
    }
    database_flags {
      name  = "log_min_error_statement"
      value = "error"
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Appliquer les modifications

Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.

Préparer Cloud Shell

  1. Lancez Cloud Shell.
  2. Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.

    Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.

Préparer le répertoire

Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).

  1. Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension .tf, par exemple main.tf. Dans ce tutoriel, le fichier est appelé main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.

    Copiez l'exemple de code dans le fichier main.tf que vous venez de créer.

    Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.

  3. Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
  4. Enregistrez les modifications.
  5. Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
    terraform init

    Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option -upgrade :

    terraform init -upgrade

Appliquer les modifications

  1. Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
    terraform plan

    Corrigez les modifications de la configuration si nécessaire.

  2. Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply

    Attendez que Terraform affiche le message "Apply completed!" (Application terminée).

  3. Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud, accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.

Supprimer les modifications

Pour supprimer vos modifications, procédez comme suit :

  1. Pour désactiver la protection contre la suppression, définissez l'argument deletion_protection sur false dans le fichier de configuration Terraform.
    deletion_protection =  "false"
  2. Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply
  1. Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant yes à l'invite :

    terraform destroy

REST v1

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

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

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

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/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.

REST v1beta4

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

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

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

Méthode HTTP et URL :

PATCH https://sqladmin.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 options

Console

  1. Dans la console Google Cloud, sélectionnez le projet contenant l'instance Cloud SQL pour laquelle vous souhaitez réinitialiser toutes les options.
  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 v1

Pour effacer tous les indicateurs sur une instance existante :

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

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

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/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 :

REST v1beta4

Pour effacer tous les indicateurs sur une instance existante :

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

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

Méthode HTTP et URL :

PATCH https://sqladmin.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 options 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 options de base de données définies pour une instance

Pour savoir quelles options ont été définies pour une instance Cloud SQL :

Console

  1. Dans la console Google Cloud, sélectionnez le projet contenant l'instance Cloud SQL pour laquelle vous souhaitez afficher les options de base de données définies.
  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 v1

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

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

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

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/v1/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.

REST v1beta4

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

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

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

Méthode HTTP et URL :

GET https://sqladmin.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

Les indicateurs qui n'apparaissent pas ci-dessous ne sont pas compatibles.

Pour un indicateur donné, Cloud SQL peut être compatible avec une plage ou une valeur 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 ?
anon.algorithm String
La valeur par défaut est sha256.
Non
anon.maskschema String
La valeur par défaut est mask.
Non
anon.restrict_to_trusted_schemas boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
anon.salt String
Aucune valeur par défaut n'est définie.
Non
anon.sourceshema String
La valeur par défaut est publique.
Non
auto_explain.log_analyze boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
auto_explain.log_buffers boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
auto_explain.log_min_duration Integer
-1 ... 2147483647
La valeur par défaut est -1.
Non
auto_explain.log_format String
text|xml|json|yaml
La valeur par défaut est text.
Non
auto_explain.log_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|log
La valeur par défaut est log.
Compatible avec PostgreSQL 12 et versions ultérieures.
Non
auto_explain.log_nested_statements boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
auto_explain.log_settings boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Compatible avec PostgreSQL 12 et versions ultérieures.
Non
auto_explain.log_timing boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
auto_explain.log_triggers boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
auto_explain.log_wal boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Compatible avec PostgreSQL 13 et versions ultérieures.
Non
auto_explain.log_verbose boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
auto_explain.sample_rate Float
0 ... 1
La valeur par défaut est 1.
Non
autovacuum boolean
on | off
Cette fonctionnalité est activée par défaut.
Pour en savoir plus sur l'utilisation pouvant affecter le contrat de niveau de service, consultez les Consignes opérationnelles relatives aux instances Cloud SQL pour PostgreSQL.
Non
autovacuum_analyze_scale_factor float
0 ... 100
La valeur par défaut est 0,1.
Non
autovacuum_analyze_threshold integer
0 ... 2147483647
La valeur par défaut est 50.
Non
autovacuum_freeze_max_age integer
100000 ... 2000000000
La valeur par défaut est 200000000.
Pour en savoir plus sur l'utilisation pouvant affecter le contrat de niveau de service, consultez les Consignes opérationnelles relatives aux instances Cloud SQL pour PostgreSQL.
Oui
autovacuum_max_workers integer
1 ... varies (see note)
La valeur par défaut est 3.
Oui
autovacuum_multixact_freeze_max_age integer
10000 ... 2000000000
La valeur par défaut est 400000000.
Pour en savoir plus sur l'utilisation pouvant affecter le contrat de niveau de service, consultez les Consignes opérationnelles relatives aux instances Cloud SQL pour PostgreSQL.
Oui
autovacuum_naptime integer
1 ... 2147483s
La valeur par défaut est 60 s.
Non
autovacuum_vacuum_cost_delay integer
0 ... 100 ms, ou -1 pour utiliser la valeur vacuum_cost_delay
Pour PostgreSQL 9.6, 10 et 11, la valeur par défaut est de 2 ms.
Non
autovacuum_vacuum_cost_limit integer
0 ... 10000, ou -1 pour utiliser la valeur vacuum_cost_limit.
La valeur par défaut est -1.
Non
autovacuum_vacuum_insert_scale_factor float
0 ... 100
La valeur par défaut est 0,2.
Non
autovacuum_vacuum_insert_threshold integer
-1 ... 2147483647
La valeur par défaut est 1000.
Non
autovacuum_vacuum_scale_factor float
0 ... 100
La valeur par défaut est 0,2.
Non
autovacuum_vacuum_threshold integer
0 ... 2147483647
La valeur par défaut est 50.
Non
autovacuum_work_mem integer
0 ... 2147483647 Ko, ou -1 pour utiliser la valeur maintenance_work_mem
La valeur par défaut est -1.
Non
checkpoint_completion_target float
0.0 ... 1.0
La valeur par défaut est 0,9.
Non
checkpoint_timeout integer
30 ... 86,400s
La valeur par défaut est 300 s.
Pour en savoir plus sur l'utilisation pouvant affecter le contrat de niveau de service, consultez les Consignes opérationnelles relatives aux instances Cloud SQL pour PostgreSQL.
Non
checkpoint_warning integer
0 ... 2147483647s
La valeur par défaut est 30 s.
Non
cloudsql.allow_passwordless_local_connections boolean
on | off
La valeur par défaut est off.
Non
cloudsql.enable_anon boolean
on | off
La valeur par défaut est off.
Non
cloudsql.enable_auto_explain boolean
on | off
La valeur par défaut est off.
Oui
cloudsql.enable_maintenance_mode boolean
on | off
La valeur par défaut est off.
Oui
cloudsql.enable_pgaudit boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Oui
cloudsql.enable_pg_bigm boolean
on | off
Valeur par défaut : off
Oui
cloudsql.enable_pg_cron boolean
on | off
La valeur par défaut est off.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
cloudsql.enable_pg_hint_plan boolean
on | off
La valeur par défaut est off.
Oui
cloudsql.enable_pglogical boolean
on | off
La valeur par défaut est off.
Oui
cloudsql.enable_pg_squeeze boolean
on | off
La valeur par défaut est off.
Oui
cloudsql.enable_pg_wait_sampling boolean
on | off
Oui
cloudsql.iam_authentication boolean
on | off
La valeur par défaut est off.
Non
cloudsql.logical_decoding boolean
on | off
La valeur par défaut est off.
Oui
cloudsql.max_failed_attempts_user integer
0 ... 10000
La valeur par défaut est 10.
Oui
cloudsql.pg_authid_select_role string
Non
commit_delay integer
0 ... 100000
La valeur par défaut est 0.
Non
commit_siblings integer
0 ... 1000
La valeur par défaut est 5.
Non
constraint_exclusion enumeration
partition | on | off
La valeur par défaut est partition.
Non
cpu_index_tuple_cost float
0.0 ... inf
La valeur par défaut est 0,005.
Non
cpu_operator_cost float
0.0 ... inf
La valeur par défaut est 0,0025.
Non
cpu_tuple_cost float
0.0 ... inf
La valeur par défaut est 0,01.
Non
cron.database_name String.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
cron.log_statement boolean
on | off
Cette fonctionnalité est activée par défaut.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
cron.log_run boolean
on | off
Cette fonctionnalité est activée par défaut.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
cron.max_running_jobs Integer
0 ... varies
La valeur par défaut est 5.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
cron.log_min_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log|fatal|panic
La valeur par défaut est warning.
Compatible avec PostgreSQL 10 et versions ultérieures.
Non
curseur_tuple_fraction float
0.0 ... 1.0
La valeur par défaut est 0,1.
Non
deadlock_timeout integer
1 ... 2147483647 ms
La valeur par défaut est 1000 ms.
Non
default_statistics_target integer
1 ... 10000
La valeur par défaut est 100.
Non
default_tablespace string Non
default_transaction_deferrable boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
La valeur par défaut est read committed.
Non
effective_cache_size integer
La taille est comprise entre 10 et 70 % de la mémoire de l'instance.
8 L'unité est de  Ko.
La valeur par défaut est de 40 % de la mémoire de la VM. Par exemple, pour une instance de 45 Go de mémoire, la valeur par défaut est 18537160 Ko.
Non
effective_io_concurrency integer
0 ... 1000
La valeur par défaut est 1.
Non
enable_bitmapscan boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_hashagg boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_hashjoin boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_indexonlyscan boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_indexscan boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_material boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_mergejoin boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_nestloop boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_seqscan boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_sort boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
enable_tidscan boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
force_parallel_mode enumeration
off | on | regress
Cette fonctionnalité est désactivée par défaut.
Non
from_collapse_limit integer
1 ... 2147483647
La valeur par défaut est 8.
Non
geqo boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
geqo_effort integer
1 ... 10
La valeur par défaut est 5.
Non
geqo_generations integer
0 ... 2147483647
La valeur par défaut est 0.
Non
geqo_pool_size integer
0 ... 2147483647
La valeur par défaut est 0.
Non
geqo_seed float
0.0 ... 1.0
La valeur par défaut est 0.
Non
geqo_selection_bias float
1.5 ... 2.0
La valeur par défaut est 2.
Non
geqo_threshold integer
2 ... 2147483647
La valeur par défaut est 12.
Non
gin_fuzzy_search_limit integer
0 ... 2147483647
La valeur par défaut est 0.
Non
gin_pending_list_limit integer
64 ... 2147483647 Ko
La valeur par défaut est 4096 Ko.
Non
hash_mem_multiplier float
1 ... 1000
La valeur par défaut est 2.
Non
hot_standby_feedback boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
huge_pages enumeration
try | off
La valeur par défaut est try.
Oui
idle_in_transaction_session_timeout integer
0 ... 2147483647 ms
La valeur par défaut est 0.
Non
ivfflat.probes integer
1 ... varies
La valeur par défaut est 1.
Compatible avec PostgreSQL 11 et versions ultérieures.
Non
join_collapse_limit integer
1 ... 2147483647
La valeur par défaut est 8.
Non
lock_timeout integer
0 ... 2147483647 ms
La valeur par défaut est 0.
Non
log_autovacuum_min_duration integer
0 ... 2147483647 ms, ou -1 pour désactiver.
La valeur par défaut est 0.
Non
log_checkpoints boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_connections boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_disconnections boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_duration boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_error_verbosity enumeration
terse | default | verbose
La valeur par défaut est default.
Non
log_executor_stats boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_hostname boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_line_prefix String
Chaîne de type printf générée au début de chaque ligne d'un fichier journal.
La valeur par défaut est %m [%p]: [%l-1] db=%d,user=%u , qui consigne l'horodatage, l'ID de processus, la base de données et le nom d'utilisateur.
Non
log_lock_waits boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_min_duration_statement integer
-1 ... 2147483647 ms
La valeur par défaut est -1.
Non
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
La valeur par défaut est error.
Non
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
La valeur par défaut est warning.
Non
log_parser_stats boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_planner_stats boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_replication_commands boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
log_statement enumeration
none | ddl | mod | all
Définir sur mod pour consigner toutes les instructions LDD (langage de définition de données), ainsi que les instructions de modification de données telles que INSERT, UPDATE, DELETE et TRUNCATE.
La valeur par défaut est none.
Non
log_statement_stats boolean
on | off
Peut ne pas être activée avec log_parser_stats, log_planner_stats ou log_executor_stats.
Cette fonctionnalité est désactivée par défaut.
Non
log_temp_files integer
0 ... 2147483647 Ko, ou -1 pour désactiver.
La valeur par défaut est 0.
Non
log_timezone string
Cette option permet aux utilisateurs de Cloud SQL pour PostgreSQL de définir le fuseau horaire utilisé pour les horodatages écrits dans le journal serveur.

Vous spécifiez les fuseaux horaires par nom. Par exemple, Europe/London est le nom du fuseau horaire pour Londres.

Vous devez mettre à jour cette option manuellement sur l'instance principale et sur toutes les instances dupliquées lues pour qu'elle soit prise en compte.

Les noms de fuseau horaire ne sont pas sensibles à la casse. Vous pouvez utiliser le nom de fuseau horaire systématiquement.

Le format UTC+X est considéré comme valide pour cette option, où X correspond à +/-HH:MM.

Oui
logical_decoding_work_mem integer
64 ... 2147483647
La valeur par défaut est 65 536.
Non
maintenance_io_concurrency integer
0 ... 1000
La valeur par défaut est 10.
Non
maintenance_work_mem integer
1024 ... 2147483647 Ko
La valeur par défaut est 64 Mo.
Non
max_connections integer
14 ... varies (see note)
La valeur par défaut dépend de la quantité de mémoire de la plus grande instance de la chaîne d'instances principales (cette instance et, s'il s'agit d'une instance dupliquée avec accès en lecture, de l'instance principale de l'instance principale, etc., jusqu'à la racine de l'arborescence de réplication).
Mémoire (Go) sur l'instance la plus grandeValeur par défaut
très petite (~0,5)25
petite (~1,7)50
entre 3,75 et < 6100
entre 6 et < 7,5200
entre 7,5 et < 15400
entre 15 et < 30500
entre 30 et < 60600
entre 60 et < 120800
>= 1201 000

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 de l'instance principale ou dont la valeur par défaut n'a pas été modifiée. Ces modifications sur l'instance principale entraînent le redémarrage de l'instance répliquée.

Oui
max_locks_per_transaction integer
10 ... 2,147,483,647
La valeur par défaut est 64.

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 de l'instance principale ou dont la valeur par défaut n'a pas été modifiée. Ces modifications sur l'instance principale entraînent le redémarrage de l'instance répliquée.

Oui
max_logical_replication_workers integer
4 ... 8192
La valeur par défaut est 4.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
max_parallel_maintenance_workers integer
0 ... varies
La valeur par défaut est 2.
Compatible avec PostgreSQL 11 et versions ultérieures.

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.

Si la valeur sur l'instance principale est default, la valeur des instances dupliquées ne peut pas être modifiée. Pour modifier la valeur des instances dupliquées, commencez par définir la valeur de l'instance principale sur un entier.

Non
max_parallel_workers integer
0 ... varies
La valeur par défaut est 8.
Compatible avec PostgreSQL 10 et versions ultérieures.

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.

Si la valeur sur l'instance principale est default, la valeur des instances dupliquées ne peut pas être modifiée. Pour modifier la valeur des instances dupliquées, commencez par définir la valeur de l'instance principale sur un entier.

Non
max_parallel_workers_per_gather integer
0 ... varies
La valeur par défaut est 2.

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.

Si la valeur sur l'instance principale est default, la valeur des instances dupliquées ne peut pas être modifiée. Pour modifier la valeur des instances dupliquées, commencez par définir la valeur de l'instance principale sur un entier.

Non
max_pred_locks_per_page integer
0 ... 2147483647
La valeur par défaut est 2.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
max_pred_locks_per_relation integer
-2147483648 ... 2147483647
La valeur par défaut est -2.
Compatible avec PostgreSQL 10 et versions ultérieures.
Oui
max_pred_locks_per_transaction integer
64 ... 1048576
Oui
max_prepared_transactions integer
0 ... varies
Taille de la mémoire (Mo)Valeur max.
0 - 3 84030 000
3 840 - 7 68085 000
7 680 - 15 360200 000
15 360 et plus262 000

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 de l'instance principale ou dont la valeur par défaut n'a pas été modifiée. Ces modifications sur l'instance principale entraînent le redémarrage de l'instance répliquée.

Oui
max_replication_slots integer
10 ... varies
La valeur par défaut est 10.
Oui
max_standby_archive_delay integer
0 ... 2147483647 ms, ou -1 pour attendre indéfiniment
Non
max_standby_streaming_delay integer
0 ... 2147483647  ms, ou -1 pour attendre indéfiniment
Non
max_sync_workers_per_subscription integer
2 ... 64
Ne peut pas être supérieur à max_logical_replication_workers.
Non
max_wal_senders integer
10 ... varies
La valeur par défaut est 10.

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 de l'instance principale ou dont la valeur par défaut n'a pas été modifiée. Ces modifications sur l'instance principale entraînent le redémarrage de l'instance répliquée.

Oui
max_wal_size integer
2 ... 2147483647

L'unité est de 16 Mo (taille du fichier WAL) pour PostgreSQL 9.6 et de 1 Mo pour PostgreSQL 10 et versions ultérieures.

La valeur par défaut est de 1504 Mo si la mémoire de l'instance est supérieure ou égale à 3.75 Go. La valeur par défaut est de 1 Go si la mémoire de l'instance est inférieure à 3.75 Go.

Pour en savoir plus sur l'utilisation pouvant affecter le contrat de niveau de service, consultez les Consignes opérationnelles relatives aux instances Cloud SQL pour PostgreSQL.
Non
max_worker_processes integer
8 ... varies

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 de l'instance principale ou dont la valeur par défaut n'a pas été modifiée. Ces modifications sur l'instance principale entraînent le redémarrage de l'instance répliquée.

Oui
min_parallel_relation_size integer
0 ... 715827882
L'unité est de 8 Ko
Compatible uniquement avec PostgreSQL 9.6.
Non
min_wal_size integer
32 ... 2147483647

L'unité est de 16 Mo (taille du fichier WAL) pour PostgreSQL 9.6 et de 1 Mo pour PostgreSQL 10 et versions ultérieures.

Non
old_snapshot_threshold integer
0 ... 86400 min, ou -1 pour désactiver.
La valeur par défaut est -1.
Oui
parallel_setup_cost float
0.0 ... inf
La valeur par défaut est 1000.
Non
parallel_tuple_cost float
0.0 ... inf
La valeur par défaut est 0,1.
Non
password_encryption enumeration
md5 | scram-sha-256

La valeur par défaut dépend de la version de PostgreSQL. Pour les versions 10 à 13 de PostgreSQL, la valeur par défaut est md5. Pour PostgreSQL 14 et les versions ultérieures, la valeur par défaut est scram-sha-256.

Non
pg_bigm.enable_recheck boolean
on | off
Non
pg_bigm.gin_key_limit integer
0 ... 2147483647
Non
pg_bigm.similarity_limit float
0.0 ... 1.0
Non
pg_hint_plan.enable_hint boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
pg_hint_plan.debug_print String
off|on|detailed|verbose|0|1||2|3|no|yes|false|true
Cette fonctionnalité est désactivée par défaut.
Non
pg_hint_plan.parse_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
La valeur par défaut est info.
Non
pg_hint_plan.message_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
La valeur par défaut est log.
Non
pg_hint_plan.enable_hint_table boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
pglogical.batch_inserts boolean
on | off
La valeur par défaut est off.
Oui
pglogical.conflict_log_level String
La valeur par défaut est LOG.
Cette option accepte les mêmes valeurs que log_min_messages.
Non
pglogical.conflict_resolution String
error|apply_remote|keep_local|last_update_wins|first_update_wins La valeur par défaut est apply_remote.
Non
pglogical.extra_connection_options String
Accepte les chaînes de connexion mot clé/valeur PostgreSQL.
La valeur par défaut est la chaîne vide.
Non
pglogical.synchronous_commit boolean
on | off
La valeur par défaut est on.
Oui
pglogical.use_spi boolean
on | off
La valeur par défaut est off.
Oui
pg_stat_statements.max integer
100 ... 2147483647
La valeur par défaut est 5000.
Oui
pg_stat_statements.save boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
pg_stat_statements.track enumeration
none | top | all
La valeur par défaut est top.
Non
pg_stat_statements.track_utility boolean
on | off
Cette fonctionnalité est activée par défaut.
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
pgaudit.log_catalog boolean
on | off
La valeur par défaut est on.
Non
pgaudit.log_client boolean
on | off
La valeur par défaut est off.
Non
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
pgaudit.log_parameter boolean
on | off
La valeur par défaut est off.
Non
pgaudit.log_relation boolean
on | off
La valeur par défaut est off.
Non
pgaudit.log_statement_once boolean
on | off
La valeur par défaut est off.
Non
pgaudit.role string
Il n'y a pas de valeur par défaut.
Non
pgtt.enabled boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
pg_wait_sampling.history_period integer
1 ... 2147483647
Non
pg_wait_sampling.history_size integer
1 ... 2147483647
Non
pg_wait_sampling.profile_period integer
1 ... 2147483647
Non
pg_wait_sampling.profile_pid boolean
on | off
Non
pg_wait_sampling.profile_queries boolean
on | off
Non
random_page_cost float
0.0 ... inf
La valeur par défaut est 4.
Non
rdkit.agent_FP_bit_ratio float
0 ... 3
Non
rdkit.avalon_fp_size integer
64 ... 9192
Non
rdkit.dice_threshold float
0 ... 1
Non
rdkit.difference_FP_weight_agents integer
-10 ... 10
Non
rdkit.difference_FP_weight_nonagents integer
1 ... 20
Non
rdkit.do_chiral_sss boolean
on | off
Non
rdkit.do_enhanced_stereo_sss boolean
on | off
Non
rdkit.featmorgan_fp_size integer
64 ... 9192
Non
rdkit.hashed_atompair_fp_size integer
64 ... 9192
Non
rdkit.hashed_torsion_fp_size integer
64 ... 9192
Non
rdkit.ignore_reaction_agents boolean
on | off
Non
rdkit.init_reaction boolean
on | off
Non
rdkit.layered_fp_size integer
64 ... 9192
Non
rdkit.morgan_fp_size integer
64 ... 9192
Non
rdkit.move_unmmapped_reactants_to_agents boolean
on | off
Non
rdkit.rdkit_fp_size integer
64 ... 9192
Non
rdkit.reaction_difference_fp_size integer
64 ... 9192
Non
rdkit.reaction_difference_fp_type integer
1 ... 3
Non
rdkit.reaction_sss_fp_size integer
64 ... 9192
Non
rdkit.reaction_sss_fp_type integer
1 ... 5
Non
rdkit.sss_fp_size integer
64 ... 4096
Non
rdkit.tanimoto_threshold float
0 ... 1
Non
rdkit.threshold_unmapped_reactant_atoms float
0 ... 1
Non
replacement_sort_tuples integer
0 ... 2147483647
Non
session_replication_role enumeration
origin | replica | local
Ne peut être défini que dans la session en cours
-
shared_buffers integer
La taille est comprise entre 10 et 60 % de la mémoire de l'instance.
8 L'unité est de  Ko.
La valeur par défaut correspond à un tiers de la mémoire totale de la VM de l'instance (en Mo). Par exemple, pour 45 Go de mémoire d'instance, la valeur par défaut est 15085 Mo.
Oui
squeeze.max_xlock_time integer
1 ... 2147483647
Non
squeeze.worker_autostart string
Non
squeeze.worker_role string
Non
ssl_max_protocol_version enumeration
Postgres 14 : 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.
Compatible avec PostgreSQL 12 et versions ultérieures.
Non
ssl_min_protocol_version enumeration
Postgres 14 : 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.
Compatible avec PostgreSQL 12 et versions ultérieures.
Non
standard_conforming_strings boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
synchronize_seqscans boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
tcp_keepalives_count integer
0 ... 2147483647
La valeur par défaut est 5.
Non
tcp_keepalives_idle integer
0 ... 2147483647
La valeur par défaut est 60.
Non
tcp_keepalives_interval integer
0 ... 2147483647
La valeur par défaut est 60.
Non
temp_buffers integer
100 ... 1,073,741,823
L'unité est de 8 Ko.
Non
temp_file_limit integer
1048576 ... 2147483647 Ko
La valeur par défaut est 10 % de la taille du disque initial. Par exemple, pour un disque de 100 Go, la valeur par défaut est 10262623 Ko.
Non
TimeZone string
Cette option permet aux utilisateurs de Cloud SQL pour PostgreSQL de définir le fuseau horaire pour l'affichage et l'analyse des horodatages.

Vous spécifiez les fuseaux horaires par nom. Par exemple, Europe/London est le nom du fuseau horaire pour Londres.

Vous devez mettre à jour cette option manuellement sur l'instance principale et sur toutes les instances dupliquées lues pour qu'elle soit prise en compte.

Les noms de fuseau horaire ne sont pas sensibles à la casse. Vous pouvez utiliser le nom de fuseau horaire systématiquement.

Le format UTC+X est considéré comme valide pour cette option, où X correspond à +/-HH.

Oui
trace_notify boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
La valeur par défaut est log.
Non
trace_sort boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
track_activities boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
track_activity_query_size integer
100 ... 102400
La valeur par défaut est 1 Ko.
Oui
track_commit_timestamp boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Oui
track_counts boolean
on | off
Cette fonctionnalité est activée par défaut.
Non
track_functions enumeration
none | pl | all
La valeur par défaut est none.
Non
track_io_timing boolean
on | off
Cette fonctionnalité est désactivée par défaut.
Non
vacuum_cost_delay integer
0 ... 100 ms
La valeur par défaut est 0.
Non
vacuum_cost_limit integer
1 ... 10000
La valeur par défaut est 200.
Non
vacuum_failsafe_age integer
0 ... 2100000000
La valeur par défaut est 1 600 000 000.
Non
vacuum_freeze_min_age integer
0 ... 1000000000
La valeur par défaut est 50000000.
Non
vacuum_freeze_table_age integer
0 ... 2000000000
La valeur par défaut est 150000000.
Non
vacuum_multixact_failsafe_age integer
0 ... 2100000000
La valeur par défaut est 1 600 000 000.
Non
vacuum_multixact_freeze_min_age integer
0 ... 1000000000
La valeur par défaut est 5000000.
Non
vacuum_multixact_freeze_table_age integer
0 ... 2000000000
La valeur par défaut est 150000000.
Non
wal_buffers integer
La taille est comprise entre 1 et 5 % de la mémoire de l'instance.
8 L'unité est de  Ko.
La valeur par défaut est 16 Mo.
Oui
wal_compression enumeration
off | on | pglz | lz4 | zstd
Cette fonctionnalité est désactivée par défaut.
Non
wal_receiver_timeout integer
0 ... 2147483647
La valeur par défaut est de 60 secondes.

Cette option affecte l'expéditeur et le destinataire du message WAL. Si cette option n'est pas correctement définie, elle affecte la réplication logique et physique. Cette option affecte également les performances et la latence de réplication. La valeur zéro désactive le mécanisme de délai avant expiration. Cette valeur est exprimée en millisecondes.

Non
wal_sender_timeout integer
0 ... 2147483647
La valeur par défaut est de 60 secondes.

Cette option affecte l'expéditeur et le destinataire du message WAL. Si cette option n'est pas correctement définie, elle affecte la réplication logique et physique. Cette option affecte également les performances et la latence de réplication. La valeur zéro désactive le mécanisme de délai avant expiration. Cette valeur est exprimée en millisecondes.

Non
work_mem integer
64 ... 2147483647 Ko
La valeur par défaut est 4 Mo.
Non

Options spéciales

bgwriter

PostgreSQL possède une option de rédacteur d'arrière-plan (bgwriter). Cette option fournit les écritures des tampons partagés nouveaux ou modifiés. Ces tampons partagés sont appelés tampons sales. Lorsque le nombre de tampons partagés nettoyés est insuffisant, le rédacteur d'arrière-plan écrit les tampons sales dans le système de fichiers et les marque comme propres.

bgwriter_delay et bgwriter_lru_maxpages sont deux options associées à l'option bgwriter. bgwriter_delay spécifie le délai en millisecondes (ms) entre les cycles d'activité du rédacteur d'arrière-plan et bgwriter_lru_maxpages spécifie le nombre de tampons qui seront écrits par le rédacteur d'arrière-plan.

La valeur par défaut de l'option bgwriter est 200 ms. Toutefois, si vous sélectionnez un disque dur SSD d'une taille supérieure à 500 Go, la valeur de l'option bgwriter_delay est définie sur 50 et la valeur de la valeur L'option bgwriter_lru_maxpages est définie sur 200.

Pour en savoir plus sur le rédacteur d'arrière-plan, consultez la documentation PostgreSQL.

session_replication_role

PostgreSQL possède l'option session_replication_role, conçue pour la réplication logique et vous permettant de désactiver les déclencheurs de contrainte dans des sessions individuelles.

Cette option peut également être utilisée pour certaines opérations de maintenance afin de contourner les vérifications de contraintes (le plus souvent, la clé étrangère).

Cette option peut être définie dans une session par tout utilisateur dont la propriété REPLICATION est définie. La propriété REPLICATION de n'importe quel utilisateur peut être définie par cloudsqlsuperuser lorsque l'une des options cloudsql.enable_pglogical ou cloudsql.logical_decoding est définie pour l'instance.

Vous ne pouvez pas définir cette option pour l'ensemble de l'instance.

Dépannage

Problème Dépannage
Vous définissez le fuseau horaire d'une session, mais celui-ci expire lorsque vous vous déconnectez.

Connectez-vous à la base de données et définissez le fuseau horaire souhaité pour celle-ci, par utilisateur ou par base de données.

Dans Cloud SQL pour PostgreSQL, vous pouvez spécifier les éléments suivants. Ces paramètres restent accessibles après la fermeture d'une session, et imitent une configuration .conf :


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

Ces paramètres ne s'appliquent qu'aux nouvelles connexions à la base de données. Pour constater la modification du fuseau horaire, déconnectez-vous de l'instance, puis reconnectez-vous à celle-ci.

Étapes suivantes