ページの先頭行へ戻る
Symfoware Server V12.1.0 クラスタ運用ガイド
FUJITSU Software

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

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

注意

データベース多重化運用を行う場合、WebAdminと組み合わせて使用できません。

また、一度データベース多重化運用を行ったインスタンスは、データベース多重化運用をやめて単体のサーバで行う運用に変更した場合でも、WebAdminからはアクセスできません。

参照

  • pg_hba.confファイルの詳細は、“PostgreSQL文書”の“クライアント認証”を参照してください。

  • 各パラメータの詳細については、“付録B パラメータ”を参照してください。

以下の手順で行います。

  1. プライマリサーバにログインします。

  2. “導入ガイド(サーバ編)”の“セットアップ”を参照して、Symfoware Serverのセットアップおよびインスタンスの作成を行います。

    データ格納先ディレクトリは、半角空白以外のASCII文字で指定してください。

  3. 格納データの暗号化の設定を行います。

    キーストア・ファイルを作成します。

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

  4. プライマリサーバからスタンバイサーバへ接続してトランザクションログを送信するために、pg_hba.confファイルに以下のエントリーを追加します。本ファイルは、あとでスタンバイサーバに複写します。

    # TYPE    DATABASE        USER        ADDRESS                       METHOD
      host    replication     symfo       スタンバイサーバのアドレス    認証方式
      host    replication     symfo       プライマリサーバのアドレス    認証方式

    プライマリサーバおよびスタンバイサーバのアドレスには、ログ転送用ネットワークに接続するIPアドレスを指定します。また、すべてのサーバがスタンバイサーバにもプライマリサーバにもなることができるので、データベース多重化システムを構成するすべてのサーバのアドレスについて、エントリーを追加してください。

    認証方式には、trust認証以外の方式を設定します。

    自動で認証を行うために、インスタンス管理者ユーザーのホームディレクトリに、.pgpassファイルを作成してreplicationデータベースに対するパスワードを指定します。これにより、インスタンス管理者のOSユーザーとデータベースに登録したユーザーが同一となり、不特定のユーザーによる接続ではないことが検証できます。また、事前に設定したパスワードが認証に用いられて、自動的に接続できます。

    なお、.pgpassファイルに指定したユーザーID/パスワードと同じ内容をスタンバイサーバのrecovery.confファイルのprimary_conninfoパラメータに必ず指定してください。詳細は、“B.2 スタンバイサーバで設定するパラメータ”を参照してください。

    注意

    trust認証に設定すると、プライマリサーバにログイン可能なすべてのOSユーザーが接続できてしまうため、悪意のあるユーザーがいた場合には、誤ったトランザクションログを送信することで、スタンバイサーバのデータを破壊したり、業務システムをクラッシュさせたりしてしまいます。

    なお、認証方式の詳細は、“PostgreSQL文書”の“認証方式”を参照してください。

  5. プライマリサーバのインスタンス管理者ユーザーがデータベースアプリケーションとして接続できるように設定します。

    Mirroring Controllerがインスタンスの異常を監視するために、インスタンス管理者ユーザーのIDでインスタンスに接続できるようにするための設定です。postgresデータベースに接続できるように設定します。なお、Mirroring Controllerのインスタンスへの接続はJDBC接続で行います。

    認証方式には、trust認証以外の方式を設定します。

    • パスワード認証を行う場合

      サーバ識別子.confファイルのdb_instance_passwordパラメータにインスタンス管理者のユーザーIDに対応するパスワードを指定してください。このパスワードを使用して、データベースのインスタンスへの接続を行います。db_instance_passwordパラメータにパスワードを指定しない場合、Mirroring Controllerからデータベースのインスタンスへの接続が失敗して、インスタンスのプロセス監視を正常に行えません。

    • パスワード認証を行わない場合

      db_instance_passwordパラメータへの指定は不要です。

      db_instance_passwordパラメータにインスタンス管理者のユーザーIDに対応するパスワードを指定しても、指定したパスワードは無視されます。

    設定例を以下に示します。

    # TYPE    DATABASE        USER        ADDRESS        METHOD
      host    postgres        symfo       127.0.0.1/32   認証方式

    trust認証の注意点については、手順4の注意を参照してください。

  6. データベース多重化運用を行うためにpostgresql.confファイルに以下のパラメータを指定します。

    postgresql.confファイルはスタンバイサーバのインスタンス作成時に複製されます。したがって、スタンバイサーバで必要なパラメータについても設定します。

    postgresql.confファイルを編集したあと、インスタンスを再起動してください。

    表6.1 設定するパラメータ

    パラメータ

    指定内容

    備考

    wal_level

    hot_standby

    max_wal_senders

    スタンバイサーバ数+ 1

    スタンバイサーバの数(n)は1個なので、必ず2を指定してください。

    synchronous_standby_names

    'スタンバイサーバ名'

    スタンバイサーバを識別する任意の名前を指定してください。

    スタンバイサーバのrecovery.confには、ここで指定したスタンバイサーバ名を指定します。

    Mirroring Controller起動中は、本パラメータを変更しないでください。

    hot_standby

    on

    スタンバイサーバで参照系の業務を行う場合に指定してください。(注1)

    wal_receiver_status_interval

    時間間隔(秒)

    この値は、プライマリサーバのpostgresql.confファイルに設定するreplication_timeoutの値より小さくする必要があります。

    wal_keep_segments

    ファイルセグメント数(個数)

    本パラメータの設定値を越える遅延が発生した場合、プライマリサーバはスタンバイサーバが今後必要とするWALセグメントを削除する可能性があります。

    また、保守作業などでスタンバイサーバを停止させる場合、停止時間を考慮してWALセグメントが削除されない値を設定してください。

    本パラメータの設定には、データベース多重化運用を安定化させるために考慮することがあります。詳細は、“6.10.1 データベース多重化運用を安定させるためのチューニング”を参照してください。

    WALセグメントの見積もりの詳細は、“導入ガイド(サーバ編)”の“トランザクションログの容量の見積り”を参照してください。

    replication_timeout

    タイムアウト時間(秒)

    トランザクションログの転送に異常が発生したと判断する時間を指定します。

    サーバ識別子.confファイルの(heartbeat_interval + heartbeat_timeout) * heartbeat_retry の値と合わせることで、異常と判断する時間を統一できます。

    archive_mode

    on

    アーカイブログモードを指定します。

    archive_command

    'インストールディレクトリ/bin/pgx_xlogcopy.cmd "%p" "バックアップデータ格納先ディレクトリ/archived_xlog/%f"'

    トランザクションログを保存するコマンドと格納先パス名を指定します。

    backup_destination

    バックアップデータ格納先のディレクトリ名

    バックアップデータ格納先のディレクトリ名を指定します。

    指定するディレクトリは、インスタンス管理者のみがアクセスできるように権限を設定してください。

    他のサーバのバックアップデータを使ってリカバリを正しく行うために、全てのサーバで同じパスになるように指定してください。

    max_connections

    スタンバイサーバ数+mc_ctl statusの同時実行数(注2)+2+インスタンスへのクライアントの同時接続数+superuser_reserved_connectionsの値

    スタンバイサーバの接続数の制限値+mc_ctl statusの同時実行数(注2)+2を含めて指定します。

    指定値は、クライアントアプリケーションからの接続数とインスタンス管理のための接続数を制限するためにも使用されます。

    詳細は、“導入ガイド(サーバ編)”の“initdbコマンドでインスタンスを作成した場合”および“PostgreSQL文書”の“接続と認証”を参照してください。

    (注1) Mirroring Controllerオプション機能で使用します。

    (注2) mc_ctlコマンドのstatusモードでの同時実行数です。

  7. バックアップの取得

    pgx_dmpallコマンドを使用して、バックアップを採取してください。