Esta página contiene una lista de los problemas más frecuentes que pueden surgir al trabajar con instancias de Cloud SQL y los pasos a seguir para solucionarlos. Consulte también las páginas "Problemas conocidos" , "Solución de problemas" y "Soporte" .
Ver registros
Para ver información sobre operaciones recientes, puede consultar los registros de operaciones de la instancia de Cloud SQL o los registros de errores de MySQL .
Instancia que no responde
Si su instancia deja de responder a las conexiones o el rendimiento se degrada, asegúrese de que cumpla con las Directrices Operativas . Si no las cumple, no estará cubierta por el Acuerdo de Nivel de Servicio de Cloud SQL .
Problemas de conexión
Consulte la página de problemas de conexión de depuración o la sección Conectividad en la página de solución de problemas para obtener ayuda con los problemas de conexión.
Problemas de instancia
Copias de seguridad
Para obtener el mejor rendimiento de las copias de seguridad , mantenga la cantidad de tablas en un número razonable.
Para otros problemas de copias de seguridad, consulte la sección Copias de seguridad en la página de solución de problemas.
Importación y exportación
Las importaciones y exportaciones en Cloud SQL son iguales que usar la utilidad mysqldump
, excepto que con la función de importación/exportación de Cloud SQL, usted transfiere datos usando un depósito de Cloud Storage.
Las importaciones a Cloud SQL y las exportaciones desde Cloud SQL pueden tardar bastante tiempo en completarse, dependiendo del tamaño de los datos procesados. Esto puede tener las siguientes consecuencias:
- No se puede detener una operación de instancia de Cloud SQL de ejecución prolongada.
- Solo se puede realizar una operación de importación o exportación a la vez para cada instancia, y una importación o exportación de larga duración bloquea otras operaciones, como las copias de seguridad automáticas diarias. Las exportaciones sin servidor permiten ejecutar otras operaciones, como la edición de instancias, la importación, la conmutación por error y el desbloqueo de las copias de seguridad automáticas diarias.
Puede reducir la cantidad de tiempo que lleva completar cada operación utilizando la funcionalidad de importación o exportación de Cloud SQL con lotes de datos más pequeños.
Para las exportaciones, puede realizar la exportación desde una réplica de lectura o usar la exportación sin servidor para minimizar el impacto en el rendimiento de la base de datos y permitir que otras operaciones se ejecuten en su instancia mientras se ejecuta una exportación.
Otros puntos a tener en cuenta al importar:
- Si la importación falla, podría deberse a un error de memoria insuficiente (OOM). En ese caso, puede intentar usar comandos MySQL directamente para agregar los parámetros
--extended-insert=FALSE --complete-insert
. Estos parámetros reducen la velocidad de la importación, pero también la cantidad de memoria requerida.
Para otros problemas de importación y exportación, consulte la sección Importación y exportación en la página de solución de problemas.
Espacio en disco
Si su instancia alcanza el almacenamiento máximo permitido, la escritura en la base de datos falla. Si elimina datos, por ejemplo, eliminando una tabla, el espacio liberado no se refleja en el almacenamiento utilizado de la instancia. Consulte la pregunta frecuente " ¿Cómo puedo recuperar el espacio de una tabla eliminada?" para obtener una explicación de este comportamiento.Alcanzar el límite máximo de almacenamiento también puede provocar que la instancia se bloquee al reiniciarse.
Evite la corrupción de datos
Evitar columnas generadas
Debido a un problema en MySQL, el uso de columnas generadas podría provocar la corrupción de datos. Para más información, consulte el error n.° 82736 de MySQL .
Paradas limpias
Cuando Cloud SQL apaga una instancia (por ejemplo, por mantenimiento), no se envían nuevas conexiones a la instancia y las existentes se finalizan. El tiempo que mysqld tiene para apagarse está limitado a 1 minuto. Si el apagado no se completa en ese tiempo, el proceso mysqld se detiene forzosamente. Esto puede provocar que las escrituras en disco se cancelen a mitad de proceso.
Motores de bases de datos
InnoDB es el único motor de almacenamiento compatible con instancias MySQL porque es más resistente a la corrupción de tablas que otros motores de almacenamiento MySQL, como MyISAM .
De forma predeterminada, las tablas de bases de datos de Cloud SQL se crean con el motor de almacenamiento InnoDB. Si la sintaxis CREATE TABLE
incluye una opción ENGINE
que especifica un motor de almacenamiento distinto de InnoDB (por ejemplo ENGINE = MyISAM
), la tabla no se crea y aparecen mensajes de error como el siguiente:
ERROR 3161 (HY000): Storage engine MyISAM is disabled (Table creation is disallowed).
Puede evitar este error eliminando la opción ENGINE = MyISAM
del comando CREATE TABLE
. De esta forma, se crea la tabla con el motor de almacenamiento InnoDB.
Cambios en las tablas del sistema
Las tablas del sistema MySQL utilizan el motor de almacenamiento MyISAM, incluyendo todas las tablas de la base de datos mysql
, por ejemplo, mysql.user
y mysql.db
. Estas tablas son vulnerables a apagados incorrectos; ejecute el comando FLUSH CHANGES
después de modificarlas. Si se produce algún daño en MyISAM, CHECK TABLE
y REPAIR TABLE
pueden restaurar el estado original (pero no guardar los datos).
Identificadores de transacciones globales (GTID)
Todas las instancias de MySQL tienen GTID habilitado automáticamente. Tener GTID habilitado protege contra la pérdida de datos durante la creación de réplicas y la conmutación por error, y aumenta la robustez de la replicación. Sin embargo, GTID tiene algunas limitaciones impuestas por MySQL, como se documenta en el manual de MySQL . Las siguientes operaciones transaccionalmente inseguras no se pueden utilizar con un servidor MySQL con GTID habilitado:
- Sentencias
CREATE TABLE ... SELECT
; - Sentencias
CREATE TEMPORARY TABLE
dentro de las transacciones; - Transacciones o declaraciones que afectan tanto a tablas transaccionales como no transaccionales.
Si utiliza una transacción no segura, verá un mensaje de error como el siguiente ejemplo:
Exception: SQLSTATE[HY000]: General error: 1786
CREATE TABLE ... SELECT is forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1.
Trabajar con disparadores y funciones almacenadas
Si su instancia tiene habilitado el registro binario y necesita trabajar con activadores o funciones almacenadas, asegúrese de que su instancia tenga el indicador log_bin_trust_function_creators
on
.
Estado suspendido
Hay varias razones por las que Cloud SQL puede suspender una instancia, entre ellas:
Problemas de facturación
Por ejemplo, si la tarjeta de crédito de la cuenta de facturación del proyecto ha caducado, la instancia podría suspenderse. Puede consultar la información de facturación de un proyecto en Google Cloud Página de facturación de la consola, donde se selecciona el proyecto y se visualiza la información de la cuenta de facturación utilizada para el proyecto. Tras resolver el problema de facturación, la instancia vuelve a estar en estado ejecutable en pocas horas.
Problemas clave con el servicio de administración de claves en la nube
Por ejemplo, si la versión de la clave de Cloud KMS utilizada para cifrar los datos del usuario en la instancia de Cloud SQL no está presente, se revoca el acceso a la clave o esta se desactiva o elimina. Para obtener más información, consulte Uso de claves de cifrado administradas por el cliente (CMEK) .
Cuestiones jurídicas
Por ejemplo, una violación de la Google Cloud La Política de Uso Aceptable puede provocar la suspensión de la instancia. Para más información, consulte "Suspensiones y Eliminaciones" en Google Cloud Condiciones de servicio .
Problemas operativos
Por ejemplo, si una instancia queda atrapada en un bucle de fallos (se bloquea al iniciarse o justo después de iniciarse), Cloud SQL puede suspenderla.
Mientras una instancia está suspendida, puedes seguir viendo información sobre ella o puedes eliminarla, si problemas de facturación desencadenaron la suspensión.
Los usuarios de Cloud SQL con paquetes de soporte Platinum, Gold o Silver pueden contactar directamente con nuestro equipo de soporte si tienen instancias suspendidas. Todos los usuarios pueden usar la guía anterior y el foro de Google Cloud SQL .
Actuación
Descripción general
Cloud SQL admite cargas de trabajo de alto rendimiento con hasta 60 000 IOPS sin coste adicional por E/S. El rendimiento de IOPS y el rendimiento dependen del tamaño del disco, la cantidad de vCPU de la instancia y el tamaño del bloque de E/S, entre otros factores.
El rendimiento de su instancia también depende de su elección de tipo de almacenamiento y carga de trabajo.
Obtenga más información sobre:
- Discos persistentes y rendimiento .
- Métricas de rendimiento y limitación .
- Optimización del rendimiento del disco .
- Otros factores que afectan el rendimiento .
Habilitar registros de consultas
Para optimizar el rendimiento de sus consultas, puede configurar Cloud SQL para que registre las consultas lentas agregando los indicadores de base de datos --log_output='FILE'
y --slow_query_log=on
a su instancia. Esto permite acceder a la salida del registro mediante el Visor de registros en Google Cloud consola . Tenga en cuenta que se aplican cargos por registro de Google Cloud Observability .
No configure log_output como TABLE
. Esto podría causar problemas de conexión, como se describe en Consejos para trabajar con indicadores .
Puede consultar este tutorial para obtener instrucciones sobre cómo registrar y monitorear consultas lentas de Cloud SQL para MySQL usando Cloud Logging and Monitoring .
Habilitar la monitorización de bloqueos
Los monitores InnoDB proporcionan información sobre el estado interno del motor de almacenamiento InnoDB, que puede utilizar para ajustar el rendimiento.
Acceda a la instancia mediante el cliente MySQL y obtenga la salida del monitor a pedido:
SHOW ENGINE INNODB STATUS\G
Para obtener explicaciones de las secciones en la salida del monitor, consulte Monitor estándar de InnoDB y Salida del monitor de bloqueo .
Puede habilitar los monitores InnoDB para que la salida se genere periódicamente en un archivo o tabla, con una degradación del rendimiento. Para obtener más información, consulte Habilitación de monitores InnoDB .
Utilizar el esquema de rendimiento
El Esquema de Rendimiento de MySQL es una función para supervisar la ejecución del servidor MySQL a bajo nivel. La forma más accesible de acceder a las estadísticas generadas en performance_schema es a través de la función de Informes de Rendimiento de MySQL Workbench .
Mantenga un número razonable de tablas de base de datos
Las tablas de base de datos consumen recursos del sistema. Un número elevado puede afectar el rendimiento y la disponibilidad de la instancia, y hacer que esta pierda su cobertura del SLA. Más información .
Consejos generales de rendimiento
Para inserciones, actualizaciones o eliminaciones lentas de bases de datos, considere las siguientes acciones:- Verifique las ubicaciones del escritor y la base de datos; enviar datos a larga distancia introduce latencia.
Para selecciones de bases de datos lentas, considere lo siguiente:
- El almacenamiento en caché es importante para el rendimiento de lectura. Compare el tamaño de su conjunto de datos con la RAM de su instancia. Idealmente, todo el conjunto de datos cabe en el 70 % de la RAM de la instancia; en este caso, las consultas no se ven limitadas por el rendimiento de E/S. De lo contrario, considere aumentar la RAM de su instancia.
- Si su carga de trabajo consiste en consultas que hacen un uso intensivo de la CPU (ordenación, expresiones regulares, otras funciones complejas), su instancia podría verse limitada; aumente las vCPU.
Si observa un rendimiento deficiente al ejecutar consultas, use EXPLAIN
. EXPLAIN es una sentencia que se agrega a otras sentencias, como SELECT, y devuelve información sobre cómo MySQL la ejecuta. Funciona con SELECT, DELETE, INSERT, REPLACE y UPDATE. Por ejemplo, EXPLAIN SELECT * FROM myTable;
.
Utilice EXPLAIN
para identificar dónde puede:
Agregue índices a las tablas para mejorar el rendimiento de las consultas. Por ejemplo, asegúrese de que cada campo que utilice como clave JOIN tenga un índice en ambas tablas.
Mejorar las operaciones
ORDER BY
. SiEXPLAIN
muestra "Usando temporal; Usando ordenación de archivos" en la columna Extra de la salida, los resultados intermedios se almacenan en un archivo que posteriormente se ordena, lo que suele reducir el rendimiento. En este caso, siga uno de los siguientes pasos:Si es posible, utilice índices en lugar de ordenación. Consulte Optimización ORDER BY para obtener más información.
Aumente el tamaño de la variable
sort_buffer_size
para la sesión de consulta.Utilice menos RAM por fila declarando columnas sólo del tamaño necesario.
Solucionar problemas
Para otros problemas de Cloud SQL, consulte la página de solución de problemas .
Mensajes de error
Para conocer mensajes de error de API específicos, consulte la página de referencia de mensajes de error .
Solucionar problemas de claves de cifrado administradas por el cliente (CMEK)
Las operaciones del administrador de Cloud SQL, como crear, clonar o actualizar, podrían fallar debido a errores de Cloud KMS y a la falta de roles o permisos. Entre los motivos comunes de fallo se incluyen la falta de una versión de la clave de Cloud KMS, una versión de la clave de Cloud KMS deshabilitada o destruida, permisos de IAM insuficientes para acceder a la versión de la clave de Cloud KMS o que la versión de la clave de Cloud KMS se encuentre en una región diferente a la de la instancia de Cloud SQL. Utilice la siguiente tabla de solución de problemas para diagnosticar y resolver problemas comunes.
Tabla de resolución de problemas de claves de cifrado administradas por el cliente
Para este error... | El problema podría ser... | Prueba esto... |
---|---|---|
No se encontró ninguna cuenta de servicio por producto y por proyecto | El nombre de la cuenta de servicio es incorrecto. | Asegúrese de haber creado una cuenta de servicio para el proyecto de usuario correcto. |
No se puede conceder acceso a la cuenta de servicio | La cuenta de usuario no tiene permiso para otorgar acceso a esta versión de clave. | Agregue el rol de Administrador de la organización a su cuenta de usuario o servicio. |
La versión de la clave de Cloud KMS está destruida | La versión clave está destruida. | Si se destruye la versión de la clave, no podrás usarla para cifrar o descifrar datos. |
La versión de la clave Cloud KMS está deshabilitada | La versión clave está deshabilitada. | Vuelva a habilitar la versión de la clave Cloud KMS. |
Permiso insuficiente para utilizar la clave Cloud KMS | Falta la función cloudkms.cryptoKeyEncrypterDecrypter en la cuenta de usuario o servicio que está utilizando para ejecutar operaciones en instancias de Cloud SQL, o la versión de la clave de Cloud KMS no existe. | En el Google Cloud proyecto que aloja la clave, agregue la función cloudkms.cryptoKeyEncrypterDecrypter a su cuenta de usuario o servicio.Si el rol ya está asignado a su cuenta, consulte "Crear una clave" para saber cómo crear una nueva versión de clave. Consulte la nota. |
No se encuentra la clave KMS de Cloud | La versión clave no existe. | Cree una nueva versión de clave. Consulte "Crear una clave" . Consulte la nota. |
La instancia de Cloud SQL y la versión de la clave de Cloud KMS están en diferentes regiones | La versión de la clave de Cloud KMS y la instancia de Cloud SQL deben estar en la misma región. Esto no funciona si la versión de la clave de Cloud KMS está en una región global o multirregional. | Cree una versión de clave en la misma región donde desea crear instancias. Consulte "Crear una clave" . Consulte la nota. |
La versión de la clave de Cloud KMS se restauró, pero la instancia aún está suspendida | La versión clave está deshabilitada o no otorga los permisos adecuados. | Vuelva a habilitar la versión de la clave y otorgue la función cloudkms.cryptoKeyEncrypterDecrypter a su cuenta de usuario o servicio en el Google Cloud proyecto que alberga la clave. |
Tabla de solución de problemas de reencriptación
Para este error... | El problema podría ser... | Prueba esto... |
---|---|---|
El recifrado del recurso CMEK falló porque la clave de Cloud KMS es inaccesible. Asegúrese de que la versión de la clave principal esté habilitada y de que el permiso se haya otorgado correctamente. | La versión clave está deshabilitada o no otorga los permisos adecuados. | Vuelva a habilitar la versión de la clave Cloud KMS: IR A LA PÁGINA DE CLAVES CRIPTO En el Google Cloud proyecto que aloja la clave, confirme que la función |
El reencriptado del recurso CMEK falló debido a un error interno del servidor. Vuelva a intentarlo más tarde. | Hay un error interno del servidor. | Vuelva a intentar el reencriptado. Para obtener más información, consulte Volver a encriptar una instancia o réplica existente con CMEK habilitado. |