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 les indicateurs 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 SQL Server, ainsi que la configuration et le réglage d'une instance.

Lorsque vous définissez, supprimez ou modifiez un indicateur pour une instance de base de données, il peut être nécessaire de redémarrer cette base de données. 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 indicateurs sans valeur, spécifiez le nom de l'indicateur suivi d'un signe égal ("=").

Par exemple, pour définir les indicateurs 1204, remote access et remote query timeout (s), vous pouvez exécuter la commande suivante :

gcloud sql instances patch INSTANCE_NAME \
  --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300

Terraform

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

resource "google_sql_database_instance" "instance" {
  name             = "sqlserver-instance-flags"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    database_flags {
      name  = "1204"
      value = "on"
    }
    database_flags {
      name  = "remote access"
      value = "on"
    }
    database_flags {
      name  = "remote query timeout (s)"
      value = "300"
    }
    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 :

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.

Indicateur Cloud SQL Valeurs
acceptables et remarques pour le type
Redémarrage
nécessaire ?
1204 (indicateur de trace) boolean
on | off
Non
1222 (indicateur de trace) boolean
on | off
Non
1224 (indicateur de trace) boolean
on | off
Non
2528 (indicateur de trace) boolean
on | off
Non
3205 (indicateur de trace) boolean
on | off
Non
3226 (indicateur de trace) boolean
on | off
Non
3625 (indicateur de trace) boolean
on | off
Oui
4199 (indicateur de trace) boolean
on | off
Non
4616 (indicateur de trace) boolean
on | off
Non
7806 (indicateur de trace) boolean
on | off
Oui
access check cache bucket count (nombre de buckets du cache de résultat de la vérification d'accès) integer
0 ... 65536
Non
access check cache quota (quota du cache de résultat de la vérification d'accès) integer
0 ... 2147483647
Non
affinity mask (masque d'affinité) integer
2147483648 ... 2147483647
Non
agent xps boolean
on | off
Non
automatic soft-numa disabled (Soft-NUMA automatique désactivé) boolean
on | off
Yes
cloudsql enable linked servers boolean
on | off
Non
cost threshold for parallelism (seuil de coût pour le parallélisme) integer
0 ... 32767
Non
contained database authentication (authentification de la base de données autonome) boolean
on | off
Non
cross db ownership chaining (chaînage de propriété entre les bases de données) boolean
on | off
Non
cursor threshold (seuil du curseur) integer
-1 ... 2147483647
Non
default full-text language (langue par défaut du texte intégral) integer
0 ... 2147483647
Non
langue par défaut integer
0 ... 32
Non
default trace enabled (trace par défaut activée) boolean
on | off
Non
disallow results from triggers (désactiver les résultats des déclencheurs) boolean
on | off
Non
external scripts enabled (scripts externes activés) boolean
on | off
Oui
ft crawl bandwidth max (nombre maximal de mémoires tampons volumineuses) integer
0 ... 32767
Non
ft crawl bandwidth min (nombre minimal de mémoires tampons volumineuses) integer
0 ... 32767
Non
ft notify bandwidth max (nombre maximal de petites mémoires tampons) integer
0 ... 32767
Non
ft notify bandwidth min (nombre minimal de petites mémoires tampons) integer
0 ... 32767
Non
fill factor % (% facteur de remplissage) integer
0 ... 100
Non
index create memory (mémoire allouée pour la création d'index en Ko) integer
704 ... 2147483647
Non
locks integer
5000 ... 2147483647
Oui
max server memory (mémoire maximale du serveur en Mo) integer
128 ... 2147483647
Cloud SQL peut définir une valeur pour cette option sur les instances, en se basant sur les Valeurs recommandées par Microsoft.
Non
max text repl size (taille maximale en octets des données de texte) integer
-1 ... 2147483647
Non
max worker threads (nombre maximal de threads de calcul) integer
128 ... 65535
Non
nested triggers (déclencheurs imbriqués) boolean
on | off
Non
optimize for ad hoc workloads (optimisation pour les charges de travail ad hoc) boolean
on | off
Non
ph timeout (délai du gestionnaire de protocole, en secondes) integer
1 ... 3600
Non
query governor cost limit (limite de coût de l'administrateur de requêtes) integer
0 ... 2147483647
Non
query wait (délai d'attente de la requête, en secondes) integer
-1 ... 2147483647
Non
recovery interval (intervalle de restauration en minutes) integer
0 ... 32767
Non
remote access (accès à distance) boolean
on | off
Yes
remote login timeout (délai d'attente de la connexion à distance en secondes) integer
0 ... 2147483647
Non
remote query timeout (délai d'attente des requêtes à distance en secondes) integer
0 ... 2147483647
Non
transform noise words (transformation des mots parasites, ou mots vides) boolean
on | off
Non
two digit year cutoff (année de troncature à deux chiffres) integer
1753 ... 9999
Non
user connections (connexions utilisateur) integer
0, 10 ... 32767
Oui
user options (options utilisateur) integer
0 ... 32767
Non

Dépannage

Problème Dépannage
Cloud SQL pour SQL Server ne permet pas de modifier le fuseau horaire d'une instance existante.

Dans Cloud SQL, SQL Server permet de définir le fuseau horaire d'une nouvelle instance, mais pas d'une instance existante.

Dans Cloud SQL pour SQL Server, vous pouvez utiliser la fonction AT TIME ZONE pour réaliser des conversions temporelles, et d'autres opérations. Pour plus d'informations sur cette fonction, consultez la section AT TIME ZONE (Transact-SQL).

Étapes suivantes