PostgreSQL データベースクラスターを適切に管理するために、PostgreSQL Recovery Kit では postmaster プロセスをポートの引数 “-p port” で実行する必要があります。このポートは、PostgreSQL リソース階層を作成し、作成された階層を監視するために必要です。postmaster プロセスの現在の引数一覧を表示するには、PostgreSQL データベースクラスターのデータディレクトリにある postmaster.opts ファイルを参照してください。このファイルの内容の例を以下に示します。

C:/Program Files/PostgreSQL/9.6/bin/postgres.exe "-D" "E:\PGSQL1" "-p" "5432"

この例では、ポートの引数を指定して postmaster プロセスを実行しています。 postmaster プロセスがポートの引数で実行されていない場合は、以下の 2つの方法のいずれかを使用して追加する必要があります。

  • 既存の Windows サービスインスタンスにポートの引数を追加する
  • Windows 以外のサービスインスタンスにポートの引数を追加する

既存の Windows サービスインスタンスにポートの引数を追加する

PostgreSQL Recovery Kit によって保護される PostgreSQL データベースクラスターが、PostgreSQL ソフトウェア v9.6 の初期インストールで作成された postgresql-x64-9.6 サービスなどの Windows サービスを介して実行されている場合、サービスのスタートアップコマンドラインを変更する必要があります。これは、以下の手順で実施できます。

  1. 既存の PostgreSQL データベースクラスターインスタンスを停止します。これは、以下のいずれかの方法で実施します。

    1. Windows サービスインターフェース (services.msc) を使用して、サービスの停止を選択する

    2. コマンドラインユーティリティ "sc" を使用する(例: sc stop service_name)

    3. コマンド "net" を使用する(例: net stop service_name)

  1. サービスのスタートアップコマンドラインを変更します。これは、"sc" ユーティリティを使用するコマンドラインまたはレジストリのスタートアップコマンドラインを編集することで実行できます。 注記: PostgreSQL サービスのスタートアップコマンドラインは、pg_ctl.exe ユーティリティを使用します。pg_ctl ユーティリティから postmaster プロセスに引数を渡すには、"-o" 引数を使用する必要があります。"-o" 引数には、以下に示す変更で使用される "-p port" のような postmaster スタートアップオプションの引用符付きリストがあります。 "sc" コマンドラインユーティリティを使用してスタートアップコマンドラインを編集するには、以下の手順に従ってください。この例では、postgresql-x64-9.6 サービスを使用しています。

    1. サービスの binPath (スタートアップコマンドライン)を取得します。例えば、"sc qc postgresql-x64-9.6" は次のようになります(この例では、スタートアップコマンドラインの出力行のみが表示されます)。
      BINARY_PATH_NAME : “C:\Program Files\PostgreSQL\9.6\bin\pg_ctl.exe” runservice -N “postgresql-x64-9.6” -D “E:\PGSQL1” –w

  2. binPath を更新してください。 注記: binPath 引数では "="の後ろには 1つのスペースがあり、値は二重引用符で囲まなければなりません。したがって、埋め込みの二重引用符をエスケープする必要があります。
    sc config postgresql-x64-9.6 binPath= “\“C:\Program Files\PostgreSQL\9.6\bin\pg_ctl.exe\” runservice -N \“postgresql-x64-9.6\” -D \“E:\PGSQL1\” –w –o \”-p 5432\” “

レジストリ内のスタートアップコマンドラインを編集するには、regedit などのレジストリ編集ツールを使用する必要があります。

a. regedit を使用して、サービス ImagePath のレジストリ値を見つけます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\postgresql-x86-9.6\ImagePath

b. 既存のコマンドラインの最後にポートの引数を追加して、ImagePath の値を変更します。

-o “-p 5432”

  1. 既存の PostgreSQL データベースクラスターのインスタンスを再起動します。これは、以下のいずれかの方法で実施できます。
    1. Windows サービスインターフェース (services.msc) を使用して、サービスの開始を選択する

    2. コマンドラインユーティリティ "sc" を使用する(例: sc start service_name)

    3. コマンド “net” を使用する (例: net start service_name)

  1. postmaster.opts ファイルをチェックして、postmaster プロセスがポートの引数で実行されていることを確認します。

Windows 以外のサービスインスタンスにポートの引数を追加する

PostgreSQL データベースクラスター用の Windows サービスが存在しない場合は、PostgreSQL ユーティリティ pg_ctl.exe を使用して、PostgreSQL データベースクラスターの停止と再起動を実行する必要があります。これは、以下の手順で行うことができます。

  1. PostgreSQL データベースクラスターを停止する

pg_ctl stop –D F:\PGSQL2

  1. PostgreSQL データベースクラスターを起動する

pg_ctl start –D F:\PGSQL2 –w –o “-p 5433”

  1. 先述のように postmaster.opts ファイルをチェックして、postmaster プロセスがポートの引数で実行されていることを確認します。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信