Solución de problemas

Comprueba si tu pregunta o problema ya se abordó en una de las siguientes páginas:

Dentro de los temas que se tratan en esta página, se incluyen los siguientes:

Copia de seguridad y recuperación

Problema Soluciona problemas
No puedes ver el estado de la operación actual. La consola de Google Cloud solo informa si la operación se realizó de forma correcta o si falló. No está diseñado para mostrar advertencias ni otras actualizaciones.

Ejecuta el comando gcloud sql operations list para enumerar todas las operaciones de la instancia de Cloud SQL determinada.

Quieres averiguar quién inició una operación de copia de seguridad bajo demanda. La interfaz de usuario no muestra el usuario que inició una operación.

Busca en los registros y filtra por texto para encontrar al usuario. Es posible que debas usar registros de auditoría para obtener información privada. Los archivos de registro relevantes incluyen lo siguiente:

  • cloudsql.googlapis.com/mysql-general.log
  • cloudsql.googleapis.com/mysql.err
  • Si Registros de auditoría de Cloud está habilitado y tienes los permisos necesarios para verlo, es posible que cloudaudit.googleapis.com/activity también esté disponible.
Después de borrar una instancia, no puedes realizar una copia de seguridad de ella.

Una vez que una instancia se borra definitivamente, no es posible la recuperación de datos. Sin embargo, si se restablece la instancia, también se restablecen sus copias de seguridad. Para obtener más información sobre cómo recuperar una instancia borrada, consulta Copias de seguridad de recuperación.

Si realizaste una operación de exportación, puedes crear una instancia nueva y, luego, realizar una operación de importación para volver a crear la base de datos. Las exportaciones se escriben en Cloud Storage y las importaciones se leen desde allí.

La copia de seguridad automática se interrumpe durante muchas horas y no se puede cancelar. Las copias de seguridad pueden llevar mucho tiempo según el tamaño de la base de datos.

Si en verdad necesitas cancelar la operación, puedes pedirle a la asistencia al cliente que realice una operación de force restart para la instancia.

Una operación de restablecimiento puede fallar cuando uno o más usuarios a los que se hace referencia en el archivo de volcado de SQL no existen. Antes de restablecer un archivo de volcado de SQL, todos los usuarios de la base de datos que poseen objetos o que recibieron permisos sobre los objetos en la base de datos de volcado deben existir en la base de datos de destino. Si este no es el caso, la operación de restablecimiento no puede volver a crear los objetos con la propiedad o los permisos originales.

Crea los usuarios de la base de datos antes de restablecer el archivo de volcado de SQL.

En la actualidad, puedes conservar las copias de seguridad automáticas durante siete días, pero quieres aumentar esa cantidad de días a 30 o más. Puedes configurar la cantidad de copias de seguridad automáticas que se conservarán, de 1 a 365. Las copias de seguridad automáticas se reducen con regularidad según el valor de retención configurado. Por desgracia, esto significa que solo puedes restablecer instancias a partir de las copias de seguridad automáticas que ves en la actualidad.

Si deseas conservar las copias de seguridad de forma indefinida, puedes crear una copia de seguridad a pedido, ya que no se borran de la misma manera que las copias de seguridad automáticas. Las copias de seguridad bajo demanda permanecen de forma indefinida. Es decir, permanecen hasta que se borran o se borra la instancia a la que pertenecen. Debido a que ese tipo de copia de seguridad no se borra de forma automática, es posible que afecte la facturación.

Se produjo un error en la copia de seguridad automática y no recibiste ninguna notificación por correo electrónico. Para que Cloud SQL te notifique sobre el estado de la copia de seguridad, configura una alerta basada en registros.

Cancela la importación y exportación

Problema Soluciona problemas
Mensaje de error: You can't cancel operation [operation-ID] because this operation isn't in progress.

Intentas cancelar una operación de importación o exportación que se completó, falló o canceló. Si la operación se está ejecutando, puedes cancelarla.

Mensaje de error: You can't cancel operation [operation-ID] because Cloud SQL doesn't support the cancellation of an [operation-type] operation.

Cloud SQL no admite la cancelación de la operación porque tiene un tipo de operación que no sea IMPORT ni EXPORT.

Mensaje de error: The [operation-type] operation isn't cancelled. Wait and retry in a few seconds.

En este momento, Cloud SQL no puede cancelar la operación de importación o exportación. Vuelve a intentarlo en unos segundos. Si el problema persiste, comunícate con la asistencia de Google Cloud.

Clonar

