Mettre à niveau la version mineure de la base de données

Cette page explique comment mettre à niveau la version mineure d'une instance MySQL. Pour connaître les versions compatibles, consultez la page Versions de bases de données et règles concernant les versions.

Dans chaque nouvelle version mineure, les fournisseurs de base de données publient de nouvelles fonctionnalités, des correctifs de sécurité, des corrections de bugs et des améliorations de performances. De plus, Cloud SQL met régulièrement à jour votre version mineure pendant la maintenance.

Cependant, MySQL 8.0 n'autorise pas le retour à une version antérieure. Par conséquent, les mises à niveau de versions mineures ne sont pas automatiquement incluses dans la maintenance de routine. Vous pouvez spécifier la version mineure de Cloud SQL pour MySQL 8.0 lors de la création d'une instance, ou bien ultérieurement, via un processus de mise à niveau. Ces deux options sont décrites sur cette page.

Avant de passer à une nouvelle version mineure de MySQL 8.0, familiarisez-vous avec les modifications. Consultez les notes de version de MySQL 8.0. Si vous utilisez Cloud SQL pour MySQL 5.6 ou 5.7, Cloud SQL gère automatiquement la version mineure de votre instance. Lorsque vous provisionnez une nouvelle instance, Cloud SQL configure automatiquement votre instance avec la dernière version de base de données disponible. Lors des opérations de maintenance de routine, Cloud SQL met automatiquement à niveau votre instance vers la dernière version compatible.

Pour mettre à niveau la version mineure de la base de données de votre instance MySQL 8.0, vous devez mettre à jour votre instance vers la version mineure de votre choix, qui doit être supérieure à la version mineure installée. Vous ne pouvez pas rétablir une version mineure non spécifiée après le provisionnement d'une instance.

Si vous exécutez une instance de l'édition Cloud SQL Enterprise Plus, la mise à niveau de la version mineure s'effectue avec un temps d'arrêt quasi nul.

Avant la mise à niveau

Cloud SQL prend en charge la mise à niveau de version mineure pour les instances MySQL 8.0. MySQL 8.0 n'autorise pas le retour à une version antérieure. Par conséquent, avant de mettre à niveau votre instance principale, procédez comme suit pour garantir la sécurité de vos données.

  1. Choisissez la version mineure cible de la base de données.

    gcloud

    Pour en savoir plus sur l'installation et le démarrage avec la gcloud CLI, consultez la page Installer la gcloud CLI. Pour en savoir plus sur le démarrage de Cloud Shell, consultez la page Utiliser Cloud Shell.

    Pour vérifier les versions mineures de la base de données disponibles pour une mise à niveau sur place, procédez comme suit :

    1. Exécutez la commande suivante :
    2. gcloud sql instances describe INSTANCE_NAME
         

      Remplacez INSTANCE_NAME par le nom de l'instance.

    3. Dans le résultat de la commande, localisez la section intitulée upgradableDatabaseVersions.
    4. Chaque sous-section renvoie une version de base de données disponible pour la mise à niveau. Dans chaque sous-section, examinez le champ suivant.
      • name : chaîne de version de base de données qui inclut les versions majeure et mineure de la base de données que vous pouvez cibler pour la mise à niveau sur place de la version mineure de Cloud SQL pour MySQL.

    REST v1

    Pour vérifier les versions mineures de la base de données disponibles pour une mise à niveau sur place, utilisez la méthode instances.get de l'API Cloud SQL Admin.

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

    • INSTANCE_NAME : nom de l'instance.

    Méthode HTTP et URL :

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

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

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

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    REST v1beta4

    Pour vérifier les versions mineures de la base de données disponibles pour une mise à niveau sur place, utilisez la méthode instances.get de l'API Cloud SQL Admin.

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

    • INSTANCE_NAME : nom de l'instance.

    Méthode HTTP et URL :

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

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

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

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    Pour obtenir la liste complète des versions de bases de données compatibles avec Cloud SQL, consultez Versions de bases de données et règles de version.

  2. Testez votre mise à niveau dans un environnement de préproduction.

    1. Créez un clone de votre instance de production, qui servira d'instance de préproduction. Cela crée une instance de base de données avec les mêmes versions majeure et mineure.

    2. Effectuez une mise à niveau de la version mineure sur l'instance de préproduction.

    3. Exécutez des tests de charge de travail pour vérifier que la mise à niveau a réussi et que votre application fonctionne comme prévu. Une fois les tests réussissent, passez à la mise à niveau de vos instances dupliquées avec accès en lecture.

  3. Mettez à niveau vos instances dupliquées avec accès en lecture.

    1. Mettez à niveau toutes les instances dupliquées avec accès en lecture de la base de données vers la version mineure cible.

    2. Vérifiez que votre application fonctionne comme prévu.

  4. Sauvegardez votre instance principale.

    Comme pour toute mise à jour importante de la base de données, effectuez une sauvegarde de votre instance principale.

Mettre à niveau la version mineure

Vous pouvez spécifier la version mineure de base de données d'une instance existante à l'aide de gcloud ou de l'API REST. Effectuez les mises à niveau de versions mineures lorsque la base de données n'est pas utilisée. Si votre instance nécessite un redémarrage, elle connaîtra un temps d'arrêt. Les instances de l'édition Cloud SQL Enterprise Plus sont soumises à un temps d'arrêt quasi nul. Si la version installée est supérieure à celle qui est demandée, la requête est rejetée.

gcloud

Exécutez la commande gcloud sql instances patch avec l'option --database-version.

Remplacez les variables suivantes avant d'exécuter la commande :

  • INSTANCE_NAME : nom de l'instance
  • DATABASE_VERSION: version de la base de données de l'instance. Si vous ne spécifiez pas cette option, la version majeure par défaut est utilisée.
gcloud sql instances patch INSTANCE_NAME \
   --database-version=DATABASE_VERSION

REST v1

Exécutez une requête PATCH avec la méthode instances:patch et l'option databaseVersion.

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
  • DATABASE_VERSION : version de la base de données vers laquelle effectuer la mise à niveau

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "databaseVersion": "DATABASE_VERSION"
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Exécutez une requête PATCH avec la méthode instances:patch et l'option databaseVersion.

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
  • DATABASE_VERSION : version de la base de données vers laquelle effectuer la mise à niveau

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "databaseVersion": "DATABASE_VERSION"
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE-ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

Vérifier la version mineure de la base de données installée

Lorsque vous affichez les informations récapitulatives sur l'instance, la version mineure de la base de données installée est visible dans la section Configuration.

Effectuer le rollback d'une mise à niveau

Lors des tests d'une mise à niveau, si vous remarquez un problème, vous pouvez effectuer un rollback de votre base de données afin de récupérer l'instance de base de données exécutant la version mineure précédente.

Pour restaurer une sauvegarde préalable à la mise à niveau, procédez comme suit :

  1. Provisionnez une instance de base de données de récupération sur la version mineure précédente.
  2. Configurez les paramètres de l'instance de base de données de récupération sur l'état préalable à la mise à niveau.
  3. Restaurez sur l'instance de récupération la sauvegarde que vous avez réalisée préalablement à la mise à niveau.

Au lieu de restaurer une sauvegarde, effectuez une récupération à un moment précis et créez une nouvelle instance.