LastBackupLastBackup
数据库连接

PostgreSQL

连接 PostgreSQL 数据库进行自动备份

PostgreSQL

PostgreSQL 是强大的开源关系型数据库。LastBackup 使用 pg_dump 创建一致性备份。

配置参数

字段
主机数据库服务器地址(如 localhostdb.example.com
端口5432(默认)
数据库要备份的数据库名称
用户名PostgreSQL 用户
密码用户密码

连接字符串格式

postgresql://username:password@host:port/database

示例:

postgresql://backup_user:secret@db.example.com:5432/myapp

所需权限

备份用户需要以下权限:

-- 创建专用备份用户
CREATE USER backup_user WITH PASSWORD 'secure_password';

-- 授予所有表的读取权限
GRANT CONNECT ON DATABASE myapp TO backup_user;
GRANT USAGE ON SCHEMA public TO backup_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO backup_user;

-- 对未来的表
ALTER DEFAULT PRIVILEGES IN SCHEMA public 
  GRANT SELECT ON TABLES TO backup_user;

SSL 配置

云托管 PostgreSQL(AWS RDS、Supabase 等):

提供商SSL 模式备注
AWS RDSrequire下载 RDS CA 证书
Supabaserequire默认启用 SSL
DigitalOceanrequire必须 SSL
本地prefer可选

PgBouncer 支持

如果你的 PostgreSQL 位于 PgBouncer 连接池后面,请在连接设置中启用 PgBouncer 模式

为什么需要这个?

PgBouncer 在事务池模式下不支持 PostgreSQL 的预处理语句(prepared statements)。启用 PgBouncer 模式会禁用预处理语句以确保兼容性。

常见 PgBouncer 错误

错误原因解决方案
server_login_retry登录失败次数过多等待 1-2 分钟后重试
no more connections allowed连接池已满稍后重试
prepared statement does not exist未启用 PgBouncer 模式启用 PgBouncer 模式

连接字符串参数

使用 PgBouncer 时,通常会用到这些 URL 参数,但 LastBackup 会自动处理:

?pgbouncer=true&connection_limit=1

你不需要手动添加这些参数,只需在界面中启用 PgBouncer 模式即可。

最佳实践

  • 使用具有最小权限的专用备份用户
  • 远程连接启用 SSL
  • 定期测试恢复以验证备份完整性
  • 高流量数据库考虑使用连接池

On this page

PostgreSQL | LastBackup