Problema Soluciona problemas
Si la clonación falla, se muestra el error constraints/sql.restrictAuthorizedNetworks. La configuración Authorized Networks bloquea la operación de clonación. Las Authorized Networks están configuradas para direcciones IP públicas en la sección Conectividad de la consola de Google Cloud, y la clonación no está permitida debido a consideraciones de seguridad.

Si puedes, quita todas las entradas de Authorized Networks de la instancia de Cloud SQL. De lo contrario, crea una réplica sin ninguna entrada de Authorized Networks.

Mensaje de error: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Help Token: [help-token-id].

Estás tratando de usar la consola de Google Cloud para clonar una instancia con una dirección IP privada, pero no especificaste el rango de IP asignado que deseas usar y la instancia de origen no se crea en el rango especificado. Como resultado, la instancia clonada se crea en un rango aleatorio.

Usa gcloud a fin de clonar la instancia y proporcionar un valor para el parámetro
--allocated-ip-range-name. Para obtener más información, consulta Clona una instancia con una IP privada.

Conectar

Problema Soluciona problemas
Aborted connection. Posible problema:
  • Hay inestabilidad en las herramientas de redes.
  • No hay respuesta a los comandos keep-alive de TCP (el cliente o el servidor no responden, es posible que estén sobrecargados).
  • Se excedió el ciclo de vida de la conexión del motor de base de datos y el servidor finalizó la conexión.

Las aplicaciones deben tolerar fallas de red y seguir prácticas recomendadas, como la agrupación de conexiones y los reintentos. La mayoría de los agrupadores de conexiones detectan estos errores siempre que sea posible. De lo contrario, la aplicación debe reintentar o fallar de manera controlada.

Para los reintentos de conexión, recomendamos los siguientes métodos:

  1. Retirada exponencial Aumenta el intervalo de tiempo entre cada reintento de manera exponencial.
  2. Agrega una retirada aleatoria.

La combinación de estos métodos ayuda a reducir la limitación.

Certificate verify failed.

Los certificados de cliente vencieron o la ruta a los certificados no es correcta.

Para volver a generar los certificados, vuelve a crearlos.

Crea instancias

Problema Soluciona problemas
Mensaje de error: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. No hay más direcciones disponibles en el rango de IP asignado. Puede haber varias situaciones posibles:

  • El tamaño del rango de IP asignado para la conexión privada a servicios es menor que /24.
  • El tamaño del rango de IP asignado para la conexión privada a servicios es demasiado pequeño para la cantidad de instancias de Cloud SQL.
  • El requisito de tamaño del rango de IP asignado será mayor si las instancias se crean en varias regiones. Consulta Tamaño del rango asignado

Para resolver este problema, puedes expandir el rango de IP asignado existente o asignar un rango de IP adicional a la conexión privada a servicios. Para obtener más información, consulta Asigna un rango de direcciones IP.

Si usaste la marca --allocated-ip-range-name mientras creaste la instancia de Cloud SQL, solo puedes expandir el rango de IP especificado.

Si asignas un nuevo rango, ten cuidado de no crear una asignación que se superponga con cualquier asignación existente.

Después de crear un nuevo rango de IP, actualiza el intercambio de tráfico de VPC con el siguiente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Si expandes una asignación existente, asegúrate de aumentar solo el rango de asignación y no disminuirlo. Por ejemplo, si la asignación original era 10.0.10.0/24, realiza la nueva asignación de 10.0.10.0/23 como mínimo.

En general, si empiezas desde una asignación /24, disminuir la /mask en 1 para cada condición (grupo adicional de tipos de instancias, región adicional) es una buena regla general. Por ejemplo, si intentas crear ambos grupos de tipos de instancias en la misma asignación, pasar de /24 a /23 es suficiente.

Después de expandir un rango de IP existente, actualiza el intercambio de tráfico de VPC con el siguiente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Mensaje de error: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Vuelve a crear la instancia de Cloud SQL.
Mensaje de error: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID. Cuando creas una instancia mediante una dirección IP privada, se crea una cuenta de servicio a tiempo con la API de Service Networking. Si solo habilitaste recientemente la API de Service Networking, es posible que la cuenta de servicio no se cree y la creación de la instancia falle. En este caso, debes esperar a que la cuenta de servicio se propague en todo el sistema o agregarla de forma manual con los permisos necesarios.

Exportar

