帶有 ssl 參數的 pg_restore - 如何正確指定參數?

帶有 ssl 參數的 pg_restore - 如何正確指定參數?

我有 PostgreSQL 11 伺服器,只有 ssl 連線(這是我的雲端供應商的「託管 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。

相關內容