• 締切済み

PostgreSQLのリプリケーション アーカイブ

実行環境  OS:win7 64bit     プライマリーとスタンバイをローカルLANで接続  PosgreSQLのバージョン:9.4 以下のように設定しました。 A.プライマリのpostgres.confを修正    1.wal_level=hot_standby    2.max_wal_sender=3    3.archive_mode=off    4・wal_keep_segment=8 B.basebackupを行う C.スタンバイの設定    1.recovery.conf       standby_mode='on'       primary_conninfo='host=192.168.1.100 port=5432 user=repli possword=xxx'    2.postgres.conf       hot_stndby=on 以上のように設定すると、リプリケーションが可能ですが、 これをアーカイブモードにすると、COPYコマンドでエラーが発生します。 プライマリサーバーにアーカイブ場所を設定すればエラーは出ないのですが、 スタンバイ側に設定するとエラーになります。 アーカイブのコマンドは  プライマリのpostgres.confに   archive_mode=on   archive_command='copy "c:\\postgresql\\data\\%p" "\\standbyPC\\srch\\%f""' と設定しています。 この設定でサービスを起動すると、以下のようなLOGが出力されます。 指定されたパスが見つかりません。 2015-08-16 07:48:25 JST LOG: アーカイブコマンドがリターンコード 1で失敗しました 2015-08-16 07:48:25 JST 詳細: 失敗したアーカイブコマンドは次のとおりです: copy "c:\PostgreSQL\data\pg_xlog\000000010000000000000019" "\standbyPC\PostgreSQL\arch\000000010000000000000019"  コマンドプロンプトから実行すると、正常にコピーされます。 どこが間違っているのでしょうか?

みんなの回答

noname#212058
noname#212058
回答No.2

試したことが無いので想像ですが、アーカイブ先に書き込み権限がないのでは。 PostgreSQL の実行ユーザは、サービス起動ならば "NETWORK SERVICE" ですよね。

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

コピー先のパスのコンピュータ名の前のバックスラッシュが足りない気がしますが、下記の様に4つにしたらどうですか? "\\\\standbyPC\\srch\\%f" 元々2つあるバックスラッシュがエスケープされて合計4つになるかなと。

関連するQ&A