Problema Soluciona problemas
HTTP Error 409: Operation failed because another operation was already in progress. Ya existe una operación pendiente para la instancia. Solo se permite una operación a la vez. Prueba tu solicitud después de que se complete la operación actual.
HTTP Error 403: The service account does not have the required permissions for the bucket. Asegúrate de que el bucket exista y que la cuenta de servicio de la instancia de Cloud SQL (que realiza la exportación) tenga el rol Storage Object Creator (roles/storage.objectCreator) para permitir la exportación al bucket. Consulta Roles de IAM para Cloud Storage.
La exportación de archivos CSV se completó, pero la exportación de SQL falló. Los formatos CSV y SQL se exportan de manera diferente. El formato SQL exporta la base de datos completa, y es probable que esta operación tome más tiempo para completarse. El formato CSV te permite definir qué elementos de la base de datos incluir en la exportación.

Usa las exportaciones de archivos CSV para exportar solo lo que necesites.

La exportación está tomando demasiado tiempo. Cloud SQL no admite operaciones síncronas simultáneas.

Usa la descarga de exportación. En un nivel alto, en la descarga de exportación, en lugar de emitir una exportación en la instancia de origen, Cloud SQL inicia una instancia de descarga para realizar la exportación. La descarga de la exportación tiene varias ventajas, como el aumento del rendimiento en la instancia de origen y el bloqueo de las operaciones administrativas mientras se ejecuta la exportación. Con la descarga de la exportación, la latencia total puede aumentar en función del tiempo que lleva activar la instancia de descarga. Por lo general, para exportaciones con un tamaño razonable, la latencia no es significativa. Sin embargo, si la exportación es lo suficientemente pequeña, es posible que notes un aumento en la latencia.

Deseas que las exportaciones sean automáticas. Cloud SQL no proporciona una forma de automatizar las exportaciones.

Podrías compilar tu propio sistema de exportación automatizado mediante el uso de productos de Google Cloud, como Cloud Scheduler, Pub/Sub y funciones de Cloud Run, similar a este artículo sobre cómo automatizar las copias de seguridad.

Instancia principal externa

Problema Soluciona problemas
Lost connection to MySQL server during query when dumping table. Es posible que el origen haya dejado de estar disponible o que el volcado contenga paquetes demasiado grandes.

Asegúrate de que la instancia principal externa esté disponible para conectarse. También puedes modificar los valores de las marcas net_read_timeout y net_write_timeout en la instancia de origen para detener el error. Para obtener más información sobre los valores permitidos para estas marcas, consulta Configura marcas de base de datos.

Si deseas obtener más información sobre el uso de marcas de mysqldump para la migración de importaciones administradas, consulta Marcas de sincronización iniciales permitidas y predeterminadas.

La migración inicial de los datos se realizó de forma correcta, pero no se están replicando los datos. Una causa raíz podría ser que la base de datos de origen haya definido marcas de replicación que den como resultado que no se repliquen algunos o todos los cambios de la base de datos.

Asegúrate de que las marcas de replicación, como binlog-do-db, binlog-ignore-db, replicate-do-db o replicate-ignore-db, no estén configuradas de manera conflictiva.

Ejecuta el comando show master status en la instancia principal para ver la configuración actual.

La migración inicial de los datos se realizó de forma correcta, pero la réplica de datos dejó de funcionar después de un tiempo. Solución:

  • Verifica las métricas de réplica para la instancia de réplica en la sección Cloud Monitoring de la consola de Google Cloud.
  • Los errores del subproceso de IO de MySQL o el de SQL se pueden encontrar en Cloud Logging en los archivos mysql.err log.
  • El error también se puede encontrar cuando te conectas a la instancia de réplica. Ejecuta el comando SHOW SLAVE STATUS y verifica los siguientes campos en el resultado:
    • Slave_IO_Running
    • Slave_SQL_Running
    • Last_IO_Error
    • Last_SQL_Error
mysqld check failed: data disk is full. El disco de datos de la instancia de réplica está lleno.

Aumenta el tamaño del disco de la instancia de réplica. Puedes aumentar el tamaño del disco de forma manual o habilitar el aumento de almacenamiento automático.

Réplica externa

Problema Soluciona problemas
Mensaje de error: The slave is connecting ... master has purged binary logs containing GTIDs that the slave requires. La instancia principal de Cloud SQL tiene copias de seguridad automáticas y registros binarios, y está habilitada la recuperación de un momento determinado, por lo que debería tener suficientes registros para que la réplica pueda ponerse al día. Sin embargo, en este caso, a pesar de que existen los registros binarios, la réplica no sabe desde qué fila debe comenzar a leer.

