pg_restore с параметрами ssl - как правильно указать параметры?

pg_restore с параметрами ssl - как правильно указать параметры?

У меня есть сервер PostgreSQL 11 с подключениями только по SSL (это услуга «Managed 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-адрес.

Связанный контент