Actualizar la versión secundaria de la base de datos MySQL 8.0

Cloud SQL para MySQL admite varias versiones secundarias de MySQL 8.0 y aprovisiona instancias de MySQL 8.0 en la versión secundaria predeterminada, que es una versión secundaria anterior a la más reciente.

Con cada nueva versión secundaria, los proveedores de bases de datos lanzan nuevas funciones, parches de seguridad, correcciones de errores y mejoras de rendimiento.

MySQL 8.0 no admite versiones anteriores.

Actualizaciones automáticas

Cloud SQL admite la actualización automática de las versiones secundarias de las instancias de Cloud SQL para MySQL 8.0 que ejecutan la versión 8.0.35 de MySQL o una posterior.

Cuando la actualización automática de la versión secundaria está habilitada, una instancia de Cloud SQL para MySQL 8.0 se actualiza automáticamente a la versión secundaria predeterminada de Cloud SQL para MySQL 8.0 durante su actualización de mantenimiento programada periódicamente. Ya no es necesario que realices las actualizaciones de las versiones secundarias manualmente para mantener tu instancia de Cloud SQL para MySQL al día con los últimos parches de seguridad y correcciones de errores que vaya lanzando la comunidad de MySQL.

La actualización automática de la versión secundaria solo se produce durante los eventos de mantenimiento programados periódicamente, no durante el mantenimiento de autoservicio.

Habilitar la actualización automática para las nuevas instancias

Cuando crees una instancia de Cloud SQL para MySQL 8.0, ten en cuenta lo siguiente sobre las actualizaciones automáticas de versiones secundarias:

  • Si creas una instancia de Cloud SQL para MySQL 8.0 sin seleccionar una versión secundaria, la instancia se habilitará con la actualización automática de la versión secundaria de forma predeterminada.

  • Si creas una instancia de Cloud SQL para MySQL 8.0 y seleccionas una versión secundaria 8.0.35 o posterior, puedes habilitar la actualización automática de la versión secundaria durante su creación.

  • Si creas una instancia de Cloud SQL para MySQL 8.0 y seleccionas una versión secundaria 8.0.34 o anterior, no podrás habilitar la actualización automática de la versión secundaria. Debes actualizar manualmente la versión secundaria de la instancia.

Habilitar la actualización automática de las instancias

Si tu instancia ya tiene instalada la versión 8.0.35 o una posterior de Cloud SQL para MySQL, puedes habilitar la actualización automática de la versión secundaria.

Sigue estos pasos para habilitar las actualizaciones automáticas en una instancia de MySQL 8.0. Este procedimiento no actualiza tu instancia. La instancia recibirá actualizaciones automáticas de la versión secundaria durante el próximo evento de mantenimiento programado.

Consola

Para habilitar las actualizaciones automáticas de MySQL 8.0 en una instancia, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. Haz clic en Editar.
  4. En la sección Personaliza tu instancia, selecciona Habilitar actualizaciones automáticas de versiones secundarias.
  5. Haz clic en Guardar.

gcloud

Para habilitar las actualizaciones automáticas de MySQL 8.0 en una instancia, sigue estos pasos:

  1. Ejecuta el siguiente comando:
  2. gcloud sql instances patch INSTANCE_NAME \
       --enable-auto-upgrade-minor-version
      

    Sustituye INSTANCE_NAME por el nombre de la instancia.

  3. Comprueba los metadatos de la instancia ejecutando el siguiente comando:
  4. gcloud sql instances describe INSTANCE_NAME
      

    Sustituye INSTANCE_NAME por el nombre de la instancia.

    En el resultado, busca el campo DatabaseType y comprueba que el valor se haya actualizado a MYSQL_8_0.

Comprobar si la actualización secundaria automática está habilitada

Para comprobar si tu instancia tiene habilitada la actualización automática de versión secundaria, ejecuta el siguiente comando:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID

Sustituye INSTANCE_NAME por el nombre de la instancia y PROJECT_ID por el ID del proyecto de la instancia. En la salida del comando, busca los siguientes campos.

  • databaseVersion: el valor debe ser MYSQL_8_0
  • databaseInstalledVersion: el valor debe ser una versión secundaria igual o superior a MYSQL_8_0_35.

Actualización manual

En esta sección se describe cómo actualizar manualmente la versión secundaria de una instancia de Cloud SQL para MySQL 8.0. Si usas una versión de Cloud SQL para MySQL 8.0.34 o anterior, debes actualizar manualmente la versión secundaria de Cloud SQL para MySQL.

Antes de actualizar a una nueva versión secundaria de MySQL 8.0, familiarízate con los cambios. Consulta las notas de la versión de MySQL 8.0. Si usas Cloud SQL para MySQL 5.6 o 5.7, Cloud SQL gestiona automáticamente la versión secundaria de tu instancia. Cuando aprovisionas una instancia nueva, Cloud SQL la configura automáticamente con la versión de base de datos más reciente disponible. Durante el mantenimiento rutinario, Cloud SQL actualiza automáticamente tu instancia a la versión compatible más reciente.

Para actualizar la versión secundaria de la base de datos de tu instancia de MySQL 8.0, debes actualizar la instancia con la versión secundaria que prefieras, que debe ser posterior a la versión secundaria instalada. No puedes volver a una versión secundaria no especificada después de aprovisionar una instancia.

