Réduire la capacité de stockage d'une instance

Cette page vous explique comment gérer la capacité de stockage d'une instance Cloud SQL à l'aide des fonctionnalités de réduction du stockage.

Avant de commencer

  1. Consultez les limites de la fonctionnalité.

  2. Si vous utilisez gcloud CLI, assurez-vous d'utiliser la dernière version de Google Cloud SDK et de gcloud CLI.

  3. Obtenez les autorisations IAM suivantes :

    • cloudsql.instances.getDiskShrinkConfig
    • cloudsql.instances.performDiskShrink

    Ces autorisations sont disponibles dans l'un des rôles suivants. Lorsque vous attribuez votre rôle, nous vous recommandons d'appliquer le principe du moindre privilège :

    • Administrateur Cloud SQL (roles/cloudsql.admin)
    • Éditeur Cloud SQL (roles/cloudsql.editor)

    Pour en savoir plus, consultez les ressources suivantes :

Préparer l'instance

Avant de commencer, assurez-vous de satisfaire les conditions suivantes.

Ces étapes sont les mêmes pour les instances principales et les instances dupliquées avec accès en lecture.

Si vous mettez à jour une instance répliquée avec accès en lecture, veillez à réduire d'abord la capacité de l'instance principale, puis la taille de la réplique.

  1. Obtenez l'ID du projet contenant l'instance que vous souhaitez gérer.

  2. Vérifiez l'état actuel de l'instance pour vous assurer qu'elle est en cours d'exécution. Pour le vérifier, vous pouvez utiliser la commande describe :

      gcloud sql instances describe
    

    Renvoie l'état suivant :

      RUNNABLE
    

    Si ce n'est pas le cas, démarrez l'instance.

  3. Créez une sauvegarde de l'instance actuelle. Cela vous permet de restaurer l'instance ultérieurement si vous rencontrez des problèmes lors de la configuration.

  4. Désactivez toutes les extensions ou fonctionnalités qui permettent les connexions sortantes (ou qui nécessitent le transfert de données sortantes).

Réduire la capacité de stockage d'une instance

Les étapes suivantes sont les mêmes pour les instances principales et les instances répliquées avec accès en lecture.

  1. Vérifiez la capacité de stockage minimale cible de l'instance et la durée estimée de l'opération. Ces informations peuvent vous aider à planifier l'opération de réduction de l'espace de stockage.

    gcloud

    Exécutez la commande gcloud sql instances get-storage-shrink-config :

    gcloud sql instances get-storage-shrink-config INSTANCE_NAME
    

    Remplacez les éléments suivants :

    • INSTANCE_NAME : nom de l'instance principale.

    La réponse inclut une valeur pour minimalTargetSizeGb. Vous pouvez utiliser cette valeur pour déterminer celle que vous souhaitez utiliser pour le paramètre --storage-size lorsque vous exécutez une opération de réduction du stockage.

    La réponse renvoie également un message indiquant la durée estimée de l'opération, semblable à ce qui suit :

    ...
    "The estimated operation time is 20 minutes".
    

    REST v1

    Utilisez la méthode GET pour afficher la capacité de stockage minimale cible de l'instance.

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

    • PROJECT_ID : nom du projet dans lequel réside l'instance principale.
    • INSTANCE_ID : ID de l'instance principale.

    Méthode HTTP et URL :

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

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

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

    La réponse inclut une valeur pour min_target_size_gb. Vous pouvez utiliser cette valeur pour déterminer celle que vous souhaitez utiliser pour le paramètre --storage-size lorsque vous exécutez une opération de réduction du stockage.

    La réponse renvoie également un message indiquant la durée estimée de l'opération, comme suit :

    ...
    "The estimated operation time is 20 minutes".
    

    REST v1beta4

    Utilisez la méthode GET pour afficher la capacité de stockage minimale cible de l'instance.

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

    • PROJECT_ID : nom du projet dans lequel réside l'instance principale.
    • INSTANCE_ID : ID de l'instance principale.

    Méthode HTTP et URL :

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

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

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

    La réponse inclut une valeur pour min_target_size_gb. Vous pouvez utiliser cette valeur pour déterminer celle que vous souhaitez utiliser pour le paramètre --storage-size lorsque vous exécutez une opération de réduction du stockage.

    La réponse renvoie également un message indiquant la durée estimée de l'opération, semblable à ce qui suit :

    ...
    "The estimated operation time is 20 minutes".
    
  2. Réduisez la capacité de stockage de l'instance.

    gcloud

    Exécutez la commande suivante pour réduire l'espace de stockage sur l'instance :

    gcloud sql instances perform-storage-shrink INSTANCE_NAME \
      --storage-size=TARGET_STORAGE_SIZE --async
    

    Remplacez les éléments suivants :

    • INSTANCE_NAME : nom de l'instance.
    • TARGET_STORAGE_SIZE : capacité de stockage cible en Go. Par exemple, 100 Go.

    Nous vous recommandons d'utiliser l'option --async pour attendre l'opération de manière asynchrone.

    REST v1

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

    • PROJECT_ID : ID du projet dans lequel réside l'instance.
    • INSTANCE_ID : ID de l'instance
    • TARGET_STORAGE_SIZE : taille de stockage cible en Go.

    Méthode HTTP et URL :

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    Corps JSON de la requête :

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

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

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

    REST v1beta4

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

    • PROJECT_ID : ID du projet dans lequel réside l'instance.
    • INSTANCE_ID : ID de l'instance
    • TARGET_STORAGE_SIZE : taille de stockage cible de l'instance.

    Méthode HTTP et URL :

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    Corps JSON de la requête :

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

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

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

  3. Pour vérifier l'état de l'opération de réduction de l'espace de stockage, consultez Vérifier l'état d'une opération.

