スタンバイサーバのデータベース多重化運用のセットアップについて、説明します。
データベース多重化機能では、動作に必要なファイルをMirroring Controller管理ディレクトリで管理します。
1つのインスタンスに対して1つのMirroring Controller管理ディレクトリが対応します。
注意
Mirroring Controller管理ディレクトリは、FUJITSU Enterprise Postgresが管理するディレクトリとともに誤って削除されたり、FUJITSU Enterprise Postgresのリカバリとともに古いファイルに戻されたりすることがないようにFUJITSU Enterprise Postgresが管理するディレクトリ配下に配置しないでください。
大きなデータベースのスタンバイサーバを作成するときには、業務システムの運用を停止するか、wal_keep_sizeパラメータに大きい値を指定するか、またはレプリケーションスロットを使用してください。
pg_basebackupコマンドでスタンバイサーバを構築してから起動するまでに発生したWALはプライマリサーバで保持される必要がありますが、保持できるWALセグメントの数がwal_keep_sizeパラメータで制約されるためです。
また、wal_keep_sizeパラメータの設定には、データベース多重化運用を安定化させるために考慮することがあります。詳細は、“2.11.1 データベース多重化運用を安定させるためのチューニング”を参照してください。
参照
FUJITSU Enterprise Postgresが管理するディレクトリの詳細は、“導入ガイド(サーバ編)”の“セットアップ”の“資源配置用のディレクトリの準備”を参照してください。
pg_basebackupコマンドの詳細については、“PostgreSQL Documentation”の“Reference”の“pg_basebackup”を参照してください。
mc_ctlコマンドの詳細は、“リファレンス”を参照してください。
セットアップで編集する各パラメータの詳細については、“付録A パラメータ”を参照してください。
レプリケーションスロットの詳細は“PostgreSQL Documentation”の“Replication Slots”を参照してください。
以下の手順で行います。
スタンバイサーバにログインします。
データベース多重化機能で必要なファイルを格納するMirroring Controller管理ディレクトリを作成します。
Mirroring Controller管理ディレクトリは、ASCII文字で指定してください。
また、インスタンス管理者ユーザーに対する書き込み権限を付与してください。
プライマリサーバのnetwork.confファイルをコピーして配置します。
プライマリサーバのセットアップで定義したnetwork.confファイルをコピーして、スタンバイサーバのMirroring Controller管理ディレクトリ配下に配置してください。
WebAdminのようにサービスファイルを用いて空きポート番号を検索して使用するプログラムが存在するため、network.confファイルに指定したスタンバイサーバ側のポート番号をサービスファイルに登録してください。
なお、サービス名は、任意の名前で登録してください。
network.confファイルのアクセス権限を変更します。
インスタンス管理者ユーザーにのみ読み込み権限と書き込み権限を設定してください。インスタンス管理者ユーザー以外にアクセス権限が与えられていた場合には、mc_ctlコマンドは動作しません。これにより、インスタンス管理者ユーザー以外がMirroring Controllerを操作することを防止します。
例) インスタンス管理者ユーザーのOSのユーザー名が“fsepuser”の場合に、インスタンス管理者ユーザーを所有者にしてフルアクセス権を付与する場合の実行例を示します。Windowsサーバに“fsepuser”でログインしている場合の操作手順です。
> takeown /f network.conf > icacls network.conf /reset > icacls network.conf /inheritance:r > icacls network.conf /grant fsepuser:F
プライマリサーバのサーバ識別子.confファイルをコピーして配置します。
プライマリサーバのセットアップで定義したサーバ識別子.confファイルをコピーして、スタンバイサーバのMirroring Controller管理ディレクトリ配下に配置します。
注意
プライマリサーバとスタンバイサーバを同一サーバ内に構築する場合には、サーバ識別子.confファイルを編集してプライマリサーバと名前が重複しないように以下のパラメータを変更してください。
db_instance_service_nameパラメータ(FUJITSU Enterprise Postgresのインスタンスの登録サービス名)
mc_service_nameパラメータ(Mirroring Controllerの登録サービス名)
event_sourceパラメータ(イベントソース名)
サーバ識別子.confファイルのアクセス権限を変更します。
インスタンス管理者ユーザーにのみ読み込み権限と書き込み権限を設定してください。インスタンス管理者ユーザー以外にアクセス権限が与えられていた場合には、mc_ctlコマンドは動作しません。
例) インスタンス管理者ユーザーのOSのユーザー名が“fsepuser”の場合に、インスタンス管理者ユーザーを所有者にしてフルアクセス権を付与する場合の実行例を示します。Windowsサーバに“fsepuser”でログインしている場合の操作手順です。
> takeown /f サーバ識別子.conf > icacls サーバ識別子.conf /reset > icacls サーバ識別子.conf /inheritance:r > icacls サーバ識別子.conf /grant fsepuser:F
Windowsファイアウォールを設定します。
Windowsファイアウォール機能を有効にする場合、手順3でネットワーク定義ファイルに指定したMirroring Controllerのポート番号を有効にしてください。詳細は、“E.2 Windowsファイアウォールの設定”を参照してください。
WindowsサービスへMirroring Controllerを登録します。
mc_ctlコマンドをregisterモードで実行します。
mc_ctlコマンドの-Pオプションには、コマンドを実行したOSユーザーのパスワードを指定してください。
例)
> mc_ctl register -M D:\mcdir\inst1 -P ********
注意
mc_ctlコマンドの-Pオプションにパスワードを指定するときには、セキュリティ上の観点から他のユーザーに参照されないように注意してください。
参考
mc_ctlコマンドの-SオプションでMirroring Controllerの自動起動・停止の設定を行うことができます。詳細は、“2.12 多重化したインスタンスとMirroring Controllerの自動起動・停止の設定”を参照してください。
手順5でサーバ識別子.confファイルのmc_service_nameパラメータに指定したサービス名で、WindowsサービスにMirroring Controllerが登録されます。
sc qcコマンドを実行して、登録状態を確認することもできます。