Crea un nuevo archivo de volcado con la configuración correcta de la marca y configura la réplica externa con ese archivo

  1. Conéctate a tu cliente MySQL a través de una instancia de Compute Engine.
  2. Ejecuta mysqldump y usa las marcas --master-data=1 y --flush-privileges.

    Importante: No incluyas la marca --set-gtid-purged=OFF.

    Obtén más información

  3. Asegúrate de que el archivo de volcado que se creó contenga la línea SET @@GLOBAL.GTID_PURGED='...'.
  4. Sube el archivo de volcado a un bucket de Cloud Storage y configura la réplica con el archivo de volcado.

Marcas

Problema Soluciona problemas
Después de habilitar una marca, la instancia ejecuta bucles de fallas. Comunícate con la asistencia al cliente para solicitar la eliminación de una marca seguida de una operación de hard drain. Esto obliga a la instancia a reiniciarse en un host diferente con una configuración nueva, sin la marca ni la configuración no deseadas.
Verás el mensaje de error Bad syntax for dict arg cuando intentes configurar una marca. Los valores de los parámetros complejos, como las listas separadas por comas, requieren un tratamiento especial cuando se usan con comandos de gcloud.

Alta disponibilidad

Problema Soluciona problemas
No puedes encontrar las métricas de una conmutación por error manual. Solo las conmutaciones por error automáticas se incluyen en las métricas.
Los recursos de la instancia de Cloud SQL (CPU y RAM) tienen un uso de alrededor del 100%, lo que hace que se interrumpa el funcionamiento de la instancia con alta disponibilidad. El tamaño de la máquina de la instancia es demasiado pequeño para la carga.

Edita la instancia para actualizarla a un tamaño de máquina más grande y obtener más CPU y memoria.

Importar

Problema Soluciona problemas
HTTP Error 409: Operation failed because another operation was already in progress. Ya existe una operación pendiente para la instancia. Solo se permite una operación a la vez. Prueba tu solicitud después de que se complete la operación actual.
La operación de importación está tomando demasiado tiempo. Hay demasiadas conexiones activas que pueden interferir en las operaciones de importación.

Cierra las operaciones sin usar. Verifica el uso de CPU y memoria de la instancia de Cloud SQL para asegurarte de que haya muchos recursos disponibles. La mejor manera de garantizar la cantidad máxima de recursos para la importación es reiniciar la instancia antes de comenzar la operación.

Cuando se realiza un reinicio, sucede lo siguiente:

  • Se cierran todas las conexiones.
  • Finaliza cualquier tarea que pueda consumir recursos.
Una operación de importación puede fallar cuando uno o más usuarios a los que se hace referencia en el archivo de volcado no existen. Antes de importar un archivo de volcado, todos los usuarios de la base de datos que poseen objetos o que recibieron permisos sobre los objetos en la base de datos de volcado deben existir en la base de datos de destino. Si este no es el caso, la operación de importación no puede volver a crear los objetos con la propiedad o los permisos originales.

Crea los usuarios de la base de datos antes de realizar la importación.

Una operación de importación falla y se muestra un error que indica que una tabla no existe. Las tablas pueden tener dependencias de clave externa en otras tablas y, según el orden de las operaciones, es posible que una o más de esas tablas aún no existan durante la operación de importación.

Solución:

Agrega la siguiente línea al comienzo del archivo de volcado:

SET FOREIGN_KEY_CHECKS=0;
  

Además, agrega esta línea al final del archivo de volcado:

SET FOREIGN_KEY_CHECKS=1;
  

Por medio de configuración, se desactivan las verificaciones de integridad de los datos mientras la operación de importación está en curso y se las vuelve a activar después de que se cargan los datos. Esto no afecta la integridad de los datos en la base de datos, ya que se validaron durante la creación del archivo de volcado.

Logging

Problema Soluciona problemas
No se encuentran los registros de auditoría. Los registros de acceso a datos solo se escriben si la operación es una llamada a la API controlada por el usuario y autenticada que crea, modifica o lee datos creados por el usuario, o si la operación accede a metadatos o archivos de configuración de recursos.
No se encontró información de operaciones en los registros. Deseas encontrar más información sobre una operación.

Por ejemplo, se borró un usuario, pero no puedes averiguar quién lo hizo. Los registros muestran que la operación inició, pero no proporcionan más información. Debes habilitar el registro de auditoría para que se registre este tipo de información de identificación personal (PII) detallada.

El registro usa mucho espacio en disco. Hay tres tipos de archivos de registro que usan espacio en disco: registros de rehacer, registros generales y registros binarios.

Conéctate a la base de datos y ejecuta estos comandos para obtener detalles sobre cada tipo:

