ページの先頭行へ戻る
Enterprise Postgres 9.5 クラスタ運用ガイド
FUJITSU Software

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

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

参照

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

  • postgresql.confファイルの詳細は、“A.1 プライマリサーバで設定するパラメータ”を参照してください。

  • mc_ctlコマンドの詳細は、“リファレンス”を参照してください。

以下の手順で行います。

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

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

    注意

    データベース多重化運用で異常が発生し、縮退運転になった場合に、スタンバイサーバに対して復旧作業が必要です。スタンバイサーバの復旧にpg_rewindコマンドを使用する場合には、いくつかの前提条件があります。initdbコマンド実行時にチェックサムを有効にすると、その前提条件の1つを満たすことができます。(必須ではありません)

    前提条件の詳細については“5.1.1.1.3 異常原因の特定とリカバリ”を参照してください。

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

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

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

  3. スタンバイサーバからの接続を認証するために、pg_hba.confファイルに以下のエントリーを追加します。本ファイルは、あとでスタンバイサーバに複写します。

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

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

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

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

    注意

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    表3.2 設定するパラメータ

    パラメータ

    指定内容

    備考

    wal_level

    hot_standby

    max_wal_senders

    スタンバイサーバ数+ 1

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

    synchronous_standby_names

    'スタンバイサーバ名'

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

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

    hot_standby

    on

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

    wal_keep_segments

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

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

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

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

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

    wal_sender_timeout

    タイムアウト時間(ミリ秒)

    プライマリサーバ側でのトランザクションログの転送に異常が発生したと判断する時間を指定します。

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

    archive_mode

    on

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

    archive_command

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

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

    backup_destination

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

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

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

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

    max_connections

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

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

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

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

  6. Mirroring Controllerのプロセスを起動します。

    自動切り替え/切り離しを有効化する場合

    インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで-fオプションを指定して実行します。これにより、自動切り替え/切り離しの有効化を行います。

    なお、-fオプションを指定せずに起動した場合、自動切り替え/切り離しは有効になりません。有効にするには、Mirroring Controllerを起動したあとにmc_ctlコマンドをenable-failoverモードで実行するか、-fオプションを指定してMirroring Controllerを再起動してください。

    例)
    $ mc_ctl start -M /mcdir/inst1 -w -f
    自動切り替え/切り離しを有効化しない場合

    インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで実行します。

    例)
    $ mc_ctl start -M /mcdir/inst1 -w
  7. pgx_dmpallコマンドを使用して、バックアップを取得します。