Solucionar 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:

Crear copia de seguridad y de 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.googleapis.com/sqlagent.out
  • cloudsql.googleapis.com/sqlserver.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.
No puedes hacer una copia de seguridad después de borrar una instancia. El período de gracia para borrar definitivamente instancias de Cloud SQL es de cuatro días, con la excepción de las réplicas de lectura, que se borran de forma inmediata y definitiva. Durante este tiempo, la asistencia al cliente puede recrear la instancia. Si la instancia se vuelve a crear, sus copias de seguridad también se volverán a crear. Una vez que las instancias se borran definitivamente, no es posible la recuperación de datos.

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 treinta o más. Solo se conservan siete copias de seguridad. Las copias de seguridad se descartan con frecuencia debido al costo y la ocupación de tamaño que implica conservarlas. 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. No se admiten notificaciones para los errores de copias de seguridad.

Cuando falla una copia de seguridad automática, aparece un mensaje Operation error en la página Details de la instancia de Cloud SQL.

Puedes encontrar el estado de una copia de seguridad a través de los comandos de la API de REST o de gcloud. Por ejemplo, primero enumera las copias de seguridad de una instancia y, luego, describe una copia de seguridad específica por su ID:


gcloud sql backups list \
--project=PROJECT_ID \
--instance=INSTANCE_ID
   

gcloud sql backups describe BACKUP-ID \
--instance=INSTANCE_ID
    

Clone

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 Google Cloud Console, 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.

Conexión

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.

Crea instancias

Problema Soluciona problemas
Recibes el siguiente 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 cada una de las situaciones anteriores, puedes expandir el rango de IP asignado existente o asignar un rango de IP adicional a la conexión privada a servicios.

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
    

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.
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 Cloud Functions, similar a este artículo sobre cómo automatizar las copias de seguridad.

Marcas

Problema Soluciona problemas
No hay ninguna marca para configurar la zona horaria.

En Cloud SQL, PostgreSQL y SQL Server no admiten una marca de zona horaria para ajustar la zona horaria en función de las necesidades del usuario. Puedes configurar la zona horaria por sesión, pero esto vencerá cuando cierres la sesión.

Una mejor solución es conectarse a la base de datos y establecer la zona horaria de la base de datos con el valor deseado, ya sea por usuario o por base de datos.

En Cloud SQL para PostgreSQL, puedes especificar lo siguiente. Esta configuración permanece después de que se cierra una sesión, lo que imita una configuración de .conf:


ALTER DATABASE dbname SET TIMEZONE TO 'timezone';
ALTER USER username SET TIMEZONE TO 'timezone';
    

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.

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.

Algunos registros se filtran del registro error.log de una instancia de Cloud SQL para SQL Server. En los registros filtrados, se incluyen los registros de AD sin marcas de tiempo y se incluye lo siguiente: Login failed for user 'x'. Reason: Token-based server access validation failed with an infrastructure error. Login lacks connect endpoint permission. [CLIENT: 127.0.0.1]. Estos registros se filtran porque existe la posibilidad de que causen confusión.
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 text \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
> downloaded-log.txt
   

Administrar instancias

Problema Soluciona problemas
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 esta conversación de Stack Exchange, se explica cómo encontrar los objetos que son propiedad del 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:

  • 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 bucket de Cloud Storage, crear una instancia nueva con el nombre nuevo que desees y, luego, importar 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.

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.
  • 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:

  • Edita la instancia para aumentar el tamaño de la réplica.
  • Reduce la carga en la base de datos.
  • Indexa las tablas.
  • Identifica y corrige consultas de escritura lentas.
  • Vuelve a crear la réplica.
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.