SHOW VARIABLES LIKE 'innodb_log_file%';

SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2),2)
AS GB from mysql.general_log;

SHOW BINARY LOGS;
    
Los archivos de registro son difíciles de leer Prefieres ver los registros en formato JSON o de texto: puedes usar el comando gcloud logging read junto con los comandos de procesamiento posterior de Linux para descargar los registros.

Para descargar los registros en formato JSON, sigue estos pasos:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

Para descargar los registros como TEXT, sigue estos pasos:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
--order=asc
> downloaded-log.txt
   

Administrar instancias

Problema Soluciona problemas
Rendimiento lento después de reiniciar MySQL. Cloud SQL permite el almacenamiento en caché de datos en el grupo de búferes de InnoDB. Sin embargo, después de un reinicio, esta caché siempre está vacía, y todas las lecturas requieren un recorrido de ida y vuelta al backend para obtener datos. Como resultado, las consultas pueden ser más lentas de lo esperado hasta que se llene la caché.
La recuperación ante fallas es lenta. Es posible que se haya acumulado un general_log de gran tamaño. Puedes evitar que se acumule un general_log de gran tamaño para reducir el tiempo de recuperación ante fallas. Si tienes la opción general_log activada, trunca la tabla y habilita general_log solo durante períodos breves.

Para averiguar el tamaño de los registros generales, conéctate a la base de datos y ejecuta esta consulta:

SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2)),2) from mysql.general_log;
Deseas averiguar qué está usando el almacenamiento. Por ejemplo, notaste que tu base de datos usa solo 3 Gb, pero el almacenamiento indica que se usan 14 Gb. Los registros binarios o los archivos temporales usan la mayor parte del espacio que no usan las tablas.

Solución:

  • Puedes verificar el almacenamiento ocupado por registros binarios mediante el siguiente comando en la interfaz de línea de comandos de MySQL: SHOW BINARY LOGS;
  • Las tablas temporales también pueden ocupar una cantidad significativa de espacio de almacenamiento. Para verificar el uso del espacio temporal, usa el siguiente comando: SELECT * FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME='innodb_temporary'\G.
  • Con el siguiente comando, podrás verificar el tamaño del registro de rehacer: SHOW VARIABLES LIKE 'innodb_log_file%';
  • Puedes comprobar el tamaño de general_log, si está habilitado, con la ayuda de este comando: SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2)),2) AS GB from mysql.general_log;
  • Si es necesario, puedes usar la API para truncar las tablas de registro. Para obtener más información, consulta la página de referencia de instances.truncateLog.
  • Obtén más información sobre cómo configurar y establecer los registros de consultas lentas.
Las consultas están bloqueadas. Es posible que las consultas bloqueen la base de datos de MySQL, lo que hace que todas las consultas posteriores se bloqueen o agoten el tiempo de espera.

Conéctate a la base de datos y ejecuta esta consulta:

SHOW PROCESSLIST.

El primer elemento de la lista puede ser el que está provocando el bloqueo, lo que mantiene en espera a los elementos posteriores.

La consulta SHOW INNODB STATUS también puede ser útil.

No puedes borrar de forma manual los registros binarios. Los registros binarios no se pueden borrar de forma manual. Los registros binarios y la copia automática de seguridad que se asocia a ellos se borran de manera automática. Por lo general, esto ocurre luego de siete días.
Deseas encontrar información sobre los archivos temporales. Se usa un archivo llamado ibtmp1 para almacenar datos temporales. Este archivo se restablece cuando se reinicia la base de datos. Para encontrar información sobre el uso de archivos temporales, conéctate a la base de datos y ejecuta la siguiente consulta:

SELECT * FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME='innodb_temporary'\G

Deseas obtener información sobre los tamaños de las tablas. Esta información está disponible en la base de datos.

Conéctate a la base de datos y ejecuta la siguiente consulta:

SELECT TABLE_SCHEMA, TABLE_NAME, sum(DATA_LENGTH+INDEX_LENGTH)/pow(1024,2) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA NOT IN ('PERFORMANCE_SCHEMA','INFORMATION_SCHEMA','SYS','MYSQL') GROUP BY TABLE_SCHEMA, TABLE_NAME;

mysqld recibió una señal 11. Intenta refactorizar las consultas para que no creen demasiadas conexiones. Si eso no resuelve el problema, comunícate con la asistencia al cliente. Por lo general, la señal 11 representa un problema del software de MySQL.

