![pg_restore 带有 ssl 参数-如何正确指定参数?](https://linux22.com/image/740387/pg_restore%20%E5%B8%A6%E6%9C%89%20ssl%20%E5%8F%82%E6%95%B0-%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E6%8C%87%E5%AE%9A%E5%8F%82%E6%95%B0%EF%BC%9F.png)
我有一台仅支持 SSL 连接的 PostgreSQL 11 服务器(这是我的云提供商提供的“托管 PostgreSQL”服务)
在文档中psql
与该服务器的连接应该是这样的:
psql "host=xxx.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<database> \
user=<user>\
target_session_attrs=read-write"
使用此命令,我可以成功连接到服务器。因此,下一步是将我的数据库从备份恢复到该服务器。
以前我使用此命令将备份恢复到我的旧 postgreSQL 服务器:
pg_restore -d <database> -O -c -v -x <file>.dump
因此,我尝试这样做:
pg_restore "host=xxx.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<database> \
user=<user>\
target_session_attrs=read-write" -d <database> -O -c -v -x <file>.dump
并收到此错误:
pg_restore: too many command-line arguments (first is "<file>.dump")
Try "pg_restore --help" for more information.
所以我需要以正确的方式设置pg_restore
,但我不知道如何设置。
答案1
尝试这样做:
PGTARGETSESSIONATTRS=read-write PGSSLMODE=verify-full pg_restore -Fd \
-v -h <host(s)> -p6432 -U<user> -d <db> --single-transaction --no-privileges <backup folder>
但要确保(如果您确实从 YandexCloud 外部运行此程序)当前主主机已分配公共 IP。