En esta página se describe el mantenimiento de autoservicio, que te permite aceptar una actualización de mantenimiento en tu instancia fuera del flujo normal del mantenimiento programado.
Información general
Cloud SQL lanza periódicamente mejoras de software, como parches para vulnerabilidades conocidas, a través de nuevas versiones de mantenimiento. Aunque Cloud SQL programa actualizaciones de mantenimiento cada pocos meses para asegurarse de que tienes la última versión de mantenimiento, puede que quieras usar el mantenimiento de autoservicio si:
- Necesitas una actualización antes de la próxima actualización de mantenimiento programada.
- Quieres ponerte al día con la versión de mantenimiento más reciente después de saltarte el evento de mantenimiento programado más reciente.
No es necesario que actualices manualmente a la versión más reciente. Puedes dejar que Cloud SQL actualice automáticamente tu versión de mantenimiento durante el próximo evento de mantenimiento programado.
Gestionar el mantenimiento de todas las réplicas de lectura de una instancia principal
Cuando realizas un mantenimiento de autoservicio en una instancia principal que tiene réplicas de lectura, Cloud SQL aplica automáticamente la actualización de mantenimiento a todas sus réplicas de lectura. Si tienes más de tres instancias de réplica de lectura, las instancias se dividen en grupos y se actualizan en paralelo. Como paso final, la actualización de mantenimiento se aplica a la instancia principal.
Si es necesario, puedes seguir realizando el mantenimiento de autoservicio en una sola réplica de lectura. Sin embargo, para asegurarte de que todas las instancias de réplica de lectura y la instancia principal funcionen con la misma versión de mantenimiento, te recomendamos que realices el mantenimiento de autoservicio en todas las réplicas de lectura de una instancia principal al mismo tiempo.
Para actualizar una sola instancia de réplica de lectura, especifícala cuando realices el mantenimiento de autoservicio.
Antes de empezar
Antes de realizar el mantenimiento de autoservicio, comprueba la versión de mantenimiento actual. A continuación, puedes determinar la versión de mantenimiento de destino a la que quieres actualizar y actualizar la instancia a esa versión. Si usas réplicas de lectura, actualiza todas las réplicas de lectura de la instancia principal a esa versión.
Para ver la versión de mantenimiento actual de una instancia, sigue este procedimiento:
gcloud
Antes de ejecutar el siguiente comando gcloud
, haz la siguiente sustitución:
- INSTANCE_ID: la instancia que se va a consultar.
gcloud sql instances describe INSTANCE_ID
La versión de mantenimiento instalada en la instancia se indica
junto al atributo maintenanceVersion
.
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
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:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0" }
Busca el elemento maintenanceVersion
en la sección DatabaseInstance
de la respuesta.
REST v1beta4
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
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:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0" }
Busca el elemento maintenanceVersion
en la sección DatabaseInstance
de la respuesta.
Determinar la versión de mantenimiento de destino
Sigue este método para ver las versiones de mantenimiento que puedes seleccionar como objetivo. No puedes actualizar a una versión anterior a la versión de mantenimiento actual.
gcloud
Antes de ejecutar el siguiente comando gcloud
, haz la siguiente sustitución:
- INSTANCE_ID: la instancia que se va a consultar.
gcloud sql instances describe INSTANCE_ID
La versión de mantenimiento disponible se indica junto al atributo availableMaintenanceVersions
.
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
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:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0" }
Busca el elemento availableMaintenanceVersions
en la sección DatabaseInstance
de la respuesta.
REST v1beta4
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
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:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0" }
Busca el elemento availableMaintenanceVersions
en la sección DatabaseInstance
de la respuesta.
Actualizar todas las réplicas de lectura de una instancia principal a la versión de mantenimiento de destino
Para realizar una actualización de mantenimiento en todas las instancias de réplica de lectura de una instancia principal, sigue este procedimiento.
gcloud
Antes de usar el siguiente comando gcloud
, haz la siguiente sustitución:
- PRIMARY_INSTANCE_ID: ID de la instancia principal.
- MAINTENANCE_VERSION: la versión de mantenimiento de Cloud SQL que se va a aplicar.
gcloud sql instances patch PRIMARY_INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Cuando se te pida que confirmes la acción, escribe Y
para continuar o N
para cancelar.
Si seleccionas Y
, el proceso de actualización aplicará la versión de mantenimiento especificada a todas las réplicas de lectura primero y, después, actualizará la instancia principal. Se omitirán las instancias de réplica de lectura que ya se hayan actualizado a la versión de mantenimiento de destino.
Si seleccionas N
, no se actualizará ninguna instancia.
Una vez que se hayan actualizado las réplicas de lectura y la instancia principal, aparecerá un mensaje similar al siguiente:
Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID]
Terraform
Para crear una instancia, usa un recurso de Terraform.
Aplica los cambios
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
Eliminar los cambios
Para eliminar los cambios, sigue estos pasos:
- Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor
false
al argumentodeletion_protection
.deletion_protection = "false"
- Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
-
Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce
yes
en la petición:terraform destroy
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto
- PROJECT_ID: el ID de instancia de la instancia principal
- MAINTENANCE_VERSION: versión de mantenimiento del software de Cloud SQL que se va a aplicar.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "maintenanceVersion": "MAINTENANCE_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": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto
- INSTANCE_ID: el ID de instancia de la instancia principal
- MAINTENANCE_VERSION: versión de mantenimiento del software de Cloud SQL que se va a aplicar.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "maintenanceVersion": "MAINTENANCE_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": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Actualizar una sola instancia a la versión de mantenimiento de destino
Para realizar una actualización de mantenimiento en una sola instancia, sigue este procedimiento. Si es necesario, puedes usar este procedimiento para actualizar una sola instancia de réplica de lectura.
gcloud
Antes de usar el siguiente comando gcloud
, haz los siguientes cambios:
- INSTANCE_ID: el ID de la instancia. Esta instancia puede ser una instancia de réplica de lectura.
- MAINTENANCE_VERSION: la versión de mantenimiento de Cloud SQL que se va a aplicar.
gcloud sql instances patch INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Si especificas una réplica de lectura, aparecerá una solicitud de confirmación. Escribe Y
para continuar o N
para cancelar.
- Si seleccionas
Y
, el proceso de actualización aplica la versión de mantenimiento especificada solo a la réplica de lectura especificada. - Si seleccionas
N
, no se actualizará ninguna instancia.
Cuando se complete la actualización de la instancia, aparecerá un mensaje similar al siguiente:
Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID]
Terraform
Para crear una instancia, usa un recurso de Terraform.
Aplica los cambios
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
Eliminar los cambios
Para eliminar los cambios, sigue estos pasos:
- Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor
false
al argumentodeletion_protection
.deletion_protection = "false"
- Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
-
Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce
yes
en la petición:terraform destroy
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto
- PROJECT_ID: el ID de instancia, que puede ser una instancia de réplica de lectura
- MAINTENANCE_VERSION: versión de mantenimiento del software de Cloud SQL que se va a aplicar.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "maintenanceVersion": "MAINTENANCE_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": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto
- INSTANCE_ID: el ID de instancia, que puede ser una instancia de réplica de lectura
- MAINTENANCE_VERSION: versión de mantenimiento del software de Cloud SQL que se va a aplicar.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "maintenanceVersion": "MAINTENANCE_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": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Solucionar problemas
Problema | Solución de problemas |
---|---|
No se puede aplicar una actualización de mantenimiento a una instancia detenida. | Para solucionar este problema, inicia la instancia antes de realizar la actualización de mantenimiento de autoservicio. |
Debido a una diferencia en la versión principal de la base de datos, no se ha podido realizar la actualización de mantenimiento. | No puedes usar el mantenimiento de autoservicio para actualizar la versión principal de la base de datos de una instancia. Para actualizar la versión principal de una instancia, siga uno de los procedimientos que se indican a continuación: |
No se ha podido realizar la actualización de mantenimiento debido a una diferencia en la versión secundaria de la base de datos. | No puedes usar el mantenimiento de autoservicio para actualizar la versión secundaria de la base de datos de una instancia. Para actualizar la versión secundaria de una instancia, sigue los pasos que se indican en Actualizar la versión secundaria de la base de datos. |
Siguientes pasos
- Consulta los registros de operaciones de instancias.
- Consulta las preguntas frecuentes sobre el mantenimiento.
- Consulta más información sobre la replicación en Cloud SQL.