InnoDB: page_cleaner: 1000ms intended loop took 5215ms. The settings might not be optimal. El limpiador de la página no puede seguir el ritmo de la velocidad de cambio en la instancia. Una vez por segundo, el limpiador de la página analiza el grupo de búferes en busca de páginas sucias para enviar del grupo de búferes al disco. La advertencia muestra que tiene muchas páginas sucias que se van a enviar, y la limpieza de los lotes al disco está tomando más de un segundo.

Si es posible, fragmenta la instancia. Usar muchas instancias de Cloud SQL más pequeñas es mejor que una instancia grande.

El almacenamiento temporal aumentó el almacenamiento automático. El almacenamiento automático está habilitado.

El proceso de reinicio borra los archivos temporales, pero no reduce el almacenamiento. Solo la asistencia al cliente puede restablecer el tamaño de la instancia.

Los datos se borran de manera automática. Lo más probable es que se esté ejecutando una secuencia de comandos en algún lugar de tu entorno.

Revisa los registros correspondientes al momento de la eliminación y verifica si hay una secuencia de comandos sospechosa en ejecución desde un panel o algún otro proceso automatizado.

No se puede borrar la instancia. Verás el mensaje de error ERROR: (gcloud.sql.instances.delete) HTTP Error 409: The instance or operation is not in an appropriate state to handle the request, o la instancia puede tener un estado de la marca INSTANCE_RISKY_FLAG_CONFIG.

Estas son algunas explicaciones posibles:

  • Hay otra operación en curso. Las operaciones de Cloud SQL no se ejecutan en simultáneo. Espera a que se complete la otra operación.
  • La advertencia INSTANCE_RISKY_FLAG_CONFIG se activa cada vez que se usa al menos una marca beta. Quita la configuración de marca riesgosa y reinicia la instancia.
La instancia está interrumpida debido al gran tamaño de los datos temporales. El sistema puede crear muchas tablas temporales a la vez, según las consultas y la carga.

Por desgracia, no puedes reducir el archivo ibtmp1 con ningún otro método que no sea reiniciar el servicio.

Una opción de mitigación es crear la tabla temporal con ROW_FORMAT=COMPRESSED, de modo que se almacene en espacios de tablas del tipo archivo por tabla en el directorio de archivos temporales. Sin embargo, la desventaja son los costos de rendimiento asociados con la creación y eliminación de un espacio de tabla del tipo archivo por tabla para cada tabla temporal.

Se produjo un error grave durante la actualización. Los registros pueden revelar más, pero, de todos modos, es posible que se necesite la asistencia al cliente para forzar la recreación de la instancia.
La instancia se interrumpe cuando se reinicia después de quedarse sin espacio en el disco. La función de aumento del almacenamiento automático no está habilitada.

Si la instancia se queda sin almacenamiento y la capacidad de aumento de almacenamiento automático no está habilitada, tu instancia se desconecta. Para evitar este problema, puedes editar la instancia a fin de habilitar el aumento de almacenamiento automático.

Tu instancia principal local está atascada. Google Cloud no puede ayudar con las instancias que no están en Cloud SQL.
El proceso de apagado es lento durante el reinicio. Cuando una instancia se cierra, cualquier conexión pendiente que no finalice en 60 segundos hace que el cierre sea poco claro.

Si se usan conexiones que duran menos de 60 segundos, se pueden evitar la mayoría de los apagados inestables, incluidas las conexiones del símbolo del sistema de la base de datos. Si mantienes estas conexiones activas durante horas o días, es posible que los procesos de apagado sean inestables.

No se puede borrar un usuario. Es posible que el usuario tenga objetos que dependen de él en la base de datos. Debes descartar esos objetos o reasignarlos a otro usuario.

Averigua qué objetos dependen del usuario y, luego, descártalos o reasígnalos a un usuario diferente.

En este artículo, se explica cómo encontrar los objetos que pertenecen al usuario.
Hay consultas específicas que se ejecutan con lentitud. Las consultas pueden ser lentas por muchos motivos, la mayoría relacionados con aspectos específicos de la base de datos. Un motivo que puede involucrar a Cloud SQL es la latencia de red, cuando el recurso de origen (escritor o lector) y el recurso de destino (Cloud SQL) están en diferentes regiones.

Consulta las sugerencias para un mejor rendimiento general, en particular, las siguientes.

