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 が割り当てられていることを確認してください。

関連情報