У меня есть сервер 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-адрес.