スタンバイサーバのインスタンスの作成・設定・登録について、説明します。
注意
Mirroring Controllerは、Windowsサービスへ登録されているインスタンスを対象にします。
参照
各パラメータの詳細については、“付録A パラメータ”を参照してください。
mc_ctlコマンドの詳細は、“リファレンス”を参照してください。
以下の手順で行います。
セットアップの準備作業を行います。
“導入ガイド(サーバ編)”の“セットアップの準備作業”を参照して、スタンバイサーバにインスタンスを作成する前の準備作業を行ってください。
注意
プライマリサーバとスタンバイサーバを同一サーバ内に構築する場合には、プライマリサーバとFUJITSU Enterprise Postgresのイベントソース名が重複しないように準備作業を行ってください。
透過的データの暗号化機能を利用する場合は、格納データの暗号化の設定を行います。
詳細は、“運用ガイド”の“データベース多重化運用”を参照して、設定してください。
pg_basebackupコマンドを実行して、スタンバイサーバにプライマリサーバのインスタンスの複製を作成します。
例)
> 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はスタンバイサーバとして起動できません。
プライマリサーバへの接続がパスワード認証を必要とする方式の場合、自動で認証が行われるようにしておく必要があります。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ファイルのみに設定してください。
pg_basebackupコマンドの実行中に行われるトランザクションログファイルの収集において、考慮が必要な場合があります。
-Xオプションにfetchを指定してコマンドを実行する場合
トランザクションログをバックアップの最後に収集する動作を指定して本コマンドを実行する場合は、バックアップ中に発生したトランザクションログがプライマリサーバで削除されないようにすることが必要です。そのため、postgresql.confファイルのwal_keep_sizeパラメータには十分な値を考慮して設定してください。
-Xオプションの省略や-Xオプションにstreamを指定してコマンドを実行する場合
トランザクションログをストリームする動作を指定して本コマンドを実行すると、プライマリサーバでMirroring Controllerが起動している場合には、本コマンドによるストリーミングレプリケーションの接続を検知した契機で、接続を同期スタンバイサーバに変更してしまいます。そのため、プライマリサーバで業務を開始している場合にはそれらに影響を与えるため、プライマリサーバのMirroring Controllerプロセスのみを停止してから本コマンドを実行してください。
参照
standby.signalファイルの詳細については、“PostgreSQL Documentation”の“Hot Standby”を参照してください。
postgresql.confファイルに以下のパラメータを設定します。
パラメータ | 指定内容 | 備考 |
---|---|---|
synchronous_standby_names | 'プライマリサーバ名' | プライマリサーバを切り替えたあとに、旧プライマリサーバを新しくスタンバイサーバとして組み込んだときに必要です。 Mirroring Controller起動中は、本パラメータを変更しないでください。 Mirroring Controllerが管理できるスタンバイサーバは1つであるため、本パラメータに複数の名前を指定しないでください。 |
Windowsサービスへのインスタンスの登録を行います。
“導入ガイド(サーバ編)”の“インスタンスの作成”を参照して、インスタンスをWindowsサービスへ登録します。なお、Mirroring Controllerがインスタンスを起動/停止するために、pg_ctlコマンドのregisterモードを以下の指定で実行してください。
-Nオプションのサービス名には、サーバ定義ファイルのdb_instance_service_nameパラメータに指定した名前を指定する
-Sオプションに“demand”を指定して、システム起動時に自動的にサービスを起動しない
注意
多重化したインスタンスのWindowsサービスは、Mirroring Controllerが起動するため、自動起動を行う設定にしないでください。
プライマリサーバとスタンバイサーバを同一サーバ内に構築する場合には、プライマリサーバとFUJITSU Enterprise Postgresのインスタンスの登録サービス名が重複しないように登録してください。