Annuler une opération de réduction de stockage

  1. Obtenez l'ID de l'opération de réduction du stockage.

    Vous pouvez récupérer l'ID d'opération en exécutant la commande list suivante :

    gcloud sql operations list
    
  2. Envoyez une demande de résiliation.

    gcloud

    Exécutez la commande suivante pour annuler la requête :

    gcloud sql operations cancel OPERATION_ID
    

    Remplacez les éléments suivants :

    OPERATION_ID : ID de l'opération de réduction de l'espace de stockage que vous souhaitez annuler.

    REST v1

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

    • PROJECT_ID : ID du projet dans lequel réside l'instance.
    • OPERATION_ID : ID de l'opération de réduction de l'espace de stockage que vous souhaitez annuler.

    Méthode HTTP et URL :

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID/cancel

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

    Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

    REST v1beta4

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

    • PROJECT_ID : ID du projet dans lequel réside l'instance.
    • OPERATION_ID : ID de l'opération de réduction de l'espace de stockage que vous souhaitez annuler.

    Méthode HTTP et URL :

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID/cancel

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

    Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Vérifier l'état d'une demande de résiliation ou d'une autre opération

Pour vérifier l'état d'une requête, exécutez les commandes suivantes :

gcloud

  1. Obtenez l'ID d'opération pour la demande de résiliation :

    gcloud sql operations list
    
  2. Vérifiez l'état de l'opération :

    gcloud sql operations describe OPERATION_ID
    

    Remplacez les éléments suivants :

    OPERATION_ID : ID de l'opération que vous souhaitez vérifier.

REST v1

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

  • PROJECT_ID : nom du projet dans lequel réside l'instance.
  • OPERATION_ID : ID de l'opération de réduction de l'espace de stockage.

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID

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

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

REST v1beta4

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

  • PROJECT_ID : nom du projet dans lequel réside l'instance.
  • OPERATION_ID : ID de l'opération de réduction de l'espace de stockage.

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID

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

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

Dépannage

Pour en savoir plus sur le dépannage, consultez Problèmes de mise à jour de la capacité de stockage.

Étapes suivantes