pg_restore 带有 ssl 参数-如何正确指定参数?

pg_restore 带有 ssl 参数-如何正确指定参数?

我有一台仅支持 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。

相关内容