En esta página se recopilan los problemas conocidos de Cloud SQL for PostgreSQL, junto con maneras de evitarlos o de resolverlos.
Si tienes problemas con tu instancia, revisa la información del apartado Diagnosticar problemas.Problemas de conexión con la instancia
Certificados SSL/TLS caducados
Si tu instancia está configurada para usar SSL, ve a la página Instancias de Cloud SQL de la consola de Google Cloud y abre la instancia. Abre la página Conexiones, selecciona la pestaña Seguridad y comprueba que el certificado de tu servidor sea válido. Si ha caducado, debes añadir un nuevo certificado y cambiar a él.
Versión del proxy de autenticación de Cloud SQL
Si te conectas mediante el proxy de autenticación de Cloud SQL, asegúrate de usar la versión más reciente. Para obtener más información, consulta Mantener actualizado el proxy de autenticación de Cloud SQL.
No tienes autorización para conectarte
Si intentas conectarte con una instancia que no existe en el proyecto, el mensaje de error solo indicará que no tienes acceso autorizado.
No se puede crear una instancia de Cloud SQL
Si ves el mensaje de error
Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]
, prueba a crear la instancia de Cloud SQL de nuevo.
Lo siguiente solo funciona con el usuario predeterminado ("postgres"):
gcloud sql connect --user
Si intentas conectarte con otro usuario mediante este comando, aparecerá el mensaje de error FATAL: database 'user' does not exist. La solución alternativa es conectarse con el usuario predeterminado ("postgres") y, a continuación, usar el comando
"\c"
psql para volver a conectarse como otro usuario.
Las conexiones de PostgreSQL se bloquean cuando la autenticación de proxy de base de datos de gestión de identidades y accesos está habilitada.
Cuando el proxy de autenticación de Cloud SQL se inicia mediante sockets TCP y con la marca
-enable_iam_login
, un cliente de PostgreSQL se bloquea durante la conexión TCP. Una solución alternativa es usarsslmode=disable
en la cadena de conexión de PostgreSQL. Por ejemplo:psql "host=127.0.0.1 dbname=postgres user=me@google.com sslmode=disable"
Otra solución alternativa es iniciar el proxy de autenticación de Cloud SQL mediante sockets Unix. De esta forma, se desactiva el cifrado SSL de PostgreSQL y se permite que el proxy de autenticación de Cloud SQL realice el cifrado SSL.
Problemas administrativos
Solo se puede ejecutar una operación de importación o exportación de Cloud SQL de larga duración a la vez en una instancia. Cuando inicies una operación, asegúrate de que no necesitas realizar otras operaciones en la instancia. Además, cuando inicies la operación, podrás cancelarla.
PostgreSQL importa los datos en una sola transacción. Por lo tanto, si cancelas la operación de importación, Cloud SQL no conservará los datos de la importación.
Problemas al importar y exportar datos
Si tu instancia de Cloud SQL usa PostgreSQL 17, pero tus bases de datos usan PostgreSQL 16 o versiones anteriores, no puedes usar Cloud SQL para importar estas bases de datos en tu instancia. Para ello, usa Database Migration Service.
Si usas Database Migration Service para importar una base de datos PostgreSQL 17 en Cloud SQL, se importará como una base de datos PostgreSQL 16.
En las versiones 15 y posteriores de PostgreSQL, si la base de datos de destino se crea a partir de
template0
, es posible que la importación de datos falle y que veas un mensaje de error depermission denied for schema public
. Para solucionar este problema, proporcione privilegios de esquema público al usuariocloudsqlsuperuser
ejecutando el comando SQLGRANT ALL ON SCHEMA public TO cloudsqlsuperuser
.Exportar muchos objetos grandes provoca que la instancia deje de responder
Si tu base de datos contiene muchos objetos grandes (blobs), exportarla puede consumir tanta memoria que la instancia deje de responder. Esto puede ocurrir aunque los blobs estén vacíos.
Cloud SQL no admite espacios de tablas personalizados, pero sí la migración de datos de espacios de tablas personalizados al espacio de tablas predeterminado,
pg_default
, en la instancia de destino. Por ejemplo, si tienes un tablespace llamadodbspace
que se encuentra en/home/data
, después de la migración, todos los datos dedbspace
se migrarán apg_default
. Sin embargo, Cloud SQL no creará un espacio de tabla llamado "dbspace" en su disco.Si intentas importar y exportar datos de una base de datos grande (por ejemplo, una base de datos que tenga 500 GB de datos o más), las operaciones de importación y exportación pueden tardar mucho tiempo en completarse. Además, no podrás realizar otras operaciones (por ejemplo, la de copia de seguridad) mientras se esté llevando a cabo la importación o la exportación. Una posible opción para mejorar el rendimiento del proceso de importación y exportación es restaurar una copia de seguridad anterior mediante
gcloud
o la API.
- Cloud Storage admite un tamaño máximo de objeto único de hasta cinco terabytes. Si tus bases de datos tienen un tamaño superior a 5 TB, la operación de exportación a Cloud Storage fallará. En ese caso, debes dividir los archivos de exportación en segmentos más pequeños.
Registros de transacciones y crecimiento del disco
Los registros se purgan una vez al día, no de forma continua. Si el número de días de conservación de registros es el mismo que el número de copias de seguridad, es posible que se pierda un día de registro, en función de cuándo se realice la copia de seguridad. Por ejemplo, si se define la conservación de registros en siete días y la conservación de copias de seguridad en siete copias, se conservarán entre seis y siete días de registros.
Te recomendamos que configures el número de copias de seguridad para que sea al menos una más que los días de conservación de registros, de modo que se garantice un mínimo de días de conservación de registros.
Problemas relacionados con Cloud Monitoring o Cloud Logging
Las instancias con los siguientes nombres de región se muestran de forma incorrecta en determinados contextos, como se indica a continuación:
us-central1
se muestra comous-central
europe-west1
se muestra comoeurope
asia-east1
se muestra comoasia
Este problema se produce en los siguientes contextos:
- Alertas en Cloud Monitoring
- Explorador de métricas
- Cloud Logging
Puedes mitigar el problema de las alertas de Cloud Monitoring y del explorador de métricas usando etiquetas de metadatos de recursos.
Use la etiqueta de metadatos del sistema region
en lugar de la etiqueta de recurso monitorizado cloudsql_database region
.
Problema relacionado con la eliminación de una base de datos PostgreSQL
Cuando eliminas una base de datos creada en la consola de Google Cloud con tu cliente de psql
, puede que se produzca el siguiente error:
ERROR: must be owner of database [DATABASE_NAME]
Se trata de un error de permisos, ya que el propietario de una base de datos creada con un cliente de psql
no tiene atributos de superuser
de Cloud SQL.
Las bases de datos creadas con la Google Cloud consola son propiedad decloudsqlsuperuser
y las bases de datos creadas con un cliente psql
son propiedad de los usuarios conectados a esa base de datos. Como Cloud SQL es un servicio gestionado, los clientes no pueden crear ni acceder a las cuentas de usuario con atributos superuser
.
Para obtener más información, consulta Restricciones y privilegios de superusuario.
Debido a esta limitación, las bases de datos creadas con la consola de Google Cloud solo se pueden eliminar con la consola de Google Cloud , y las bases de datos creadas con un cliente de psql
solo se pueden eliminar conectándose como propietario de la base de datos.
Para encontrar el propietario de una base de datos, usa el siguiente comando:
SELECT d.datname as Name,
pg_catalog.pg_get_userbyid(d.datdba) as Owner
FROM pg_catalog.pg_database d
WHERE d.datname = 'DATABASE_NAME';
Haz los cambios siguientes:
- DATABASE_NAME: el nombre de la base de datos de la que quieras obtener información sobre el propietario.
Si el propietario de tu base de datos es cloudsqlsuperuser
, usa la consola deGoogle Cloud para eliminarla. Si el propietario de la base de datos es un usuario de la base de datos de cliente de psql
, conéctate como propietario de la base de datos y ejecuta el comando DROP DATABASE
.