
我有 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。