
Eu tenho um servidor PostgreSQL 11 com conexões somente SSL (é o serviço "Managed PostgreSQL" do meu provedor de nuvem)
Na documentação psql
a 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.