Para inserciones, actualizaciones o eliminaciones lentas de la base de datos, considera las siguientes acciones:

  • Si habilitas la marca long_query_time, puedes verificar los registros para las consultas lentas. Ve a la página Explorador de registros del proyecto y ejecuta una consulta como esta:
    resource.type="cloudsql_database"
    resource.labels.database_id="INSTANCE-ID"
    log_name="projects/PROJECT-ID/logs/cloudsql.googleapis.com%2Fmysql-slow.log"
          

    Puedes descargar los registros en formato JSON o TEXT para su procesamiento local.

  • Verifica las ubicaciones del escritor y de la base de datos. El envío de datos a larga distancia provoca latencia.
  • Verifica la ubicación del lector y de la base de datos. La latencia afecta el rendimiento de la lectura, incluso más que el de la escritura.

Para reducir la latencia, se recomienda ubicar los recursos de origen y de destino en la misma región.

Se indica que hay falta de memoria, pero esto no se muestra en los gráficos de supervisión. Una instancia puede fallar e informar Out of memory, pero los gráficos de la consola de Google Cloud o Cloud Monitoring parecen mostrar que aún hay memoria.

Existen otros factores que pueden afectar el uso de memoria además de la carga de trabajo, como la cantidad de conexiones activas y los procesos de sobrecarga interna. Esto no siempre se refleja en los gráficos de supervisión.

Asegúrate de que la instancia tenga suficiente sobrecarga para cubrir la carga de trabajo además de algo de sobrecarga adicional.

Recupera una instancia borrada. Cuando se borra una instancia, todos sus datos, incluidas las copias de seguridad, se pierden de forma permanente.

Para conservar tus datos, expórtalos a Cloud Storage antes de borrar una instancia.

La función de administrador de Cloud SQL incluye el permiso para borrar la instancia. Para evitar la eliminación accidental, otorga esta función solo cuando sea necesario.

Cambia el nombre de una instancia de Cloud SQL existente. No se admite el cambio de nombre de una instancia existente.

Hay otras formas de lograr el objetivo mediante la creación de una instancia nueva.

  • Puedes clonar la instancia que deseas renombrar y establecer un nombre nuevo para la instancia clonada. Esto te permite crear la instancia nueva sin tener que importar datos de forma manual. Al igual que cuando se crea una instancia nueva, la instancia clonada tiene una dirección IP nueva.
  • Puedes exportar datos de tu instancia a un depósito de Cloud Storage, crear una instancia nueva con el nombre nuevo que desees y, luego, import los datos en la instancia nueva.

En ambos casos, puedes borrar la instancia anterior después de que finalice la operación. Recomendamos seguir la ruta de clonación, ya que no afecta el rendimiento y no requiere que vuelvas a configurar la instancia, como las marcas, el tipo de máquina, el tamaño de almacenamiento y la memoria.

Se produjo un error cuando se borraba una instancia. Si la protección contra la eliminación está habilitada para una instancia, confirma tus planes de borrarla. Luego, inhabilita la protección contra la eliminación antes de borrar la instancia.

Private Service Connect

Problema Soluciona problemas
El adjunto de servicio de la instancia no acepta el extremo de Private Service Connect.
  1. Verifica el estado del extremo.

    gcloud

    Para verificar el estado, usa el comando
    gcloud compute forwarding-rules describe.

    gcloud compute forwarding-rules describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    | grep pscConnectionStatus

    Realiza los siguientes reemplazos:

    • ENDPOINT_NAME: el nombre del extremo
    • PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene el extremo
    • REGION_NAME: el nombre de la región para el extremo

    REST

    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 el extremo de Private Service Connect
    • REGION_NAME: es el nombre de la región.
    • ENDPOINT_NAME: el nombre del extremo

    Método HTTP y URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_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": "compute#forwardingRule",
      "id": "ENDPOINT_ID",
      "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
      "name": "ENDPOINT_NAME",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "IPAddress": "IP_ADDRESS",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
      "serviceDirectoryRegistrations": [
        {
          "namespace": "goog-psc-default"
        }
      ],
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "fingerprint": "FINGERPRINT_ID",
      "pscConnectionId": "CONNECTION_ID",
      "pscConnectionStatus": "ACCEPTED",
      "allowPscGlobalAccess": true
    }
    
  2. Verifica que el estado del extremo sea ACCEPTED. Si el estado es PENDING, la instancia no permite el proyecto de Google Cloud que contiene el extremo. Asegúrate de que el proyecto de red en el que se crea el extremo esté permitido. Para obtener más información, consulta Edita una instancia con Private Service Connect habilitado.

Replicación

