¿Cómo puedo acceder a las métricas de mi instancia de Managed Postgres?
Puede supervisar el uso de CPU, memoria, IOPS y almacenamiento directamente desde la consola de ClickHouse Cloud, en la pestaña monitoreo de su instancia de Managed Postgres.
Query Performance Insights, con análisis detallado de consultas, estará disponible próximamente.
Copia de seguridad y recuperación
¿Qué opciones de copia de seguridad están disponibles?
Managed Postgres incluye copias de seguridad automáticas diarias con archivado continuo de WAL, lo que permite la recuperación a un momento dado en cualquier instante dentro de una ventana de retención de 7 días. Las copias de seguridad se almacenan en S3.
Para obtener todos los detalles sobre la frecuencia de las copias de seguridad, la retención y cómo realizar una recuperación a un momento dado, consulta la documentación de Copias de seguridad y restauración.
Infraestructura y automatización
Actualmente, no hay soporte para Terraform para Managed Postgres. Recomendamos usar la consola de ClickHouse Cloud para crear y gestionar sus instancias.
Extensiones y configuración
¿Qué extensiones son compatibles?
Managed Postgres incluye más de 100 extensiones de PostgreSQL, entre ellas algunas tan populares como PostGIS, pgvector, pg_cron y muchas más. Para consultar la lista completa de extensiones disponibles y las instrucciones de instalación, consulta la documentación de Extensiones.
¿Puedo personalizar los parámetros de configuración de PostgreSQL?
Sí, puedes modificar los parámetros de configuración de PostgreSQL y PgBouncer desde la pestaña Settings de la consola. Para obtener más información sobre los parámetros disponibles y cómo cambiarlos, consulta la documentación de Settings.
Si necesitas un parámetro que actualmente no está disponible, ponte en contacto con soporte para solicitarlo.
¿Por qué veo errores de prepared statement does not exist al usar PgBouncer?
Managed Postgres ejecuta PgBouncer en modo de pooling por transacciones. En este modo, una conexión backend de Postgres solo se asigna al cliente durante una única transacción y luego se devuelve al pool; la siguiente transacción del mismo cliente puede terminar en un backend distinto.
Esto rompe las sentencias preparadas del lado del servidor, ya que están vinculadas al backend concreto que ejecutó PREPARE (o Parse en la consulta extendida). Cuando el Execute correspondiente termina en un backend distinto, aparecen errores como:
ERROR: prepared statement "..." does not exist
ERROR: unnamed prepared statement does not exist
Síntomas que suelen deberse a esta misma causa raíz:
- Ráfagas de errores
prepared statement does not exist, especialmente durante backfills o escrituras con alta concurrencia
- Inserciones que parecen “fallar en silencio”: la sentencia da error, el driver reintenta y un lote puede terminar aplicándose solo parcialmente o descartándose
- Valores devueltos con el tipo incorrecto (por ejemplo, una columna
BIGINT decodificada como un patrón de bits float64): esto sucede cuando un plan del lado del cliente almacenado en caché reutiliza códigos de tipo o formato obsoletos frente a un backend al que nunca se le envió el Parse correspondiente
Solución: desactive las sentencias preparadas del lado del servidor en su driver. La opción exacta depende de su biblioteca cliente:
| Driver | Configuración |
|---|
| pgx (Go) | statement_cache_capacity=0 y default_query_exec_mode=exec (o simple_protocol) |
| psycopg3 (Python) | prepare_threshold=None |
| asyncpg (Python) | statement_cache_size=0 |
| JDBC (Java) | prepareThreshold=0 |
| node-postgres / pg (Node.js) | No pase un name a query() (las consultas con nombre se preparan en el servidor) |
Si su carga de trabajo depende de sentencias preparadas, conéctese directamente a PostgreSQL (puerto 5432) en lugar de pasar por el pooler PgBouncer: las conexiones directas admiten sentencias preparadas con normalidad. Consulte Conexión para obtener más información sobre cómo elegir entre los endpoints agrupados y directos.
¿Qué significa el parámetro “max_client_conn” en PgBouncer y cómo se relaciona con max_connections en Postgres?
Controlan cosas distintas:
- Postgres
max_connections limita la cantidad de conexiones de backend a PostgreSQL. Este es el número costoso: cada backend consume memoria y un slot de proceso.
- PgBouncer
max_client_conn limita la cantidad de conexiones de cliente que pueden estar abiertas al mismo tiempo hacia el pooler. PgBouncer multiplexa esa gran cantidad de conexiones de cliente sobre un conjunto mucho más pequeño de conexiones de backend.
Una instancia típica de Managed Postgres está configurada para que PgBouncer acepte aproximadamente 10× más conexiones de cliente que backends de Postgres (por ejemplo, 5000 clientes / 500 backends). Si ve errores de conexión en el pooler, es mucho más probable que esté alcanzando un límite de backend por pool (default_pool_size) que el límite general de clientes.
Capacidades de la base de datos
¿Puedo crear varias bases de datos y esquemas?
Sí. Managed Postgres ofrece toda la funcionalidad nativa de PostgreSQL, incluido el soporte para varias bases de datos y esquemas dentro de una sola instancia. Puede crear y administrar bases de datos y esquemas mediante comandos estándar de PostgreSQL.
¿Se admite el control de acceso basado en roles (RBAC)?
Tienes acceso completo de superusuario a tu instancia de Managed Postgres, lo que te permite crear roles y administrar permisos mediante comandos estándar de PostgreSQL.
Está previsto incorporar este año funciones avanzadas de RBAC con integración en consola.
¿Cómo se gestionan las actualizaciones de versión de PostgreSQL?
Tanto las actualizaciones de versión menores como las mayores se realizan mediante failover y, por lo general, solo provocan unos pocos segundos de inactividad. Puede configurar una ventana de mantenimiento para controlar cuándo se aplican las actualizaciones. Para obtener más información, consulte la documentación de Actualizaciones.
Managed Postgres admite varios métodos de migración:
- pg_dump and pg_restore: Para bases de datos más pequeñas o migraciones puntuales. Consulta la guía de pg_dump and pg_restore.
- Logical replication: Para bases de datos más grandes que requieren un tiempo de inactividad mínimo. Consulta la guía de Replicación lógica.
- PeerDB: Para la replicación basada en CDC desde otras fuentes de Postgres. Consulta la guía de Migración con PeerDB.
Próximamente estará disponible una experiencia de migración totalmente gestionada.