
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가 할당되어 있는지 확인하세요.