Si ejecutas una instancia de la edición Enterprise Plus de Cloud SQL, la actualización de la versión secundaria se completa con prácticamente ningún periodo de inactividad.

Antes de actualizar manualmente

Cloud SQL admite la actualización de la versión secundaria de las instancias de MySQL 8.0. MySQL 8.0 no permite versiones anteriores. Por lo tanto, antes de actualizar tu instancia principal, sigue estos pasos para asegurarte de que tus datos están protegidos.

  1. Elige la versión secundaria de destino de la base de datos.

    gcloud

    Para obtener información sobre cómo instalar y empezar a usar gcloud CLI, consulta el artículo Instalar gcloud CLI. Para obtener información sobre cómo iniciar Cloud Shell, consulta el artículo Usar Cloud Shell.

    Para comprobar qué versiones secundarias de la base de datos están disponibles para una actualización in situ, haz lo siguiente:

    1. Ejecuta el siguiente comando:
    2. gcloud sql instances describe INSTANCE_NAME
         

      Sustituye INSTANCE_NAME por el nombre de la instancia.

    3. En la salida del comando, busca la sección etiquetada como upgradableDatabaseVersions.
    4. Cada subsección devuelve una versión de la base de datos que se puede actualizar. En cada subsección, revisa el siguiente campo.
      • name: cadena de la versión de la base de datos que incluye la versión principal y secundaria de la base de datos a la que puedes orientar la actualización in situ de la versión secundaria de Cloud SQL para MySQL.

    REST v1

    Para comprobar qué versiones secundarias de la base de datos están disponibles para una actualización in situ, usa el método instances.get de la API Admin de Cloud SQL.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • INSTANCE_NAME: nombre de la instancia.

    Método HTTP y URL:

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

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

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

    REST v1beta4

    Para comprobar qué versiones secundarias de la base de datos están disponibles para una actualización in situ, usa el método instances.get de la API Admin de Cloud SQL.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • INSTANCE_NAME: nombre de la instancia.

    Método HTTP y URL:

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

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

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

    Para ver la lista completa de las versiones de la base de datos que admite Cloud SQL, consulta Versiones de la base de datos y políticas de versiones.

  2. Prueba la actualización en un entorno de staging.

    1. Crea un clon de tu instancia de producción para que sirva como instancia de staging. De esta forma, se crea una instancia de base de datos con las mismas versiones principal y secundaria.

    2. Realiza una actualización de versión secundaria en la instancia de staging.

    3. Ejecuta pruebas de carga de trabajo para verificar que la actualización se ha realizado correctamente y que tu aplicación funciona como se espera. Si las pruebas se realizan correctamente, actualiza tus instancias de réplica de lectura.

  3. Actualiza tus instancias de réplica de lectura.

    1. Actualiza todas las réplicas de lectura de la base de datos a la versión secundaria de destino.

    2. Verifica que tu aplicación funciona correctamente.

  4. Crea una copia de seguridad de tu instancia principal.

    Al igual que con cualquier actualización importante de la base de datos, haz una copia de seguridad de tu instancia principal.

Actualizar la versión secundaria

Puede especificar la versión secundaria de la base de datos de una instancia ya creada mediante gcloud o la API REST. Realiza las actualizaciones de versiones secundarias cuando la base de datos no esté en uso. Si tu instancia requiere un reinicio, como resultado, tu instancia experimentará un tiempo de inactividad. Las instancias de la edición Enterprise Plus de Cloud SQL experimentan un tiempo de inactividad prácticamente nulo. Si la versión instalada es posterior a la solicitada, se rechaza la solicitud.

gcloud

Usa el comando gcloud sql instances patch con la marca --database-version.

Sustituye las siguientes variables antes de ejecutar el comando:

  • INSTANCE_NAME: el nombre de la instancia.
  • DATABASE_VERSION: la versión de la base de datos de la instancia. Si no especificas esta marca, se usará la versión principal predeterminada.
gcloud sql instances patch INSTANCE_NAME \
   --database-version=DATABASE_VERSION

REST v1

Usa una solicitud PATCH con el método instances:patch y la marca databaseVersion.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia.
  • DATABASE_VERSION: la versión de la base de datos a la que se va a actualizar.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "databaseVersion": "DATABASE_VERSION"
}

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Usa una solicitud PATCH con el método instances:patch y la marca databaseVersion.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia.
  • DATABASE_VERSION: la versión de la base de datos a la que se va a actualizar.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "databaseVersion": "DATABASE_VERSION"
}

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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"
}

Comprobar la versión secundaria instalada de la base de datos

Cuando consultes la información de resumen de la instancia, verás la versión secundaria instalada de la base de datos en la sección Configuración.

Restaurar una versión anterior

Mientras pruebas una actualización, si detectas algún problema, puede que quieras restaurar tu base de datos para recuperar la instancia de base de datos que ejecuta la versión secundaria anterior.

Para restaurar una copia de seguridad anterior a la actualización, sigue estos pasos:

  1. Provisiona una instancia de base de datos de recuperación en la versión secundaria anterior.
  2. Configura los ajustes de la instancia de la base de datos de recuperación en el estado previo a la actualización.
  3. Restaura la copia de seguridad que hiciste antes de la actualización en la instancia de recuperación.

Como alternativa a la restauración de una copia de seguridad, realiza una recuperación a un momento dado y crea una instancia.