ページの先頭行へ戻る
Enterprise Postgres 14 クラスタ運用ガイド(データベース多重化編)
FUJITSU Software

7.3.3 プライマリ候補サーバのインスタンスの作成・設定・登録

プライマリ候補サーバのインスタンスの作成・設定・登録について、説明します。

  1. セットアップの準備作業を行います。

    “導入ガイド(サーバ編)”の“セットアップの準備作業”を参照して、プライマリ候補サーバにインスタンスを作成する前の準備作業を行います。

  2. 透過的データの暗号化機能を利用する場合は、格納データの暗号化の設定を行います。

    運用センタのプライマリサーバのキーストア・ファイルを待機センタのプライマリ候補サーバにコピーします。

    詳細は、“運用ガイド”の“データベース多重化運用”を参照して、設定してください。

  3. インスタンスを複製します。

    pg_basebackupコマンドを実行して、待機センタのプライマリ候補サーバに運用センタのプライマリサーバのインスタンスを複製します。この時、pg_basebackupコマンドにより、各オプションに指定された運用センタのプライマリサーバへの接続情報を使用して、postgresql.auto.confファイルにprimary_conninfoパラメータが設定されます。また、プライマリ候補サーバにstandby.signalファイルが作成されます。

    例)
    > pg_basebackup -D D:\database\inst1 -X fetch --waldir=E:\transaction\inst1 --progress --verbose -R --dbname="application_name=待機センタのプライマリ候補サーバ名" -h 運用センタのプライマリサーバのIPアドレス -p 運用センタのプライマリサーバのポート番号

    注意

    • pg_basebackupコマンドには、-Rオプションを指定して実行し、standby.signalファイルを作成してください。standby.signalを作成しない場合、Mirroring Controllerを待機センタモードで起動することができません。standby.signalファイルの詳細については、“PostgreSQL Documentation”の“Hot Standby”を参照してください。

    • 運用センタのプライマリサーバへの接続がパスワード認証を必要とする方式の場合、自動で認証が行われるようにしておく必要があります。pg_basebackupコマンドの-Rオプションを指定し、--dbnameオプションにpasswordパラメータを指定すると、 pg_basebackupコマンドにより、postgresql.auto.confファイルのprimary_conninfoパラメータにパスワードが設定されて自動的に接続できるようになります。

      postgresql.auto.confファイルのprimary_conninfoパラメータにパスワードを設定しない場合は、パスワードファイル(%APPDATA%¥postgresql¥pgpass.conf)を作成してreplicationデータベースに対するパスワードを設定してください。

    • primary_conninfoパラメータは、postgresql.confファイルには設定せず、pg_basebackupコマンドを使用してpostgresql.auto.confファイルのみに設定してください。

  4. postgresql.confファイルの以下のパラメータを変更します。

    表7.3 変更するパラメータ

    パラメータ

    変更内容

    following_async_walsenders

    パラメータを削除します。

    synchronous_standby_names

    '待機センタのスタンバイサーバ名'を指定します。

    表7.4 設定するパラメータ

    パラメータ

    指定内容

    restore_command

    'cmd /c ""インストールディレクトリ\\bin\\pgx_walcopy.cmd" "広域回線異常時の手動転送先の一時ディレクトリ\\%f" "%p""'

    archive_cleanup_command

    'pg_archivecleanup "広域回線異常時の手動転送先の一時ディレクトリ" "%r"'


    待機センタでデータベース多重化機能を利用しない場合

    上記のパラメータの変更に加えて、以下のパラメータを変更してください。

    表7.5 変更するパラメータ

    パラメータ

    変更内容

    restart_after_crash

    本パラメータはoffのままでも問題ありませんが、   削除するか、あるいは、onを指定することも可能です。

    ポイント

    restore_commandパラメータを使用することで、広域回線異常時に待機センタのプライマリ候補サーバに手動転送した運用センタのアーカイブログを適用し、RPOを高めることができます。

    注意

    広域回線異常時に手動転送されたアーカイブログファイルと、バックアップデータを利用したリカバリに備えて取得するアーカイブログファイルは異なります。このため、restore_commandパラメータ、およびarchive_cleanup_commandパラメータには、archive_commandパラメータに指定したバックアップデータ格納先ディレクトリを指定しないでください。

  5. Windowsサービスへインスタンスを登録します。

    “導入ガイド(サーバ編)”の“インスタンスの作成”を参照して、インスタンスをWindowsサービスへ登録します。なお、pg_ctlコマンドのregisterモードには、以下のオプションを指定します。

    • -Nオプションのサービス名には、サーバ定義ファイルのdb_instance_service_nameパラメータに指定した名前を指定する

    待機センタでデータベース多重化機能を利用する場合

    -Sオプションに“demand”を指定して、システム起動時に自動的にサービスを起動しない

    待機センタでデータベース多重化機能を利用しない場合

    -Sオプションに“auto”を指定して、システム起動時に自動的にサービスを起動する

    注意

    • 多重化したインスタンスのWindowsサービスは、Mirroring Controllerが起動するため、自動起動を行う設定にしないでください。

    • プライマリ候補サーバとスタンバイサーバを同一サーバ内に構築する場合には、プライマリ候補サーバとFUJITSU Enterprise Postgresのインスタンスの登録サービス名が重複しないように登録してください。

  6. インスタンスとMirroring Controllerの起動順序を決めます。

    待機センタでデータベース多重化機能を利用する場合

    本手順の実施は不要です。

    待機センタでデータベース多重化機能を利用しない場合

    インスタンスのWindowsサービス登録後、dependパラメータを指定したsc configコマンドを実行し、インスタンス起動後にMirroring Controllerを起動するよう設定を変更します。

  7. pg_ctlコマンド、またはWindowsサービスを使用して、プライマリ候補サーバのインスタンスを起動します。

  8. ALTER SYSTEM SET文を使用して、postgresql.auto.confファイルのprimary_conninfoパラメータに指定する接続文字列を以下のように設定します。

    待機センタでデータベース多重化機能を利用する場合
    表7.6 接続文字列の設定内容

    キーワード

    指定内容

    備考

    host

    運用センタのプライマリサーバのホスト名,運用センタのスタンバイサーバのホスト名

    運用センタのプライマリサーバに接続するための情報をPostgreSQLの接続文字列の形式で指定します。

    host、port、application_name、target_session_attrsの指定は必須です。

    application_nameには、自サーバのサーバ識別子.confファイルのprimarycenter_primary_conninfo、standbycenter_primary_conninfoパラメータで設定するapplication_nameの値と同じ値を設定します。

    target_session_attrsにはread-writeを設定します。

    port

    運用センタのプライマリサーバのポート番号,運用センタのスタンバイサーバのポート番号

    application_name

    待機センタのプライマリ候補サーバ名

    target_session_attrs

    read-write

    例)
    psqlコマンドを使用した場合の実行例を以下に示します。
    postgres=# ALTER SYSTEM SET primary_conninfo='host=運用センタのプライマリサーバのホスト名,運用センタのスタンバイサーバのホスト名 port=運用センタのプライマリサーバのポート番号,運用センタのスタンバイサーバのポート番号 application_name=待機センタのプライマリ候補サーバ名 target_session_attrs=read-write';

    注意

    • 必須の接続文字列以外に必要な情報がある場合は、primary_conninfoパラメータの設定に含めてください。

    • postgresql.auto.confファイルのprimary_conninfoパラメータの設定と、サーバ識別子.confファイルのprimarycenter_primary_conninfoパラメータの設定は、プライマリ候補サーバ内で同じ値を指定してください。サーバ識別子.confファイルのprimarycenter_primary_conninfoパラメータの設定方法の詳細は、“7.3.2 プライマリ候補サーバの災害対策運用のセットアップ”を参照してください。

    • primary_conninfoパラメータは、postgresql.confファイルには設定せず、ALTER SYSTEM SET文を使用してpostgresql.auto.confファイルのみに設定してください。

    ポイント

    postgresql.auto.confファイルのprimary_conninfoパラメータのtarget_session_attrsにread-writeを指定することで、待機センタのプライマリ候補サーバがhostおよびportに指定する接続先情報の中から運用センタのプライマリサーバを自動で認識します。運用センタでの切り替え発生時に、待機センタのプライマリ候補サーバが自動的に運用センタの新プライマリサーバに接続できるように、primarycenter_primary_conninfoパラメータのhostおよびportには、運用センタのプライマリサーバとスタンバイサーバの両方を接続先情報として指定してください。

    参照

    primary_conninfoの詳細については、“PostgreSQL Documentation”の“Setting Up a Standby Server”を参照してください。


    待機センタでデータベース多重化機能を利用しない場合
    表7.7 接続文字列の変更内容

    キーワード

    指定内容

    host

    運用センタのプライマリサーバのホスト名, 運用センタのスタンバイサーバのホスト名

    port

    運用センタのプライマリサーバのポート番号, 運用センタのスタンバイサーバのポート番号

    application_name

    待機センタのプライマリ候補サーバ名

    target_session_attrs

    read-write

    例)
    psqlコマンドを使用した場合の実行例を以下に示します。
    postgres=# ALTER SYSTEM SET primary_conninfo='host=運用センタのプライマリサーバのホスト名,運用センタのスタンバイサーバのホスト名 port=運用センタのプライマリサーバのポート番号,運用センタのスタンバイサーバのポート番号 application_name=待機センタのプライマリ候補サーバ名 target_session_attrs=read-write';

    注意

    • 必須の接続文字列以外に必要な情報がある場合は、primary_conninfoパラメータの設定に含めてください。

    • primary_conninfoパラメータは、postgresql.confファイルには設定せず、ALTER SYSTEM SET文を使用してpostgresql.auto.confファイルのみに設定してください。

    ポイント

    postgresql.auto.confファイルのprimary_conninfoパラメータのtarget_session_attrsにread-writeを指定することで、待機センタのプライマリ候補サーバがhostおよびportに指定する接続先情報の中から運用センタのプライマリサーバを自動で認識します。

    参照

    primary_conninfoの詳細については、“PostgreSQL Documentation”の“Standby Server Settings”を参照してください。

  9. pg_ctlコマンド、またはWindowsサービスを使用して、プライマリ候補サーバのインスタンスを停止します。

参照