Problema Soluciona problemas
La réplica de lectura no comenzó a replicarse cuando se creó. Es probable que haya un error más específico en los archivos de registro. Inspecciona los registros en Cloud Logging para encontrar el error real.
No se puede crear una réplica de lectura: error invalidFlagValue. Una de las marcas de la solicitud no es válida. Puede ser una marca que proporcionaste explícitamente o una que se configuró como un valor predeterminado.

Primero, comprueba que el valor de la marca max_connections sea mayor o igual que el valor en el principal.

Si la marca max_connections se configuró de forma correcta, inspecciona los registros en Cloud Logging para encontrar el error real.

No se puede crear una réplica de lectura: error desconocido. Es probable que haya un error más específico en los archivos de registro. Inspecciona los registros en Cloud Logging para encontrar el error real.

Si el error es set Service Networking service account as servicenetworking.serviceAgent role on consumer project, inhabilita y vuelve a habilitar la Service Networking API. Esta acción crea la cuenta de servicio que se necesita para continuar con el proceso.

El disco está lleno. El tamaño del disco de la instancia principal puede llenarse durante la creación de una réplica. Edita la instancia principal para actualizarla a un tamaño de disco más grande.
La instancia de réplica usa demasiada memoria. La réplica usa memoria temporal para almacenar en caché las operaciones de lectura solicitadas con frecuencia, lo que puede ocasionar que use más memoria que la instancia principal.

Reinicia la instancia de réplica para recuperar el espacio de memoria temporal.

Se detuvo la replicación. Se alcanzó el límite de almacenamiento máximo y el aumento de almacenamiento automático no está habilitado.

Edita la instancia para habilitar automatic storage increase.

El retraso de replicación se mantiene alto. La carga de escritura es demasiado alta para que la réplica la maneje. El retraso de la replicación se produce cuando el subproceso de SQL en una réplica no puede mantener el ritmo del subproceso de E/S. Algunos tipos de consultas o cargas de trabajo pueden causar un gran retraso de la replicación de forma temporal o permanente en un esquema determinado. Algunas de las causas típicas del retraso de la replicación son las siguientes:
  • Consultas lentas en la réplica. Encuéntralas y corrígelas.
  • Todas las tablas deben tener una clave primaria o única. Cada actualización en una tabla sin una clave única o primaria genera análisis completos de la tabla en la réplica.
  • Las consultas como DELETE ... WHERE field < 50000000 provocan un retraso de la replicación basado en filas, ya que se acumula una gran cantidad de actualizaciones en la réplica.

Estas son algunas de las soluciones posibles:

El retraso de la replicación aumenta de manera repentina. Esto se debe a las transacciones de larga duración. Cuando se confirma una transacción (una sola declaración o varias declaraciones) en la instancia de origen, la hora de inicio de la transacción se registra en el registro binario. Cuando la réplica recibe este evento binlog, compara esa marca de tiempo con la marca de tiempo actual para calcular el retraso de replicación. Por lo tanto, una transacción de larga duración en la fuente generaría un gran retraso de replicación inmediato en la réplica. Si la cantidad de cambios de fila en la transacción es grande, la réplica también tardaría mucho tiempo en ejecutarla. Durante ese tiempo, el retraso de la replicación aumenta. Una vez que la réplica finalice esta transacción, el período de actualización dependerá de la carga de trabajo de escritura en el origen y la velocidad de procesamiento de la réplica.

Para evitar una transacción larga, algunas soluciones posibles incluyen las siguientes:

  • Divide la transacción en varias transacciones pequeñas
  • Divide una sola consulta de escritura grande en lotes más pequeños
  • Intenta separar las consultas SELECT largas de una transacción mezclada con DML
Si cambias las marcas de replicación paralelas, se generará un error. Se configuró un valor incorrecto para una o más de estas marcas.

En la instancia principal que muestra el mensaje de error, configura las marcas de replicación paralelas:

  1. Modifica las marcas binlog_transaction_dependency_tracking y transaction_write_set_extraction:
    • binlog_transaction_dependency_tracking=COMMIT_ORDER
    • transaction_write_set_extraction=OFF
  2. Agrega la marca slave_pending_jobs_size_max:

    slave_pending_jobs_size_max=33554432

  3. Modifica la marca transaction_write_set_extraction:

    transaction_write_set_extraction=XXHASH64

  4. Modifica la marca binlog_transaction_dependency_tracking:

    binlog_transaction_dependency_tracking=WRITESET

La creación de la réplica falla con el tiempo de espera. Las transacciones no confirmadas de larga duración en la instancia principal pueden generar una falla en la creación de la réplica de lectura.

Vuelve a crear la réplica después de detener todas las consultas en ejecución.