SSL 매개변수가 있는 pg_restore - 매개변수를 올바르게 지정하는 방법은 무엇입니까?

SSL 매개변수가 있는 pg_restore - 매개변수를 올바르게 지정하는 방법은 무엇입니까?

SSL 전용 연결이 있는 PostgreSQL 11 서버가 있습니다(클라우드 공급자가 제공하는 "관리형 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방법을 모르겠습니다.

답변1

다음과 같이 시도해 보세요:

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

그러나 YandexCloud 외부에서 실행하는 경우 현재 마스터 호스트에 공용 IP가 할당되어 있는지 확인하세요.

관련 정보