Назад | Перейти на главную страницу

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 правильно, но я не знаю как.

Попробуйте вот так:

PGTARGETSESSIONATTRS=read-write PGSSLMODE=verify-full pg_restore -Fd \
-v -h <host(s)> -p6432 -U<user> -d <db> --single-transaction --no-privileges <backup folder>

Но убедитесь (если вы запустите это вне Яндекс.Облака), что текущему главному хосту назначен общедоступный IP-адрес.