pg_restore com parâmetros SSL - como especificar parâmetros da maneira certa?

pg_restore com parâmetros SSL - como especificar parâmetros da maneira certa?

Eu tenho um servidor PostgreSQL 11 com conexões somente SSL (é o serviço "Managed PostgreSQL" do meu provedor de nuvem)

Na documentação psqla conexão com este servidor deveria ser assim:

psql "host=xxx.mdb.yandexcloud.net \
      port=6432 \
      sslmode=verify-full \
      dbname=<database> \
      user=<user>\
      target_session_attrs=read-write"

Com este comando consigo me conectar ao servidor com sucesso. Portanto, o próximo passo é restaurar meu banco de dados do backup para esse servidor.

Anteriormente eu usei este comando para restaurar o backup para meu antigo servidor postgreSQL:

pg_restore -d <database> -O -c -v -x <file>.dump

Então, tentei fazer isso:

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

e recebi este erro:

pg_restore: too many command-line arguments (first is "<file>.dump")
Try "pg_restore --help" for more information.

Então tudo que preciso é acertar pg_restore, mas não sei como.

Responder1

Tente assim:

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

Mas certifique-se (se você executar isso de fora do YandexCloud) que o host mestre atual tenha um IP público atribuído.

informação relacionada