Soluciona problemas de Cloud SQL

En esta página se incluyen sugerencias para solucionar problemas de Cloud SQL relacionados con motores de bases de datos compatibles. Algunas de estas sugerencias se aplican solo a motores de bases de datos específicos, mientras que otras son comunes a todos.

A fin de obtener sugerencias para solucionar problemas de motores de bases de datos específicos, consulta sus páginas individuales:

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:

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

Si borras una instancia sin crear una copia de seguridad final de los datos, no será posible recuperarlos. Sin embargo, si restableces la instancia, Cloud SQL también restablecerá las copias de seguridad. Para obtener más información sobre cómo recuperar una instancia borrada, consulta Retén copias de seguridad después de borrar la instancia.

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. Puedes configurar la cantidad de copias de seguridad automáticas que se conservarán. 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.
Una instancia falla varias veces porque cambia entre los estados de falla y de restablecimiento de la copia de seguridad. Los intentos para conectarse y usar la base de datos después del restablecimiento fallan.
  • Es posible que haya demasiadas conexiones activas. Cuando hay demasiadas conexiones, es posible que ocurran errores en medio de una conexión en la que no hay parámetros de configuración de autovacuum para descartar las conexiones inactivas.
  • Puede generarse un ciclo si cualquier código personalizado usa una lógica de reintento que no se detiene después de algunas fallas.
  • Es posible que haya demasiado tráfico. Usa la agrupación de conexiones y otras prácticas recomendadas para la conectividad.

Solución:

  1. Verifica que la base de datos esté configurada para autovacuum.
  2. Comprueba si hay alguna lógica de reintento de conexiones configurada en el código personalizado.
  3. Disminuye el tráfico hasta que se recupere la base de datos y, luego, vuelve a aumentarlo con lentitud.
Detectas que faltan datos durante una operación de copia de seguridad o de restablecimiento. Las tablas se crearon como no registradas. Por ejemplo:

CREATE UNLOGGED TABLE ....

Estas tablas no se incluyen en un restablecimiento desde una copia de seguridad:

  • El contenido de las tablas que no están registradas no permanece vigente ante la conmutación por error en una instancia de HA.
  • Las tablas que no están registradas no superarán las fallas de postgres.
  • Las tablas que no están registradas no se replicarán en réplicas de lectura.
  • Las tablas que no están registradas se limpiarán de forma automática durante el restablecimiento de la copia de seguridad.

La solución es evitar usar tablas que no están registradas si deseas restablecer esas tablas a través de una copia de seguridad. Si realizas el restablecimiento desde una base de datos que ya tiene tablas no registradas, puedes volcar la base de datos a un archivo y volver a cargar los datos después de modificar el archivo volcado en ALTER TABLE a SET LOGGED en esas tablas.

No se puede borrar una instancia cuando eliges realizar una copia de seguridad final al borrar la instancia. Cuando borras una instancia, debes confirmar si quieres hacer una copia de seguridad final de ella antes de borrarla. Si habilitaste la copia de seguridad final con el parámetro de configuración de instancia final-backup, la selección que realices cuando borres la instancia debe coincidir con la configuración de instancia de copia de seguridad final que estableciste cuando habilitaste la copia de seguridad final para tu instancia. Para mitigar este problema, realiza una de las siguientes acciones:
  • Establece el valor de la copia de seguridad final para que coincida con la configuración de copia de seguridad existente de la instancia.
  • Deja el campo de copia de seguridad final vacío cuando borres la instancia. Si dejas el campo vacío, Cloud SQL tomará la configuración final de la copia de seguridad establecida en la configuración de la instancia para tomar una copia de seguridad final y definir su retención.
Para ver la configuración final de la instancia de copia de seguridad de tu instancia, consulta Visualiza la información de la instancia.
No se pudo crear una instancia de réplica después de crear correctamente una instancia principal con el parámetro de configuración de copia de seguridad final. Si creas una instancia nueva con el parámetro de configuración de instancia de copia de seguridad final habilitado, debes actualizar la política de la organización de copia de seguridad final para aplicar los parámetros de configuración de la copia de seguridad solo a la instancia principal. Las copias de seguridad finales no son compatibles con las instancias de réplica.
Para obtener más información, consulta Políticas de la organización de Cloud SQL.

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.

Mensaje de error: Login failed for user "" Es posible que encuentres este error de acceso durante la autenticación de ID de Microsoft Entra. Para resolver este problema, asegúrate de que exista un acceso de SQL Server para este usuario de Microsoft Entra ID.
Problemas de conectividad de red con instancias de IP privada Es posible que experimentes algunos de los siguientes problemas durante la configuración de la integración:
  • Operaciones lentas para crear inicios de sesión de Microsoft Entra ID
  • No se pueden crear inicios de sesión de Microsoft Entra ID
  • No se puede conectar a la instancia con la autenticación de Microsoft Entra ID

Para obtener más información sobre cómo ayudar a abordar estos problemas, consulta Soluciona problemas de integración de Microsoft Entra ID.

FATAL: database 'user' does not exist gcloud sql connect --user solo funciona con el usuario predeterminado postgres.

Conéctate con el usuario predeterminado y, luego, cambia de usuario.

Quieres saber quién está conectado. Accede a la base de datos y ejecuta este comando:

SELECT datname,
usename,
application_name as appname,
client_addr,
state,
now() - backend_start as conn_age,
now() - state_change as last_activity_age
FROM pg_stat_activity
WHERE backend_type = 'client backend'
ORDER BY 6 DESC
LIMIT 20
   

Crea instancias

Problema Soluciona problemas
Mensaje de error: The zone or region does not have sufficient resources to handle the request at the moment.

La zona seleccionada no tiene capacidad para los recursos solicitados o el tipo de VM en el momento de la solicitud de creación de la instancia. Es posible que haya una alta demanda operativa simultánea en esa ubicación regional específica en el momento de la solicitud.

Para resolver este problema, vuelve a intentar crear la instancia en otra zona o en la misma zona en la que se produjo el error en otro momento del día.

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: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED.

Habilita la API de Service Networking con el siguiente comando y vuelve a intentar crear la instancia de Cloud SQL.

gcloud services enable servicenetworking.googleapis.com \
--project=PROJECT_ID