pg_restore con parámetros ssl: ¿cómo especificar los parámetros de manera correcta?

pg_restore con parámetros ssl: ¿cómo especificar los parámetros de manera correcta?

Tengo un servidor PostgreSQL 11 con conexiones solo SSL (es el servicio "PostgreSQL administrado" por mi proveedor de nube)

En la documentación, psqlla conexión a este servidor debería ser así:

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

Con este comando puedo conectarme al servidor exitosamente. Entonces, el siguiente paso es restaurar mi base de datos desde la copia de seguridad a ese servidor.

Anteriormente utilicé este comando para restaurar la copia de seguridad en mi antiguo servidor PostgreSQL:

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

Entonces, intenté hacer esto:

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

y obtuve este error:

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

Así que todo lo que necesito es configurarlo pg_restorecorrectamente, pero no sé cómo.

Respuesta1

Prueba así:

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

Pero asegúrese (si ejecuta esto desde fuera de YandexCloud) de que el host maestro actual tenga una IP pública asignada.

información relacionada