En esta página, se describe el mantenimiento de autoservicio, que te permite aceptar una actualización de mantenimiento en la instancia fuera del flujo normal de mantenimiento programado.
Descripción general
Cloud SQL lanza con regularidad mejoras de software, como parches para vulnerabilidades conocidas, a través de versiones de mantenimiento nuevas. Si bien Cloud SQL programa actualizaciones de mantenimiento una vez cada varios meses para garantizar que tengas la versión de mantenimiento más reciente, puedes usar el mantenimiento de autoservicio si se cumplen las siguientes condiciones:
- Necesitas actualizar antes del próximo evento de mantenimiento programado.
- Quieres mantenerte al día con la última versión de mantenimiento después de omitir el evento de mantenimiento programado más reciente.
No es necesario que actualices de forma manual a la versión más reciente. Puedes permitir que Cloud SQL actualice de forma automática la versión de mantenimiento durante el siguiente evento de mantenimiento programado.
Administra el mantenimiento de todas las réplicas de lectura de una instancia principal
Cuando realizas el mantenimiento de autoservicio en una instancia principal que tiene réplicas de lectura, Cloud SQL aplica de forma automática 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, aún puedes realizar 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 operen en la misma versión de mantenimiento, te recomendamos que realices un mantenimiento de autoservicio en todas las réplicas de lectura de la instancia principal al mismo tiempo.
Para actualizar una sola instancia de réplica de lectura, especifica esa instancia cuando realices el mantenimiento de autoservicio.
Antes de comenzar
Antes de realizar el mantenimiento de autoservicio, primero verifica tu versión de mantenimiento actual. Luego, puedes determinar la versión de mantenimiento objetivo a la que deseas 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, usa el siguiente procedimiento:
gcloud
Antes de ejecutar el siguiente comando gcloud
, realiza el siguiente reemplazo:
- INSTANCE_ID: la instancia que se consulta
gcloud sql instances describe INSTANCE_ID
Se indica la versión de mantenimiento que se instala en la instancia
junto al atributo maintenanceVersion
.
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Busca el elemento maintenanceVersion
en la sección DatabaseInstance
de la respuesta.
REST v1beta4
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Busca el elemento maintenanceVersion
en la sección DatabaseInstance
de la respuesta.
Determina la versión de mantenimiento objetivo
Usa el siguiente método para ver las versiones de mantenimiento que puedes seleccionar como destino. No puedes actualizar a una versión anterior a la versión de mantenimiento actual.
gcloud
Antes de ejecutar el siguiente comando gcloud
, realiza el siguiente reemplazo:
- INSTANCE_ID: la instancia que se consulta
gcloud sql instances describe INSTANCE_ID
La versión de mantenimiento disponible se indica junto al atributo availableMaintenanceVersions
.
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Busca el elemento availableMaintenanceVersions
en la sección DatabaseInstance
de la respuesta.
REST v1beta4
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Busca el elemento availableMaintenanceVersions
en la sección DatabaseInstance
de la respuesta.
Actualiza todas las réplicas de lectura de una instancia principal a la versión de mantenimiento objetivo
Para realizar una actualización de mantenimiento en todas las instancias de réplica de lectura de una instancia principal, usa el siguiente procedimiento.
gcloud
Antes de ejecutar el siguiente comando gcloud
, realiza los siguientes reemplazos:
- PRIMARY_INSTANCE_ID: Es el ID de la instancia principal.
- MAINTENANCE_VERSION: Es la versión del mantenimiento de Cloud SQL que se aplicará.
gcloud sql instances patch PRIMARY_INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Cuando se te solicite confirmación, escribe Y
para continuar o N
para cancelar.
Si seleccionas Y
, el proceso de actualización aplicará la
la versión de mantenimiento especificada en todas las réplicas de lectura antes de actualizar
la instancia principal. Se omiten todas 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 actualiza ninguna instancia.
Una vez que se complete la actualización de 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 tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara 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 dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Borra los cambios
Para borrar tus cambios, haz lo siguiente:
- Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform apply
-
Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform destroy
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID del proyecto
- PROJECT_ID: El ID de la instancia principal.
- MAINTENANCE_VERSION: La versión del mantenimiento del software de Cloud SQL que se aplicará
HTTP method and 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID del proyecto
- INSTANCE_ID: El ID de la instancia principal.
- MAINTENANCE_VERSION: La versión del mantenimiento del software de Cloud SQL que se aplicará
HTTP method and 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" }
Actualiza una sola instancia a la versión de mantenimiento objetivo
Para realizar una actualización de mantenimiento en una sola instancia, usa el siguiente procedimiento. Si es necesario, puedes usar este procedimiento para actualizar una sola instancia de réplica de lectura.
gcloud
Antes de ejecutar el siguiente comando gcloud
, realiza los siguientes reemplazos:
- INSTANCE_ID: El ID de la instancia. Esta instancia puede ser de réplica de lectura.
- MAINTENANCE_VERSION: Es la versión del mantenimiento de Cloud SQL que se aplicará.
gcloud sql instances patch INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Si especificas una réplica de lectura, aparecerá un mensaje 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 actualiza ninguna instancia.
Cuando finalice 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 tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara 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 dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Borra los cambios
Para borrar tus cambios, haz lo siguiente:
- Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform apply
-
Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform destroy
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID del proyecto
- PROJECT_ID: El ID de la instancia, que puede ser una instancia de réplica de lectura
- MAINTENANCE_VERSION: La versión del mantenimiento del software de Cloud SQL que se aplicará
HTTP method and 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID del proyecto
- INSTANCE_ID: El ID de la instancia, que puede ser una instancia de réplica de lectura
- MAINTENANCE_VERSION: La versión del mantenimiento del software de Cloud SQL que se aplicará
HTTP method and 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 | Soluciona problemas |
---|---|
No se puede aplicar la actualización de mantenimiento a una instancia detenida. | Para resolver 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, la actualización de mantenimiento falló. | 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, usa uno de los siguientes procedimientos: |
¿Qué sigue?
- Consulta los registros de operaciones de instancias.
- Lee las Preguntas frecuentes de mantenimiento.
- Obtén más información sobre la replicación en Cloud SQL.