You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SSL证书连接pg_dumpall进行PostgreSQL数据库备份?

使用SSL证书连接pg_dumpall的解决方案

pg_dump与pg_dumpall在连接参数的处理上存在差异:pg_dump支持将所有连接配置打包为单个字符串参数,但pg_dumpall不支持这种方式,它要求使用独立的命令行选项或环境变量来传递连接及SSL参数。以下是可行的解决方法:

方法1:使用独立命令行选项

将原连接字符串中的每个参数拆分为对应的命令行选项,执行命令如下:

pg_dumpall --port=<port> --host=<host> --user=<user> --dbname=<db> \
  --sslcert=<cert> --sslkey=<key> --sslrootcert=<ca.crt> --sslmode=require \
  -f <备份文件名>

注:--dbname指定的是用于建立连接的初始数据库(通常为postgres),pg_dumpall会自动备份该实例下的所有数据库。

方法2:使用环境变量

通过设置PostgreSQL对应的环境变量来传递参数,无需在命令行中逐个指定,适合频繁使用的场景:

# 设置连接及SSL环境变量
export PGPORT=<port>
export PGHOST=<host>
export PGUSER=<user>
export PGDATABASE=<db>
export PGSSLCERT=<cert>
export PGSSLKEY=<key>
export PGSSLROOTCERT=<ca.crt>
export PGSSLMODE=require

# 执行备份
pg_dumpall -f <备份文件名>

错误原因说明

你之前执行的命令报错,是因为pg_dumpall会将你传入的完整连接字符串识别为多余的位置参数,而非解析为连接配置。这是pg_dumpall与pg_dump在参数处理逻辑上的核心区别。

内容的提问来源于stack exchange,提问作者atx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:42:12