
Tengo un servidor PostgreSQL 11 con conexiones solo SSL (es el servicio "PostgreSQL administrado" por mi proveedor de nube)
En la documentación, psql
la 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_restore
correctamente, 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.