监控与指标
如何访问我的 Managed Postgres 实例指标?
用于详细查询分析的 Query Performance Insights 即将上线。
备份与恢复
有哪些可用的备份选项?
基础设施与自动化
Managed Postgres 是否支持 Terraform?
扩展和配置
支持哪些扩展?
我可以自定义 PostgreSQL 配置参数吗?
连接池
为什么我通过 PgBouncer 会看到 prepared statement does not exist 错误?
PREPARE (或扩展查询 Parse) 的特定后端上。当对应的 Execute 落到另一个后端时,就会出现如下错误:
prepared statement does not exist错误突然增多,尤其是在回填期间或高并发写入时- 看似“静默失败”的插入 —— 语句报错后,driver 会重试,结果一个批次最终可能只部分生效,甚至被丢弃
- 返回值类型错误 (例如,把
BIGINT列解码成float64位模式) —— 当缓存的客户端执行计划在某个后端上复用了过期的类型/format 代码时,就会发生这种情况,而该后端从未收到与之匹配的Parse
| Driver | Setting |
|---|---|
| pgx (Go) | statement_cache_capacity=0 and default_query_exec_mode=exec (or simple_protocol) |
| psycopg3 (Python) | prepare_threshold=None |
| asyncpg (Python) | statement_cache_size=0 |
| JDBC (Java) | prepareThreshold=0 |
| node-postgres / pg (Node.js) | 不要向 query() 传入 name (命名查询会变成服务端预处理语句) |
PgBouncer 中的 “max_client_conn” 设置是什么意思?它与 Postgres 中的 max_connections 有什么关系?
- Postgres
max_connections限制的是 PostgreSQL 自身的 后端 连接数。这才是成本较高的那个限制——每个 后端 都会占用内存和一个进程槽位。 - PgBouncer
max_client_conn限制的是可同时打开到连接池器的 client 连接数。PgBouncer 会将大量客户端连接复用到一组小得多的 后端 连接上。
default_pool_size) 。
数据库功能
我可以创建多个数据库和 schema 吗?
是否支持基于角色的访问控制 (RBAC) ?
计划于今年推出与控制台集成的增强 RBAC 功能。
升级
PostgreSQL 版本升级是如何处理的?
迁移
可用于迁移到 Managed Postgres 的工具有哪些?
- pg_dump 和 pg_restore:适用于较小的数据库或一次性迁移。请参阅 pg_dump 和 pg_restore 指南。
- 逻辑复制:适用于需要尽量减少停机时间的大型数据库。请参阅 逻辑复制 指南。
- PeerDB:适用于从其他 Postgres 源进行基于 CDC 的复制。请参阅 PeerDB 迁移 指南。
全托管迁移体验即将推出。