英語マニュアル
1.1 新機能
3.1.1 設置場所
7 通知
1.1 新機能
バージョン3.5を作成するため に EDB Postgresフェイルオーバーマネージャーに 以下の変更が加えられました 。
•
script 。 load 。 balancer 。 attach して script 。 load 。 balancer 。 detach プロパティは、 アタッチまたはデタッチされるノードの種類を表す 新しいパラメータ( %t )を サポートするようになりました 。詳しくは 3.5.1 項を参照してください 。
•
あなたは restart を使用することができます 。 connection 。 サーバーの再起動後に接続が試行される秒数を指定する timeout プロパティ。詳しくは 3.5.1 項を参照してください 。
•
from 。 email プロパティを使用すると、Failover Manager通知の送信者のEメールアドレスを指定できます。詳しくは 3.5.1 項を参照してください 。
•
あなたは application を使用することができ application 。 再起動されたマスターノードのrecovery.confファイル名で、アプリケーションを置き換えるアプリケーションの名前を指定する name プロパティ。詳しくは 3.5.1 項を参照してください 。
•
efm promote ユーティリティは、 - noscripts キーワードを サポートし ます。 - noscripts 使用すると、スイッチオーバー中のスクリプトの呼び出しを抑制できます。詳細は 5.3 節をご覧ください 。
以下の説明では、 用語 は、言語キーワード、ユーザー指定の値、リテラルなどの任意の単語または単語のグループを指します。用語の正確な意味は、それが使用される文脈によって異なります。
•
イタリック体のフォント は、通常は初めて定義する文章の中に新しい用語を導入します。
•
Fixed-width (mono-spaced) font は、 SQL コマンド、例で使用されている特定のテーブル名および列名、プログラミング言語のキーワード など、文字通りに指定する必要がある用語に使用され ます 。例えば、 SELECT * FROM emp;
•
Italic fixed-width font は、ユーザーが実際の使用法で値を置き換える必要がある用語に使用されます。例えば、 DELETE FROM table_name ;
•
角括弧[]は、囲まれた用語の1つまたはすべてを置換できることを示します。たとえば、 [ a | b ] 、「 a 」または「 b 」のいずれ かを 選択するか、 または両方を 選択しないことを意味します 。
•
中括弧{}は、囲まれた選択肢のうち1つだけを指定する必要があることを示します。たとえば、 { a | b } 正確に一つ「の意味 a 」又は「 b 」を指定しなければなりません。
•
省略記号...は、前の用語が繰り返される可能性があることを示します。たとえば、 [ a | b ] ... は、シーケンス「 baaba 」 があるかもしれないことを意味します 。
伝統的に、 クラスタ は複数のデータベースを管理するPostgresの単一インスタンスです。このドキュメントでは、クラスタという用語はFailover Managerクラスタを指します。 Failover Managerクラスタは、マスターエージェント、1つ以上のスタンバイエージェント、およびクラウドまたは従来のネットワーク上のサーバーに存在し、JGroupsツールキットを使用して通信するオプションのWitnessエージェントから構成されます。
スクリーンショット2014-12-09 at 8
•
•
•
script 値を入力した場合 。 notificationプロパティは、あなたがuserを残すことができuser 。 emailフィールドは空白です。 SMTPサーバーは必要ありません。
イベントが発生すると、Failover Managerはスクリプト(提供されている場合)を呼び出して、 user 指定されている任意のEメールアドレスに通知Eメールを送信し user 。 クラスタプロパティファイルの email パラメータ。 SMTPサーバーの使用に関する詳細については、次のURLにアクセスしてください。
- sourcenode オプション と一緒に指定しない限り 、 recovery 。 スイッチオーバー中に、 conf ファイルがランダムなスタンバイノードから停止したマスターにコピーされます。あなたは recovery 内のパスを確認する必要があります 。 スタンバイノード上の conf ファイルは、スイッチオーバーを実行する前は一貫しています。 - sourcenode オプションの詳細については、セクション 4.1.4 を参照してください 。
マスターノードとスタンバイノード の pg_hba.conf ファイルを 修正 して、クラスター内のすべてのノード間の通信を可能にするエントリを追加 する必要があり ます。次の例は 、マスターノード上の pg_hba.conf ファイルに 作成される可能性のあるエントリを示しています 。
efm は有効なデータベースユーザーの名前を指定します。
fmdb は、 efm ユーザーが接続できる データベースの名前を指定します 。
properties ファイルの 詳細については、 3.5.1項を参照してください 。
デフォルトでは、 pg _ hba です。 conf ファイルは あなたのPostgresインストールの下 の data ディレクトリにあります。 pg_hba.conf ファイルを 変更し たら、変更を有効にするために各ノードで設定ファイルをリロードする必要があります。次のコマンドを使用できます。
どこで x Postgresのバージョンを指定します。
これを防ぐには、データベースサーバを起動する前にFailover Managerエージェントを起動します。エージェントは idle モードで 起動 し、クラスタにマスターがすでに存在するかどうかを確認します。マスターノードがある場合、エージェントはその recovery を確認し ます。 conf ファイルが存在し、データベースが2番目のマスターとして起動しません。
Failover Managerノードのホストで Linuxファイアウォール( iptables )が有効になっている場合は、ファイアウォール設定 に、クラスタ内のFailover Managerプロセス間の tcp 通信 を許可するルールを追加する必要があり ます。例えば:
上に示したコマンドは、ポートの小さな範囲(開き 7800 を介して 7810 )。 Failover Managerは、クラスタプロパティファイルで指定されたポートに対応するポートを介して接続します。
efm 指定されたデータベースユーザー 。 properties ファイルには、Failover Managerに代わって次の機能を呼び出すための十分な権限が必要です。
クラスタ _ 名 .properties ファイルには、お使いのフェイルオーバーマネージャークラスタ用の接続プロパティと動作を指定するパラメータが含まれています。 プロパティ設定への変更は、Failover Managerの起動時に適用されます。
data ディレクトリの 所有者 (通常は postgres または enterprisedb ) :
以下のプロパティのうち1つだけが必要です。サービス名を指定した場合、EFMは 必要に応じ て service コマンドを 使用し てデータベースサーバを制御します。 Postgresの bin ディレクトリの 場所を指定した場合 、EFMは pg_ctl を 使用 してデータベースサーバーを制御します。
data EFM検索または作成するディレクトリ recovery 。 conf ファイル:
ミラーリング 監視ノードで このプロパティを true に 設定し 、マスター ノード またはスタンバイ ノードの 場合は false 設定します 。
プロダクションクラスタを設定するとき、次のプロパティはシステムの設定と使用法に応じてtrue または falseなります。 EFMテストクラスターを構成している場合は 、両方を true に 設定して 起動を簡単にします。
cluster _ name 。 nodes ファイルは起動時に読み込まれ、エージェントにクラスタの残りの部分を見つける方法を指示するか、最初に起動されたノードの場合は後続のノードの認証を単純化するために使用できます。
efm コピーして efm 。 properties と efm 。 サンプルクラスタ内の他のノードの /etc/edb/efm-3.5 ディレクトリに nodes ファイルを /etc/edb/efm-3.5 ます。ファイルをコピーし efm:efm 、ファイルが efm:efm によって所有されるようにファイルの所有権を変更します 。 efm 。 次のプロパティを除いて、 properties ファイルはすべてのノードで同じにすることができます。
•
bind 変更し ます。 ノードのローカルアドレスを使用するための address プロパティ。
•
セット is 。 witness に true ノードが証人ノードですか。ノードがミラーリング監視ノードの場合、ローカルデータベースのインストールに関連するプロパティは無視されます。
任意のノードで、Failover Managerエージェントを起動します。このエージェントの名前は efm-3.5 です。プラットフォーム固有のserviceコマンドを使ってサービスを制御できます。たとえば、CentOSまたはRHEL 7.xホストでは、次のコマンドを使用します。
他のノードでエージェントを起動します。実行 efm cluster - status efmクラスタの状態を確認するために、任意のノードでコマンドを。
efm コマンドラインツールの 使用方法の詳細については、 5.3 項を参照してください 。
1。
使用 edb - repo リポジトリ設定ファイルを作成するために、パッケージを。 edb - repo ファイル をダウンロードして起動する か、rpmまたはyumを使用してリポジトリを作成します。スーパーユーザー特権を想定し、 rpm または yum を使用してEnterpriseDBリポジトリ構成ファイルを作成します。 :
リポジトリ設定ファイルの名前は edb です。 レポ ;それは内に存在 /etc/yum.repos.d.
2。
選択したエディタを使用してリポジトリ設定ファイルを変更し、 [enterprisedb-tools] ]エントリ と[ enterprisedb - dependencies ]エントリを 有効にし ます。リポジトリを有効にするには、 enabled パラメータの値を 1 して baseurl 仕様 のユーザー名とパスワードのプレースホルダーを、 自分のユーザー名とリポジトリのパスワードに 置き換え ます。
そして、あなたは yum を使うことができます Failover Managerをインストール install コマンド。たとえば、Failover Managerバージョン3.5をインストールするには、次のコマンドを使用します。
Failover Managerは root でインストールする必要があります 。インストールプロセス中に、インストーラは 、 enterprisedb または postgres が所有するクラスタ用のFailover Managerサービスを制御するスクリプトを呼び出すための十分な特権を持つ efm という 名前のユーザーも作成します 。
フェールオーバーマネージャを使用して enterprisedb または postgres 以外のユーザーが所有するクラスタを監視している場合は 、セクション 3.4 、 フェールオーバーマネージャのアクセス許可の拡張を 参照してください 。
1。
各ノードで クラスタプロパティ ファイルを 変更し ます 。クラスタプロパティファイルの変更の詳細については、 3.5.1 項を参照してください 。
3.1.1 設置場所
次の手順では、EnterpriseDB aptリポジトリを使用してFailover Managerをインストールする手順を説明します。コマンドを使用するときは、 usernameとpasswordをEnterpriseDBが提供する資格情報に置き換えてください。
sh -c 'echo "deb https:// username : password @apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
wget -q -O - https:// username : password @apt.enterprisedb.com/edb-deb.gpg.key | apt-key add -
zypperパッケージマネージャを使用して、SLES 12ホストにFailover Managerエージェントをインストールできます 。 zypperはパッケージをインストールするときにパッケージの依存関係を満たそうとしますが、EnterpriseDBでホストされていない特定のリポジトリへのアクセスが必要です。
コマンドは /etc/zypp/repos.dディレクトリにリポジトリ設定ファイルを作成します 。次に、次のコマンドを使用してSLESホスト上のメタデータを更新し、EnterpriseDBリポジトリを含めます。
プロンプトが表示されたら、リポジトリの資格情報を入力し、指定されたキーを常に信頼するように aを指定 aて、EnterpriseDBリポジトリを含めるようにメタデータを更新します。
zypper install SUSEConnect
SUSEConnect -r
registration_number -e user_id
SUSEConnect -p PackageHub/12/x86_64
SUSEConnect -p sle-sdk/12/x86_64
Failover Managerのインストール中に、インストーラは efm という名前のユーザーを作成します 。 efm は、通常データベースの所有者またはオペレーティングシステムのスーパーユーザーに制限されている管理機能を実行するための十分な特権がありません。
•
データベースのスーパーユーザー特権を必要とする管理機能を実行するとき、 efm は efm _ db _ functions スクリプトを 呼び出します 。
•
仮想IPアドレスを割り当てる、または解放すると、 efmはefm _ addressスクリプトを呼び出します。
efm _ db _ functions や efm _ root _ functions スクリプトが代わって管理機能を実行する efm ユーザー。
sudoersファイルには、ユーザー efm が postgres または enterprisedb によって所有されているクラスタのFailover Managerサービスを制御 できるようにするエントリが含まれています 。 sudoersファイルのコピーを変更して、他のユーザが所有するPostgresクラスタを efm に管理する権限を付与することができます 。
efm-35 ファイルは/にあります etc/sudoers.d 、および次のエントリが含まれています。
# Copyright EnterpriseDB Corporation, 2014-2019. All Rights
# Reserved.

#
# Do not edit this file. Changes to the file may be overwritten
# during an upgrade.
#
# This file assumes you are running your efm cluster as user
# 'efm'. If not, then you will need to copy this file.


# Allow user 'efm' to sudo efm_db_functions as either 'postgres'
# or 'enterprisedb'. If you run your db service under a
# non-default account, you will need to copy this file to grant
# the proper permissions and specify the account in your efm
# cluster properties file by changing the 'db.service.owner'
# property.


efm
ALL=(postgres) NOPASSWD: /usr/edb/efm-3.5 /bin/efm_db_functions
efm
ALL=(enterprisedb) NOPASSWD: /usr/edb/efm-3.5 /bin/efm_db_functions

# Allow user 'efm' to sudo efm_root_functions as 'root' to
# write/delete the PID file, validate the db.service.owner
# property, etc.
efm ALL=(ALL) NOPASSWD: /usr/edb/efm-3.5
/bin/efm_root_functions
# Allow user 'efm' to sudo efm_address as root for VIP tasks.
efm ALL=(ALL) NOPASSWD: /usr/edb/efm-3.5
/bin/efm_address
# relax tty requirement for user 'efm'
Defaults:efm !requiretty
Failover Managerを使用して postgres または enterprisedb 以外のユーザーが所有するクラスターをモニターしている場合 は、 efm-35 ファイルの コピーを作成し 、ユーザーが efm _ functions スクリプトに アクセスし てクラスターを管理 できるように内容を変更します 。
これにより、ユーザーは /var/run/efm-3.5および/var/lock/efm-3.5 に書き込むことができます 。
su - enterprisedb
cp /etc/edb/efm-3.5/efm.properties.in
directory / cluster_name .properties
cp /etc/edb/efm-3.5/efm.nodes.in
directory / cluster_name .nodes
次に、クラスター・プロパティー・ファイルを修正して、 db 内のユーザーの名前を指定します 。 service 。 ownerプロパティ。また、 db確認する必要があります。 service 。 nameプロパティは空白です。 sudoがないと、 rootアクセスなしでサービスを実行することはできません。
/usr/edb/efm-3.5/bin/runefm.sh start|stop directory/cluster_name.properties
どこ directory/cluster_name.propertiesクラスタのプロパティファイルのフルパスと名前を指定します。デフォルト以外のユーザーがエージェントを制御しているとき、またはefmスクリプトを使用しているときは、必ずプロパティーファイルへのefmパスを指定する必要があります。
Failover Managerは /usr/edb/efm-3.5/bin/secure/にあるmanage - vip という名前のバイナリを使用して、 sudo特権なしでVIP管理操作を実行します。このスクリプトはsetuidを使用して仮想IPアドレスを管理するのに必要な特権を取得します。
•
このディレクトリは、 rootとefmグループのユーザーだけがアクセスできます 。
•
バイナリは rootとefmグループによってのみ実行可能です。
セキュリティ上の理由から、 /usr/edb/efm-3.5/bin/secure/ - /usr/edb/efm-3.5/bin/secure/ディレクトリまたはmanage - vipスクリプトのアクセス権限を変更しないことをお勧めします。
•
efm 。 properties ファイルには、それが存在する個々のノードのプロパティが含まれていますが、 efm は含まれています 。 nodes ファイルには、現在のFailover Managerクラスタメンバーのリストが含まれています。デフォルトでは、インストーラはファイルを /etc/edb/efm-3.5 ディレクトリに 配置します 。
Failover Managerインストーラは、 efm という名前のクラスタプロパティファイル用のファイルテンプレートを作成します 。 properties 。 in で /etc/edb/efm-3.5 ディレクトリ。 Failover Managerのインストールが完了したら、ファイルの内容を変更する前にテンプレートの作業用コピーを作成する必要があります。たとえば、次のコマンドは efm コピーし efm 。 properties 。 in 、ファイル、名前付きプロパティファイルの作成 efm 。 properties :
# cp /etc/edb/efm-3.5/efm.properties.in /etc/edb/efm-3.5/efm.properties
# chown efm:efm efm.properties
注意してください。デフォルトでは、Failover Managerはクラスタプロパティファイルの名前が efm.properties ことを想定しています 。プロパティファイルに efm 以外の名前を付けた場合 。 properties 変更する場合は、サービススクリプトまたはユニットファイルを変更して、Failover Managerに別の名前を使用するように指示する必要があります。
プロパティファイルは root が所有しています 。 Failover Managerサービススクリプトは /etc/edb/efm-3.5 ディレクトリに ファイルを見つけることを想定しています 。プロパティファイルを別の場所に移動する場合は、新しい場所を指定するシンボリックリンクを作成する必要があります。
Failover Managerでは、値 を引用符で囲ま ない でください。
efm のプロパティを使用して efm 。 Failover Managerの接続、管理、および運用の詳細を指定するための properties ファイル。
db 。 指定された user は、フェイルオーバーマネージャーに代わって選択されたPostgreSQLコマンドを呼び出すために十分な特権を持っていなければなりません。詳しくは 2.2 節をご覧ください 。
db 使用してください 。 service 。 Failover Managerによって管理されているクラスタを所有するオペレーティングシステムユーザーの名前を指定する owner プロパティ。このプロパティは、専用の監視ノードでは必要ありません。
データベースサービスの名前を db 指定します 。 service 。 service 時または停止時に service または systemctl コマンド を使用する場合は、 name プロパティ 。
データベースサービスを起動または停止するたびに 、同じサービス制御メカニズム( pg _ ctl 、 service 、または systemctl )を使用する必要があります。 pg _ ctl プログラムを 使用し てサービスを制御する 場合 は、 db 内 の pg _ ctl プログラムの 場所を指定します 。 bin プロパティ
db 使用してください 。 recovery 。 conf 。 回復ファイルをクラスターのマスターノードに書き込む場所を指定する dir プロパティ、およびトリガーファイルをスタンバイに書き込む。このプロパティは、専用の監視ノードでは必要ありません。
jdbc 使用してください 。 フェイルオーバーマネージャーにSSL接続を使用するように指示する sslmode プロパティー。デフォルトでは、SSLは無効になっています。
user 使用してください 。 Failover Managerによって送信された通知を受け取るEメールアドレス(または複数のEメールアドレス)を指定するE email プロパティー。
から 。 email プロパティは、Failover Managerからの電子メール通知で送信者のアドレスとして使用される値を指定します。あなたはできる:
•
から 出発 し ます。 デフォルト値 (EFMする@ localhostの ) を 使用して、空 メール 。
通知を 使用してください 。 Failover Managerがユーザー通知を送信する、または通知スクリプトが呼び出されるときの最小の重大度を指定する level プロパティ。通知の完全なリストについては、セクション 7 を参照してください 。
script.notification プロパティを 使用し て、通知サービスとして機能するユーザー指定のスクリプトへのパスを指定します。スクリプトにはメッセージの件名とメッセージの本文が渡されます。このスクリプトは、Failover Managerがユーザー通知を生成するたびに呼び出されます。
# Absolute path to script run for user notifications.
#
# This is an optional user-supplied script that can be used for
# notifications instead of email. This is required if not using
# email notifications. Either/both can be used. The script will
# be passed two parameters: the message subject and the message
# body.
bind 。 address プロパティは、Failover Managerクラスタの現在のノードにあるエージェントのIPアドレスとポート番号を指定します。
フェールオーバーマネージャが管理コマンドを待機するポートを指定 するには、 admin.port プロパティを 使用し ます。
を設定し is 。 現在のノードがミラーリング監視ノードであることを示すには、 プロパティ witness を true します。場合が is 。 witness は true である、ローカルエージェントはローカルデータベースが実行されているかどうか確認しない。
Postgres pg_is_in_recovery() 関数はデータベースの回復状態を報告するブール関数です。 データベースが復旧中の場合 は true 、データベースが復旧中でない 場合は false が 返され true 。エージェントが起動すると、ローカルデータベースに接続して pg_is_in_recovery() 関数 を呼び出します 。サーバーが true と 応答した true 、エージェントはスタンバイの役割を引き受けます。サーバーが false と 応答し false 場合、エージェントはマスターの役割を引き受けます。ローカルデータベースがない場合、エージェントはアイドル状態になります。
場合が is 。 witness は true 、フェールオーバーマネージャは回復状態をチェックしない。
local 。 period プロパティは、データベースサーバへの接続試行間隔を秒数で指定します。
local 。 timeout プロパティは、エージェントがローカルデータベースサーバーからの肯定的な応答を待つ時間を指定します。
local 。 timeout.final プロパティは、現在のノード上のデータベースサーバに最後に接続しようとした後にエージェントが待機する時間を指定します。応答は、で指定した秒数以内にデータベースから受信されていない場合は local 。 timeout.final プロパティは、データベースが失敗したと見なされます。
remote 使用してください 。 timeout プロパティ。エージェントがリモートデータベースサーバからの応答を待機する秒数(つまり、フェールオーバーを実行する前に、スタンバイエージェントがマスターデータベースが実際に停止していることの確認を待機する時間)を指定します。
node 使用してください 。 ノードが失敗したかどうかを判断するときにエージェントがノードからの応答を待つ秒数を指定する timeout プロパティ。 node 。 timeout プロパティ値は、エージェント間通信のタイムアウト値を指定します。クラスター・プロパティー・ファイル内の他のタイムアウト・プロパティーは、エージェントからデータベースへの通信のための値を指定します。
stop 使用してください 。 isolated 。 masterエージェントが分離されていることをマスターエージェントが検出した場合にフェールオーバーマネージャーにデータベースをシャットダウンするように指示するmasterプロパティ。 true (デフォルト)の場合、Failover Managerはスクリプトで指定されたscriptを呼び出す前にデータベースを停止します。 master.isolatedプロパティ
停止を 使用してください 。 失敗しました 。 フェールオーバーマネージャがマスターデータベースにアクセスできない場合にマスターデータベースのシャットダウンを試みるように指示する master プロパティ。 trueの 場合 、フェイルオーバーマネージャーは、データベースを停止しようとした後script.db.failureプロパティで指定されたスクリプトを実行します。
master 使い master 。 shutdown ます。 as 。 マスターノード上のFailover Managerエージェントのシャットダウンが失敗として扱われるべきであることを示す failure パラメータ。このパラメーターが true 設定され ていてマスターエージェントが(何らかの理由で)停止した場合、クラスターはマスターノード上のデータベースが実行されているかどうかを確認しようとします。
master 。 shutdownます。 as 。 failureプロパティは、マスターノードが誤ってシャットダウンされた場合など、障害ではなくユーザーエラーを検出するためのものです。ユーザーがマスターFailover Managerエージェントを停止したように(マスターデータベースで保守を実行するためなど)、ノードの適切なシャットダウンがクラスタの残りの部分に表示されることがあります。 masterを設定すれば。 shutdownます。 as 。 failureプロパティがtrue場合、メンテナンスを実行するときは注意が必要です。
masterデータベースを master メンテナンスする 。 shutdownます。 as 。 failureあるtrue 、あなたはマスターエージェントを停止し、マスターエージェントが失敗したが、データベースがまだ実行されている通知を受信するのを待つ必要があります。それからmasterデータベースを停止しても安全です。あるいは、 efm stop - clusterコマンドを使用して、障害チェックを実行せずにすべてのエージェントを停止することもできます。
使用 pingServer フェイルオーバーマネージャーは、ネットワーク接続が問題ではありませんを確認するために使用できるサーバーのIPアドレスを指定するプロパティを。
pingServerCommand プロパティを 使用して、 ネットワーク接続をテストするために使用されるコマンドを指定します。
使用 auto.allow.hosts 中で指定されたアドレスを使用するようにサーバーに指示するプロパティを。 最初のノードの nodes ファイルが許可ホストリストの更新を開始しました。このプロパティを(設定有効にすると auto 。 allow 。 hosts に true )クラスタの起動を簡素化することができます。
厩舎を 使用してください 。 ノード 。 ノードがクラスタに参加またはクラスタから脱退するときに、ノードファイルを書き換えないようにサーバーに指示する file プロパティ。このプロパティは、IPアドレスが変更されていないクラスタで最も役立ちます。
db.reuse.connection.count プロパティは倍のフェールオーバーマネージャーの数を指定するには、管理者がデータベースの状態をチェックするために、同じデータベース接続を再利用することができます。デフォルト値は 0 。これは、Failover Managerが毎回新しい接続を作成することを示します。このプロパティは、専用の監視ノードでは必要ありません。
auto.failover プロパティは、自動フェイルオーバーを可能にします。デフォルトでは、 auto です。 failover は true 設定されてい true 。
# Whether or not failover will happen automatically when the master
# fails.
Set to false if you want to receive the failover notifications
# but
not have EFM actually perform the failover steps.
# The
value of this property must be the same across all agents.
auto 使用してください 。 プライマリスタンバイがマスターに昇格した後に、残りのスタンバイサーバーの自動再設定を有効または無効にするようにフェイルオーバーマネージャーに指示するためのプロパティを reconfigure ます。 自動再構成を有効にするに はこのプロパティーを true に設定し(デフォルト)、 自動再構成を無効にするには false に設定します。このプロパティは、専用の監視ノードでは必要ありません。
Please note: primary_conninfo is a space-delimited list of keyword=value pairs. is a space-delimited list of pairs.
Please note: If you are replication slots to manage your WAL segments, automatic reconfiguration is not supported; you should set 使用し Please note: If you are replication slots to manage your WAL segments, automatic reconfiguration is not supported; you should set auto replication slots to manage your WAL segments, automatic reconfiguration is not supported; you should set . false reconfigure to false . For more information, see Section 2.2 . For more information, see Section .
promotable プロパティーを 使用し て、ノードをプロモートしないように指示します。設定を上書きするには、 実行時に efm set-priority コマンドを使用します。詳細については、 efm set-priority コマンドは、セクションを参照 5.3 。
application.name プロパティを 使用 して、既存の application 指定された value を置き換えるアプリケーションの名前を 指定し application 。 recovery 内の primary _ conninfo パラメーター内の name = value ペア 。 古いマスターノードをスタンバイとして再起動する前の conf ファイル
# During a switchover, a recovery.conf file is copied from a
# standby to the original master. If the application.name

# property is set, Failover Manager will replace the
# application_name portion of the primary_conninfo entry in the
# recovery.conf file with this property value before starting the
# original master database as a standby.
minimum.standbys プロパティを 使用 して、クラスタに保持されるスタンバイノードの最小数を指定します。スタンバイカウントが指定された最小値まで低下すると、マスターノードに障害が発生してもレプリカノードはプロモートされません。
recovery.check.period プロパティを 使用して 、データベースが復旧していないかどうかを確認するためにFailover Managerが待機する秒数を指定します。
restart ください 。 connection 。 そのノード上のデータベースが接続を受け入れる準備をしている間に、Failover Managerが新しく再構成されたマスターまたはスタンバイノードへの接続を試行する秒数を指定する timeout プロパティ。
auto.resume.period プロパティーを 使用して 、モニターされているデータベースが失敗し、エージェントがアイドル状態になった後、またはIDLEモードで開始した後の)エージェントがそのデータベースのモニターを再開しようと試みる秒数を指定します。
Failover Managerは、仮想IPを使用するクラスタをサポートします。クラスタが仮想IPを使用している場合は、 virtualIp プロパティに ホスト名またはIPアドレスを 入力し ます。 virtualIpに 対応する接頭辞を指定して ください 。 接頭辞 プロパティ。 virtualIp が空白のままの 場合 、仮想IPサポートは無効になります。
virtualIpを 使用して ください 。 VIPが使用するネットワークインターフェイスを提供する interface プロパティ 。
指定された仮想IPアドレスは、クラスタのマスターノードにのみ割り当てられます。 virtualIp を指定した場合 single = trueの場合 、フェイルオーバーが発生した場合、新しいVIPに同じVIPアドレスが使用されます。クラスターの各ノードに固有のIPアドレスを指定するには、値falseを指定してください。
# These properties specify the IP and prefix length that will be
# remapped during failover. If you do not use a VIP as part of
# your failover solution, leave the virtualIp property blank to
# disable Failover Manager support for VIP processing (assigning,
# releasing, testing reachability, etc).

#
# If you specify a VIP, the interface and prefix are required.
#
# If specify a host name, it will be resolved to an IP address
# when acquiring or releasing the VIP. If the host name resolves
# to more than one IP address, there is no way to predict which
# address Failover Manager will use.
#

# By default, the virtualIp and virtualIp.prefix values must be
# the same across all agents. If you set virtualIp.single to
# false, you can specify unique values for virtualIp and
# virtualIp.prefix on each node.

#
# If you are using an IPv4 address, the virtualIp.interface value
# should not contain a secondary virtual ip id (do not include
# ":1", etc).
virtualIp=
virtualIp.interface=
virtualIp.prefix=
virtualIp.single = true
check 設定して check 。 vip 。 before 。 失敗の場合にフェイルオーバーマネージャーがVIPを新しいマスターに割り当てる前に、そのVIPが使用中であるかどうかを確認しないことを示す false に promotion プロパティ 。これにより、同じVIPアドレスで複数のノードがブロードキャストされる可能性があります。マスターノードが分離されているか、別のプロセスでシャットダウンできる場合を除き、このプロパティを true 設定する必要があり true 。
script.load.balancer.attachプロパティーの後にスクリプト名を指定して 、ノードをロードバランサーに接続する必要があるときに呼び出されるスクリプトを識別します。ノードをロードバランサから切り離す必要があるときに呼び出されるスクリプトの名前を指定するには、 script.load.balancer.detachプロパティを使用します。 クラスタに接続または削除されているノードのIPアドレスを表すために 、 %h プレースホルダを含めます。 %t プレースホルダを 含める と、文字列に m (マスターノード用)または s (スタンバイノード用 ) が含まれるようにFailover Managerに指示さ れます。
# Absolute path to load balancer scripts
# The attach script is called when a node should be attached to
# the load balancer, for example after a promotion. The detach
# script is called when a node should be removed, for example
# when a database has failed or is about to be stopped. Use %h to
# represent the IP/hostname of the node that is being
# attached/detached. Use %t to represent the type of node being attached or detached: the letter m will be passed in for master nodes and the letter s for standby nodes.

#
# Example:
# script.load.balancer.attach=/somepath/attachscript %h %t
script.load.balancer.attach=
script.load.balancer.detach=
script 。 fence は、スタンバイノードからマスターノードへの昇格中に呼び出される、オプションのユーザー指定スクリプトへのパスを指定します。
# absolute path to fencing script run during promotion
#

# This is an optional user-supplied script that will be run
# during failover on the standby database node. If left blank,
# no action will be taken. If specified, EFM will execute this
# script before promoting the standby.
#
# Parameters can be passed into this script for the failed master
# and new primary node addresses. Use %p for new primary and %f
# for failed master. On a node that has just been promoted, %p
# should be the same as the node's efm binding address.

#
# Example:
# script.fence=/somepath/myscript %p %f
#
# NOTE: FAILOVER WILL NOT OCCUR IF THIS SCRIPT RETURNS A NON-ZERO EXIT CODE.
script 使用してください 。 post 。 スタンバイ・ノードがマスターに昇格した後に呼び出されるオプションのユーザー提供スクリプトへのパスを指定するための promotion プロパティー。
# Absolute path to fencing script run after promotion
#

# This is an optional user-supplied script that will be run after
# failover on the standby node after it has been promoted and
# is no longer in recovery. The exit code from this script has
# no effect on failover manager, but will be included in a
# notification sent after the script executes.

#
# Parameters can be passed into this script for the failed master
# and new primary node addresses. Use %p for new primary and %f
# for failed master. On a node that has just been promoted, %p
# should be the same as the node's efm binding address.

#
# Example:
# script.post.promotion=/somepath/myscript %f %p
script 使用してください 。 エージェントがデータベースの監視を再開したときに呼び出されるユーザー指定のスクリプトへのオプションのパスを指定する resumed プロパティ。
script 使用してください 。 db 。 エージェントが監視しているデータベースに failure ことをエージェントが検出した場合にFailover Managerが呼び出す、オプションのユーザー指定スクリプトへの絶対パスを指定する failure プロパティ。
#
script 使用してください 。 master 。 マスターデータベースを監視しているエージェントが、マスターがフェールオーバーマネージャークラスターの大部分から分離されていることを検出した場合にフェールオーバーマネージャーが呼び出すオプションのユーザー指定スクリプトへの絶対パスを指定するための isolated プロパティ。 このスクリプトは、VIPが解放された直後に呼び出されます(VIPが使用中の場合)。
#
script 使用してください 。 remote 。 pre 。 ノードがデータベースをマスターに昇格させようとしているときに、昇格に関与していないすべてのエージェントノードで呼び出されるスクリプトのパスと名前を指定する promotion プロパティ。
新しいプライマリノードのアドレスを識別するために 、 %p プレースホルダを 含め ます。
script 使用してください 。 remote 。 post 。 promotion 促進の発生後にマスター以外のノードで呼び出されるスクリプトのパスと名前を指定する promotion プロパティー。
新しいプライマリノードのアドレスを識別するために 、 %p プレースホルダを 含め ます。
使用 script.custom.monitor 定期的に呼び出されるオプションのスクリプトの名前と場所を提供するプロパティを(で秒単位で指定し custom 。 monitor 。 interval プロパティ)。
custom 使用してください 。 monitor 。 スクリプトの実行が許可される最大時間を指定する timeout 。指定された時間内にスクリプトの実行が完了しない場合、Failover Managerは通知を送ります。
設定し custom 。 monitor 。 safe です。 フェールオーバーマネージャがスクリプトからゼロ以外の終了コードを報告するように指示し、終了コードの結果としてスタンバイを昇格させないようにするには、 mode を true に mode し true 。
sudo 使ってください 。 拡張アクセス権を必要とするタスクを実行するときにFailover Managerによって呼び出されるコマンドを指定する command プロパティー。システム認証に固有のコマンドオプションを含めるには、このオプションを使用します。
sudo 使ってください 。 user 。 データベース所有者によって実行されるコマンドを実行するときにFailover Managerによって呼び出されるコマンドを指定する command プロパティー。
ロックを 使用してください 。 Failover Managerロックファイルの代替場所を指定する dir プロパティ。このファイルは、フェールオーバーマネージャがノード上の単一のクラスタに対して複数の(孤立している可能性がある)エージェントを起動するのを防ぎます。
log 使用してください 。 エージェントログファイルが書き込まれる場所を指定する dir プロパティ。ディレクトリが存在しない場合、Failover Managerはディレクトリの作成を試みます。
Failover ManagerホストでUDPまたはTCPプロトコルを有効にした後は、syslogへのロギングを有効にできます。 syslogを 使用してください 。 プロトコルタイプ(UDPまたはTCP)とsyslogを指定するprotocolパラメータ。 syslogホストのリスナーポートを指定するportパラメータ。 syslogです。 facility値は、エントリを作成したプロセスの識別子として使用できます。値はLOCAL0とLOCAL7の間になければなりません。
file 使用してください 。 log 。 enabled 、 syslog 。実装するロギングのタイプを指定するためのenabledなプロパティ。設定file log 。ファイルへのロギングをenabledするにはtrueに有効にします。 UDPプロトコルまたはTCPプロトコルを有効にしてsyslogを設定します。 syslogへのロギングをenabledするには、 trueにenabledしtrue 。ファイルとsyslogの両方へのロギングを有効にできます。
jgroups 使用してください 。 loglevel と efm 。 フェールオーバーマネージャによってログに記録される詳細レベルを指定する loglevel パラメータ。デフォルト値は INFO です。ロギングの詳細については、セクション 6 、 ロギングの制御を 参照してください 。
jvm 使って jvm 。 JVM関連の設定情報を渡すための options プロパティ。デフォルト設定では、Failover Managerエージェントが使用を許可されるメモリ量を指定します。
Failover Managerでは、データベースのパスワードをクラスタプロパティファイルに含める前に暗号化する必要があります。使用し efm にあるユーティリティ( /usr/edb/efm-3.5 /bin パスワードを暗号化するためのディレクトリ)。パスワードを暗号化するときは、ユーティリティを起動するときにコマンドラインでパスワードを渡すか、 EFMPASS 環境変数を 使用でき ます。
# efm encrypt cluster_name [ --from-env ]
ここで、 cluster_name は、Failover Managerクラスタの名前を指定します。
--from-env オプション を含める場合は 、暗号化ユーティリティを起動する前に暗号化したい値をエクスポートする必要があります。例えば:
export EFMPASS= password
--from-env オプションを 含めない 場合、フェールオーバーマネージャは、データベースのパスワードを2回入力するように求めてから、暗号化パスワードを生成してクラスタプロパティファイルに格納します。ユーティリティが暗号化パスワードを共有したら、暗号化パスワードをコピーしてクラスタプロパティファイルに貼り付けます。
注意: 多くのJavaベンダーは、フル強度の暗号化を含めたバージョンのJavaを出荷していますが、輸出規制のために有効になっていません。データベースのパスワードを暗号化しようとしたときに不正なキーサイズに関するエラーが発生した場合は、プラットフォームに無制限のポリシーを提供するJava Cryptography Extension(JCE)をダウンロードして有効にする必要があります。
次の例は、 encrypt ユーティリティを使用して acctg クラスタの パスワードを暗号化する 方法を示してい ます。
# efm encrypt acctg
This utility will generate an encrypted password for you to place in your EFM cluster property file:
/etc/edb/efm-3.5/acctg.properties


Please enter the password and hit enter:
Please enter the password again to confirm:
The encrypted password is: 516b36fb8031da17cfbc010f7d09359c

Please paste this into your acctg.properties file
db.password.encrypted=516b36fb8031da17cfbc010f7d09359c
次の例は 、パスワードを暗号化するときに --from-env 環境変数 を使用する方法を示してい ます。 efm を起動する前に encrypt コマンドで、 EFMPASS の値を パスワード( 1safepassword ) に設定します 。
次に、 efm 起動し efm --from-env オプションを 指定して encrypt ます。
暗号化されたパスワード( 7ceecd8965fa7a5c330eaa9e43696f83 )がテキスト値として返されます。スクリプトを使用するときは、コマンドの終了コードを確認して、コマンドが成功したことを確認できます。正常に実行された場合、 0 が返され 0 。
デフォルトでは、Failover Managerはクラスタメンバーファイルの名前が efm あると efm ます。 nodes 。クラスタメンバーに efm 以外の efm ます。 nodes がある場合は、Failover Managerサービススクリプトを変更して、Failover Managerに新しい名前を使用するように指示する必要があります。
メンバーシップコーディネーターが efm の内容を更新し ます。 クラスタの現在のメンバーと一致する nodes ファイル。エージェントがクラスタに参加するか、クラスタから離れると、 efm です。 他のエージェントの nodes ファイルは、現在のクラスタメンバーシップを反映するように更新されます。 efm stop-cluster コマンド を呼び出した場合 、Failover Managerはファイルを変更しません。
メンバーシップコーディネーターがクラスターを離れると、別のノードがその役割を引き継ぎます。あなたは efm を使うことができます Membership Coordinatorのアドレスを見つけるための cluster - status コマンド。エージェントの停止中にノードがクラスタに参加またはクラスタから脱退する場合は、ファイルに少なくとも現在のメンバーシップコーディネーターが含まれていることを手動で確認する必要があります。
stable いれば 。 nodes 。 file プロパティが true に 設定されている true 、メンバーシップコーディネーターはを更新しません。 クラスタメンバーがクラスタに参加または脱退したときの nodes ファイル。この動作は、クラスタメンバーのIPアドレスが頻繁に変更されない場合に最も便利です。クラスタプロパティの変更については、 3.5.1.1 項を参照してください 。
Failover Managerは efm_address スクリプトを 使用し て仮想IPアドレスを割り当てまたは解放します。
# efm_address add4 interface _ name IPv4 _ addr/prefix
# efm_address add6 interface _ name IPv6 _ addr / prefix
# efm_address del interface_name IP _ address/prefix
interface _ name は、クラスタプロパティファイルの virtualIp.interface プロパティで 指定された name 一致し ます。
IPv4_addrまたはIPv6_addr は、クラスター・プロパティー・ファイルの virtualIp プロパティーに 指定されている名前と一致し ます。
prefix は、クラスタプロパティファイルの virtualIp.prefix プロパティで 指定された値と一致し ます。
root ユーザー として efm _ address スクリプトを 呼び出す必要があり ます。 efm ユーザーは、インストール時に作成され、中に権限が付与された sudoers 実行するファイル efm _ address スクリプトを。 sudoers ファイルの 詳細については 、セクション3.4 、 フェールオーバーマネージャの権限の拡張を 参照してください 。
ご注意:VIPアドレス(または以外の任意のアドレス場合は bind 。 address )ノードに割り当てられている、オペレーティングシステムは、データベースに連絡する際に使用されるソースアドレスを選択することができます。必ず pg _ hba を変更してください 。 複製シナリオ内のすべてのアドレスからの連絡を可能にするために、すべての監視対象データベース上の conf ファイル。
注意してください: virtualIp 。 prefix は、仮想IPアドレスの有効ビット数を指定します。
ノードからVIPにpingを pingServerCommand するように指示され pingServerCommand 、 pingServerCommand プロパティで 定義されたコマンドを使用し ます。
2. efm _ address 実行し address マスターノードで add4 コマンドを実行してVIPを割り当て、次に ip address 確認し ip address 。
4. efm_address del コマンドを 使用 してマスターノードのアドレスを解放し、ノードが ip address 解放されたことを確認します 。
注意:VIPに使用されるネットワークインターフェースは、Failover Managerエージェントの bind 使用されるインターフェースと同じである必要はありません 。 address 値フェールオーバー中にマスターエージェントが必要に応じてVIPをドロップし、フェールオーバーマネージャがスタンバイを昇格させる前にVIPが使用できなくなったことを確認します。バインドアドレスネットワークに障害が発生すると、マスタの分離とフェイルオーバーが発生します。
マスターノードが再起動した場合、フェールオーバーマネージャーはデータベースがマスターノードで停止していることを検出し、スタンバイノードをマスターの役割に昇格させます。これが発生した場合、(再起動された)マスターノード上のFailover Managerエージェントは recovery を書き込む機会を得られません 。 conf ファイル再起動したマスターノードは、2番目のマスターノードとしてクラスターに戻ります。これを防ぐには、データベースサーバを起動する前にFailover Managerエージェントを起動します。エージェントはアイドルモードで起動し、クラスタにマスターがすでに存在するかどうかを確認します。マスターノードがある場合、エージェントはその recovery を確認し ます。 conf ファイルが存在し、データベースが2番目のマスターとして起動しません。
デフォルトでは、以下にリストされているコマンドのいくつかは、 efm またはOSスーパーユーザーによって 呼び出される必要があり ます。管理者は、ユーザーを efm グループに 追加することによって、ユーザーにこれらのコマンドの呼び出しを選択的に許可することができます 。コマンドは以下のとおりです。
ノードのクラスタープロパティーファイルでそれ is 指定されて is 。 witness が true である場合、ノードは証人ノードとして起動します。
ノードが専用の pg_is_in_recovery() ノードではない場合、Failover Managerはローカルデータベースに接続して pg_is_in_recovery() 関数 を呼び出し ます。サーバーが false と 応答し false 場合、エージェントはノードをマスターノードと見なし、仮想IPアドレスをノードに割り当てます(該当する場合)。サーバーが true と 応答した true 、Failover Managerエージェントはノードがスタンバイサーバーであると見なします。サーバーが応答しない場合、エージェントはアイドル状態で起動します。
1。
auto なければ 。 allow ます。 hosts が true に 設定されている true は、 efm allow-node コマンドを 使用して 、新しいノードのIPアドレスをFailover Manager許可ノードホストリストに追加します。 コマンドを呼び出すときに、新しいノードのクラスタ名とIPアドレスを指定します。
efm allow-node cluster_name ip_address
使用方法の詳細については efm allow-node コマンドをまたはフェールオーバーマネージャーサービスを制御し、参照の 第5節 。
新しいノードがクラスタに参加すると、Failover Managerは user 提供された管理者の電子メールに通知を送信し user 。 email プロパティ、または指定された通知スクリプトを呼び出します。
Failover Managerクラスタに複数のスタンバイサーバーが含まれている場合は、 efm set-priority コマンドを 使用し てスタンバイノードの昇格優先順位に影響を与える ことができ ます。 Failover Managerクラスターの既存のメンバーでコマンドを呼び出し、メンバーのIPアドレスの後に優先順位の値を指定します。
たとえば、次のコマンド は、 10.0.1.9 監視し ている acctg クラスタメンバーが プライマリスタンバイ( 1 )である ことをフェールオーバーマネージャに指示し ます 。
スタンバイの優先順位を 0 して、スタンバイを昇格不可にする ことができ ます。スタンバイの優先順位を 0 より大きい値に設定すると、 promotable=false プロパティー値がオーバーライドされます 。
例えば、ノード 10.0.1.10 プロパティー・ファイルに promotable=false 設定が含まれていて、 promotable=false を使用するとします efm set - priority のプロモーション優先順位を設定する 10.0.1.10 フェイルオーバーの際に使用されるスタンバイであること、によって指定された値 efm set - priority コマンドはプロパティファイルの値を上書きします。
efm cluster-status cluster_name
あなたは efm を起動することができ efm promote マスターデータベースにスタンバイ・データベースを手動でプロモーションを開始するフェールオーバーマネージャークラスタの任意のノードに。
efm promote cluster_name [-switchover]
[-sourcenode <
address >] [-quiet] [-noscripts]
cluster _ name は、Failover Managerクラスタの名前です。
元のマスターをスタンバイとして再設定するに は、 - switchover オプションを 含めます 。 - switchover キーワード を含める場合は、 クラスタにマスターノードと少なくとも1つのスタンバイノードが含まれ、ノードが同期している必要があります。
recovery ノードを指定するには 、 -sourcenode キーワードを 含めます 。 conf ファイルがマスターにコピーされます。
スイッチオーバー中の通知を抑制するに は、 -quiet キーワードを 含めます 。
フェールオーバーマネージャがフェンシングおよびプロモーション後のスクリプトを呼び出さないように指示するのを防ぐに は、 -noscripts キーワードを 含めます 。
•
recovery 。 confファイルが既存のスタンバイからマスターノードにコピーされます。
•
•
recoveryた場合 。 confファイルにはアプリケーション名とそのapplicationが含まれていapplication 。このノードにnameプロパティが設定されている場合、アプリケーション名はプロパティ値に置き換えられます。
手動昇格中に、マスターエージェントは recovery 作成する前に仮想IPアドレスを解放します 。 conf で指定したディレクトリ内のファイル db 。 recovery 。 conf 。 dir プロパティ。マスターエージェントは実行されたままで、 Idle ステータスになり ます。
このコマンドは、 auto 指定された値を無視するようにサービスに指示します 。 クラスタプロパティファイルの failover パラメータ。
efm set-priority cluster_name ip_address priority
efm promote cluster _ name - switchover
あなたは起動するまで efm disallow-node からノードのノードのアドレスを削除する(コマンドを Allowed node host list )、あなたは service を使用することができます efm-3.5 最初に efm allow-node コマンドを再度 実行せずに、後でノードを再起動するための start コマンド 。
Failover Managerクラスタを停止するには、Failover Managerクラスタの任意のノードに接続し、 efm またはOSスーパーユーザーの IDを想定して 、次のコマンドを呼び出します。
efm stop-cluster cluster_name
コマンドは すべて を引き起こし ます Failover Managerエージェントが終了します。 Failover Managerエージェントを終了すると、すべてのフェイルオーバー機能が完全に無効になります。
注意してください:あなたが efm を呼び出すとき stop - cluster コマンドは、 すべての認可ノード情報から失われる Allowed node host list 。
efm disallow-node コマンドは、フェールオーバーマネージャーからのノードのIPアドレス削除 Allowed node host list 。既存のノード(現在実行中のクラスターの一部)上のefmまたはOSスーパーユーザーのIDを想定し 、クラスターの名前とノードのIPアドレスを指定して efm disallow-node コマンド を呼び出し ます。
efm disallow-node cluster_name ip_address
efm disallow-node コマンドは、実行中のエージェントを停止することはありません。エージェントを停止するまで、サービスはノード上で実行され続けます(エージェントの制御については、セクション 5を 参照 )。その後エージェントまたはクラスターが停止されると、ノードはクラスターに再参加することは許可されず、フェイルオーバー優先順位リストから削除されます(そして昇格には不適格になります)。
efm disallow-node コマンド を呼び出した後 、 efm allow-node コマンドを 使用し てノードをクラスタに再度追加する必要があります。 efmユーティリティの使用方法の詳細については、 5.3 項を参照してください 。
Failover Manager efm cluster-status コマンドまたはPEM Clientのグラフィカルインターフェイスを使用して、Failover Managerクラスタの監視対象ノードの現在のステータスを確認できます。
cluster - status コマンドは、フェールオーバーマネージャークラスタのステータスに関する情報を含むレポートを返します。コマンドを呼び出すには、次のように入力します。
# efm cluster-status cluster _ name
次のステータスレポートは、クラスタの名前です edb 実行されている4つのノードがあります。
efm cluster-status efm
Cluster Status: efm

Agent Type Address Agent DB VIP

-----------------------------------------------------
Witness 172.19.12.170 UP N/A
Master 172.19.13.105 UP UP 172.19.13.107*

Standby 172.19.13.113 UP UP 172.19.13.106
Standby 172.19.14.106 UP UP 172.19.13.108


Allowed node host list:
172.19.12.170 172.19.13.113 172.19.13.105 172.19.14.106

Membership coordinator: 172.19.12.170

Standby priority host list:
172.19.13.113 172.19.14.106

Promote Status:

DB Type Address WAL LSN Info
-------------------------------------------------------
Master 172.19.13.105 0/31000140
Standby 172.19.13.113 0/31000140
Standby 172.19.14.106 0/31000140

Standby database(s) in sync with master. It is safe to promote.
Cluster Status セクションには、クラスタの各ノードに存在するエージェントのステータスの概要が表示されます。
Cluster Status: efm

Agent Type Address Agent DB VIP

-----------------------------------------------------
Witness 172.19.12.170 UP N/A
Master 172.19.13.105 UP UP 172.19.13.107*

Standby 172.19.13.113 UP UP 172.19.13.106
Standby 172.19.14.106 UP UP 172.19.13.108

Allowed node host list と Standby priority host list 使用すると、どのノードがクラスタに参加できるか、およびノードの昇格順序を簡単に判断できます。 Membership のIPアドレス coordinator もレポートに表示されます。
Allowed node host list:
172.19.12.170 172.19.13.113 172.19.13.105 172.19.14.106

Membership coordinator: 172.19.12.170

Standby priority host list:
172.19.13.113 172.19.14.106
Promote レポートの「 Status セクションは、 cluster - status コマンドを 呼び出しているノードから cluster 各データベースへの 直接照会の結果 です。クエリは各データベースのトランザクションログの場所も返します。
Promote Status:

DB Type Address WAL LSN Info
-------------------------------------------------------
Master 172.19.13.105 0/31000140
Standby 172.19.13.113 0/31000140
Standby 172.19.14.106 0/31000140

Standby
master. in sync with
Standby
database(s) master. It is safe to promote.
データベースが停止している(またはデータベースが再起動されているのに resume コマンドがまだ呼び出されていない)場合、そのホスト上にあるエージェントの状態は Idle ます。エージェントがアイドル状態の場合、クラスタステータスレポートにはアイドルノードの状態の概要が含まれます。
Agent Type Address Agent DB VIP
-----------------------------------------------------
Idle 172.19.18.105 UP UP 172.19.13.105
C:\ Users \ susan \ Desktop \ str_replication_dashboard_master.png
ストリーミングレプリケーション分析ダッシュボード(図4.1に表示)には、ストリーミングレプリケーションが有効になっている監視対象サーバーのアクティビティに関する統計情報が表示されます。ダッシュボードのヘッダを監視サーバのステータスを特定する(いずれかの Replication Master または Replication Slave )、およびサーバは、最後のページが最後に更新された日付と時刻を開始し、サーバーのトリガーアラートの現在のカウントされた日付と時刻を表示します。
C:\ Users \ susan \ Desktop \ str_replication_dashboard_standby.png
以下の例では 、同じノードで実行されている 2つのデータベースクラスタ( acctg と sales )を使用しています。
•
acctg データ は /opt/pgdata1 ます。そのサーバーはポート 5444 監視しています 。
•
sales データ は /opt/pgdata2; そのサーバーはポート 5445 監視しています 。
これら両方のデータベースクラスタに対してFailover Managerエージェントを実行するには、 efm 使用し efm 。 2つのプロパティファイルを作成するための properties.in テンプレート。各クラスタープロパティファイルには一意の名前を付ける必要があります。この例では、 acctg を作成し acctg 。 properties と sales 。 acctg および sales データベースクラスタ に一致する properties 。
admin.port
bind.address

db.port
db.recovery.conf.dir

virtualIp (使用されている場合)
virtualIp.interface
(使用されている場合)
各クラスター・プロパティー・ファイル内で、 db.port パラメーターは各クラスターに固有の値を指定しますが、 db は固有の値です 。 user と db 。 database パラメータは同じ値または一意の値を持つことができます。たとえば、 acctg です。 properties ファイルは次のように指定します。
sales ながら 。 properties ファイルは次のように指定します。
各クラスターのクラスター・プロパティー・ファイルを作成するときは、 db 。 recovery 。 conf 。 dir パラメータは、それぞれのデータベースクラスタごとに一意の値も指定する必要があります。
virtualIp
virtualIp 。 interface
virtualIp 。 prefix
acctg 作成した後 。 properties と sales 。 properties ファイル。クラスタごとに、それぞれのプロパティファイルを指すサービススクリプトまたはユニットファイルを作成します。この手順はプラットフォームによって異なります。 RHEL 6.xまたはCentOS 6.xを使用している場合は、 4.3.1 項を参照してください 。 RHEL 7.xまたはCentOS 7.xを使用している場合は、 4.3.2 項を参照してください 。
RHEL 6.xまたはCentOS 6.xを使用している場合は、 efm-3.5 サービススクリプトを各クラスターに固有の名前で新しいファイルに コピーする必要 があります。例えば:
次に、 CLUSTER 変数を 編集して 、クラスター名を efm から acctg または sales に変更します 。
RHEL 7.xまたはCentOS 7.xを使用している場合は、 efm-3.5 ユニットファイルを各クラスターに固有の名前で新しいファイルに コピーする必要 があります。たとえば、2つのクラスタ( acctg と sales )がある場合、ユニットファイル名は次のようになります。
次に、 各ユニットファイル内 の CLUSTER 変数を 編集して 、指定したクラスタ名を efm から新しいクラスタ名に変更し ます。 たとえば、 acctg という名前の acctg 場合、値は次のように指定されます。
また、 PIDfile パラメータの 値を更新し て新しいクラスタ名を指定する必要があります。例えば:
•
efm という名前の設定ファイル 。 Failover Managerサービスによって使用される properties を含むproperties。レプリケーションシナリオの各ノードには、そのノードに関する情報を提供するプロパティファイルが含まれている必要があります。
•
efm という名前のクラスタメンバーファイル 。 クラスタメンバーのリストを含む nodes 。レプリケーションシナリオの各ノードには、クラスタメンバーリストが含まれている必要があります。
RHEL 6.xおよびCentOS 6.xでは、Failover Manager は /etc/init.d ある (デフォルトで) efm-3.5 という名前のLinuxサービスとして実行されます 。 Failover Managerによって監視されている各データベースクラスタは、レプリケーションクラスタの各ノードでサービスのコピーを実行します。
RHEL 6.xまたはCentOS 6.xホストに存在するFailover Managerエージェントを制御 するには、次の service コマンドを 使用します 。
start コマンドは、現在のノード上のフェールオーバーマネージャー・エージェントを開始します。ローカルFailover Managerエージェントはローカルデータベースを監視し、他のノード上のFailover Managerと通信します。 Failover Managerクラスタ内のノードは任意の順序で起動できます。
statusコマンドは、呼び出されたFailover Managerエージェントのステータスを返します。 フェールオーバーマネージャにステータス情報を返すように指示するには、任意のノードで status コマンドを 呼び出し ます。例えば:
RHEL 7.xおよびCentOS 7.xでは、Failover Manager は / usr / lib /systemd/system (デフォルトで) efm-3.5.service という名前のLinuxサービスとして実行されます 。 Failover Managerによって監視されている各データベースクラスタは、レプリケーションクラスタの各ノードでサービスのコピーを実行します。
RHEL 7.xまたはCentOS 7.xホスト上に存在するFailover Managerエージェントを制御 するには、次の systemctl コマンドを 使用します 。
start コマンドは、現在のノード上のフェールオーバーマネージャー・エージェントを開始します。ローカルFailover Managerエージェントはローカルデータベースを監視し、他のノード上のFailover Managerと通信します。 Failover Managerクラスタ内のノードは任意の順序で起動できます。
statusコマンドは、呼び出されたFailover Managerエージェントのステータスを返します。 任意のノードで status コマンドを 呼び出して、 ステータスとサーバー起動情報を返すようにFailover Managerに指示 することができ ます。
Failover Managerには、 クラスタ管理を支援するため の efm ユーティリティがあります。 Failover Managerをインストールすると、RPMインストーラによって /usr/edb/efm-3.5/binディレクトリにユーティリティが追加されます 。
efm allow-node cluster_name
efm 起動する 指定されたノードがクラスターに参加 allow-node コマンド。コマンドを呼び出すときに、クラスターの名前と参加ノードのIPアドレスを指定します。
efm cluster-status cluster_name
Failover Managerクラスタのステータスを表示するに は、 efm cluster-status コマンドを 呼び出し ます。クラスタステータスレポートの詳細については、 4.2.1 項を 参照してください 。
efm cluster-status-json コマンドを 呼び出して 、Failover Managerクラスタのステータスをjson形式で表示します。表示される情報の形式は efm によって生成される表示とは異なりますが cluster - status コマンド、情報源は同じです。
{
"nodes": {
"172.16.144.176": {
"type": "Witness",
"agent": "UP",
"db": "N\/A",
"vip": "",
"vip_active": false
},
"172.16.144.177": {
"type": "Master",
"agent": "UP",
"db": "UP",
"vip": "",
"vip_active": false,
"xlog": "2\/77000220",
"xloginfo": ""
},
"172.16.144.180": {
"type": "Standby",
"agent": "UP",
"db": "UP",
"vip": "",
"vip_active": false,
"xlog": "2\/77000220",
"xloginfo": ""
}
},
"allowednodes": [
"172.16.144.177",
"172.16.144.160",
"172.16.144.180",
"172.16.144.176"
],
"membershipcoordinator": "172.16.144.177",
"failoverpriority": [
"172.16.144.180"
],
"minimumstandbys": 0,
"missingnodes": [],
"messages": []
}
efm disallow-node cluster_name ip_address
efm 起動する 指定されたノードを許可ホストリストから削除し、そのノードがクラスタに参加しないようにする disallow-node コマンド。 efm 呼び出すときに、クラスタの名前とノードのIPアドレスを指定します。 disallow - node コマンド。このコマンドは、によって呼び出されなければならない efm のメンバー efm group, 又は root 。
efm encrypt cluster_name [--from-env]
パスワードをクラスター・プロパティー・ファイルに含める前に 、 efm encrypt コマンドを 呼び出して データベースのパスワードを暗号化してください。 フェールオーバーマネージャに EFMPASS 環境変数で 指定された値を使用し、 ユーザーの入力なしで実行する ように指示 するには、 - from - env オプションを 含めます 。詳細は、 3.5.1.2 項を参照してください 。
efm promote cluster_name [-switchover [-sourcenode address ]
[-quiet] [-noscripts]
promote コマンドをマスターにスタンバイの手動フェイルオーバーを実行するためにフェイルオーバーマネージャーに指示します。
スタンバイノードを昇格させるに は –switchover 句を 含め、 マスターノードをスタンバイノードとして再構成します。 sourcenode キーワードを 含め、 ノード address を指定して recovery するノードを 指定します 。 conf ファイルは古いマスターノードにコピーされます(スタンバイになります)。 スイッチオーバープロセス中の通知を抑制するに は、 - quiet キーワードを 含めます 。 フェールオーバーマネージャにフェンシングまたはプロモーション後のスクリプトを呼び出さないように指示 するには、 -noscripts キーワードを 含めます 。
このコマンドは、 auto 指定された値を無視するようにサービスに指示します 。 クラスタプロパティファイルの failover パラメータ。
efm resume cluster_name
efm 起動する 以前に停止したデータベースの監視を再開する resume コマンド。このコマンドは、によって呼び出されなければならない efm のメンバー efm group, 又は root 。
efm set-priority cluster_name ip_address priority
efm 起動する フェールオーバー優先順位をスタンバイノードに割り当てる set-priority コマンド。値は、フェイルオーバーの際に新しいノードが使用される順序を指定します。このコマンドは、によって呼び出されなければならない efm のメンバー efm group, 又は root 。
priority は n 整数値です 。ここで、 n はリスト内のスタンバイノードの数です。 新しいノードがプライマリスタンバイであり、フェールオーバーの場合に最初に昇格されるノードになることを示すには 、値 1 を指定します。 priority の 0 スタンバイを促進しないためにフェールオーバーマネージャーに指示します。
efm stop-cluster cluster_name
efm 起動する すべてのノードでフェールオーバーマネージャーを停止 stop-cluster コマンド。このコマンドは、フェールオーバーマネージャーにクラスターの各ノードに接続し、既存のメンバーにシャットダウンするように指示します。このコマンドは実行中のデータベースには影響しませんが、コマンドが完了しても、フェイルオーバー保護は行われません。
注意してください:あなたが efm を呼び出すとき stop - cluster コマンド、 許可されたすべてのノード情報が Allowed から削除されます。 node host list 。
efm upgrade-conf cluster_name [-source efm upgrade-conf directory ]
efm upgrade-conf コマンドを 呼び出して 、既存のFailover Managerインストールから設定ファイルをコピーし、Failover Manager 3.5インストールに必要なパラメータを追加します。ユーティリティを起動するときに、前のクラスタの名前を指定します。このコマンドは root 権限 で呼び出す必要があります 。
-あなたはsudoを使用していないフェールオーバーマネージャー構成からアップグレードする場合、含める source フラグをしての名前を指定し directory 呼び出すときにコンフィギュレーション・ファイルが存在する upgrade - conf 。
efm - help コマンドを 呼び出して 、Failover Managerユーティリティコマンドのオンラインヘルプを表示します。
jgroups 変更して、エージェントログに書き込まれる詳細レベルを制御できます 。 loglevel と efm 。 クラスタプロパティファイルの loglevel パラメータ
# Logging levels for JGroups and EFM.
#
Valid values are: TRACE, DEBUG, INFO, WARN, ERROR
#
Default value: INFO
#
It is not necessary to increase these values unless debugging a
#
specific issue. If nodes are not discovering each other at
#
startup, increasing the jgroups level to DEBUG will show
#
help
#
information about the TCP connection attempts that may help
#
diagnose the connection failures.
TRACE
DEBUG
INFO
WARN
ERROR
たとえば、 efm を設定したとし efm 。 loglevel パラメータを WARN に 設定すると 、Failover Managerは WARN レベル以上( WARN と ERROR )の メッセージのみをログに記録します 。
syslogへの接続を許可するには、 /etc/rsyslog.confファイルを編集して、使用したいプロトコルのコメントを外します。プロトコルに関連付けられているUDPServerRunまたはTCPServerRunエントリに、ログエントリの送信先のポート番号が含まれていることも確認する必要があります。
syslog設定ファイルを変更し たら 、 rsyslogサービスを再起動して接続を有効にします。
rsyslog 修正した後 。 Failover Managerホストのconfファイルの場合は、ログ記録を有効にするためにFailover Managerのプロパティを変更する必要があります。プロパティファイルを変更するために、エディタの選択を使用してください( /etc/edb/efm-3.5/efm 。 properties 。 in 、実装したいログの種類を指定します):
システムのsyslog詳細も指定する必要があります。 syslogを 使用してください 。 プロトコルタイプ(UDPまたはTCP)とsyslogを指定するprotocolパラメータ。 syslogホストのリスナーポートを指定するportパラメータ。 syslog.facility値は、エントリを作成したプロセスの識別子として使用できます。値はLOCAL0とLOCAL7の間になければなりません。
syslogの 人
7 通知
user.email
script.notification
EFM node: 10.0.1.11
Cluster name: acctg
Database name: postgres
VIP: ip _ address (Active|Inactive)

Database health is not being monitored.
VIP ノードのために実装されている場合、フィールドには、仮想IPのIPアドレスと状態を表示します。
INFO はエージェントに関する情報メッセージを示し、手動操作を必要としません(たとえば、Failover Managerが起動または停止したなど)。
WARNING は、管理者にシステムのチェックを要求するイベントが発生したことを示します(たとえば、フェイルオーバーが発生した)。
SEVERE は、重大なイベントが発生したことを示し、管理者の即時の注意が必要です(たとえば、フェイルオーバーが試行されましたが完了できませんでした)。
重大度は通知の緊急度を示します。重大度が SEVERE の通知には直ちにユーザーの注意が必要 ですが 、重大度が INFO 通知に はユーザーの操作を必要としないクラスターに関する運用情報への注意が必要です。通知の重大度はログレベルとは関係ありません。設定ファイルで指定されたログレベルの詳細に関係なく、すべての通知が送信されます。
あなたは notification を使用することができます 。 通知をトリガーする最小の重大度レベルを指定する level プロパティ。詳細は、 3.5.1.1 項を参照してください 。
Executed fencing script script_name Results: script_results
Executed post-promotion script script_name Results: script_results
Executed remote pre-promotion script script_name Results: script_results
Executed remote post-promotion script script_name Results: script_results
Executed post-database failure script script_name Results: script_results
Executed master isolation script script_name Results: script_results
for cluster cluster_name node_address for cluster Witness agent running on node_address Witness agent running on
for cluster cluster_name node_address for cluster Master agent running on
for cluster cluster_name node_address for cluster Standby agent running on
for cluster cluster_name Idle agent running on node node_address for cluster Idle agent running on node
Assigning VIP VIP_address to node node_address Results: script_results
Releasing VIP VIP_address from node node_address Results: script_results
The agent on this node will check every auto.resume.period seconds to see if it can resume monitoring the failed database. The cluster should be checked during this time and the agent stopped if the database will not be started again. See the agent log for more details. The agent on this node will check every seconds to see if it can resume monitoring the failed database. The cluster should be checked during this time and the agent stopped if the database will not be started again. See the agent log for more details.
Executed agent resumed script script_name Executed agent resumed script Results: script_results
node_address Witness agent exited on for cluster cluster_name node_address for cluster Witness agent exited on node_address
Master agent exited on for cluster cluster_name node_address for cluster Master agent exited on node_address
Cluster cluster_name notified that master node has left
Standby agent exited on for cluster cluster_name node_address for cluster Standby agent exited on node_address
for cluster cluster_name node_address for cluster Agent exited during promotion on
Agent exited on for cluster cluster_name node_address for cluster Agent exited on node_address
cluster_name The standbys on have left the cluster.
cluster_name A standby agent on has left the cluster, but the coordinator has detected that the standby database is still running.
Cluster cluster_name has dropped below three nodes
Subset of cluster cluster_name Subset of cluster disconnected from master
This node is no longer connected to the majority of the cluster cluster_name This node is no longer connected to the majority of the cluster . Because this node is part of a subset of the cluster, failover will not be attempted. Current nodes that are visible are: node_address . Because this node is part of a subset of the cluster, failover will not be attempted. Current nodes that are visible are: node_address
node_address Witness running at node_address has left the cluster.
node_address Idle agent running at has left the cluster.
The standby EFM agent tried to promote itself, but could not because the virtual IP address ( VIP_address ) appears to still be assigned to another node. Promoting under these circumstances could cause data corruption. Failover has NOT occurred. The standby EFM agent tried to promote itself, but could not because the virtual IP address ( ) appears to still be assigned to another node. Promoting under these circumstances could cause data corruption. Failover has NOT occurred.
The standby EFM agent tried to promote itself, but could not because the well-known server ( server_address ) could not be reached. This usually indicates a network issue that has separated the standby agent from the other agents. Failover has NOT occurred.
An agent has detected that the master database is no longer available in cluster cluster_name , but there are no standby nodes available for failover. An agent has detected that the master database is no longer available in cluster , but there are no standby nodes available for failover.
A potential failover situation was detected for cluster cluster_name A potential failover situation was detected for cluster . Automatic failover has been disabled for this cluster, so manual intervention is required.
Lock file for cluster cluster_name Lock file for cluster has been removed
The lock file for cluster cluster_name The lock file for cluster on node node_address path_name has been removed from: node_address . This lock prevents multiple agents from monitoring the same cluster on the same node. Please restore this file to prevent accidentally starting another agent for cluster.
file for cluster cluster_name recovery.conf file for cluster has been found
A recovery.conf file for cluster cluster_name A recovery.conf file for cluster on master node node_address path_name on master node has been found at: . This may be problematic should you attempt to restart the DB on this node.
The path provided for the trigger_file parameter in the recovery.conf file is not writable by the db_service_owner user. Failover Manager will not be able to promote the database if needed. The path provided for the trigger_file parameter in the recovery.conf file is not writable by the user. Failover Manager will not be able to promote the database if needed.
The auto . property has been set to false for this node. The node has not been reconfigured to follow the new master node after a failover. reconfigure property has been set to false for this node. The node has not been reconfigured to follow the new master node after a failover.
Could not resume replay for standby being promoted. Manual intervention may be required. Error: error_decription
This error is returned if the server encounters an error when invoking replay during the promotion of a standby.
Your remote.timeout value ( value ) is higher than your local.timeout value ( value ) . If the local database takes too long to respond, the local agent could assume that the database has failed though other agents can connect. While this will not cause a failover, it could force the local agent to stop monitoring, leaving you without failover protection.
The current number of standby nodes in the cluster has dropped to the minimum number: number . There cannot be a failover unless another standby node(s) is added or made promotable.

以下の表にリストされている条件は SEVERE 通知 をトリガーします 。
The master agent can no longer reach the local database running at node_address. The master agent can no longer reach the local database running at node_address. Other nodes are able to access the database remotely, so the master will not release the VIP and/or create a recovery.conf file. The master agent will become idle until the resume command is run to resume monitoring the database. Other nodes are able to access the database remotely, so the master will not release the VIP and/or create a file. The master agent will become idle until the resume command is run to resume monitoring the database.
Fencing script script_name failed to execute successfully.
Exit Value: exit_code
Results: script_results
Failover has NOT occurred.
Post-promotion script script_name failed to execute successfully.
Exit Value:
exit_code
Results: script_results
Remote-post-promotion script script_name failed to execute successfully
Exit Value: exit_code
Results: script_results
Node: node_address
Remote-pre-promotion script script_name failed to execute successfully
Exit Value: exit_code
Results: script_results
Node: node_address
Post-database failure script script_name failed to execute successfully.
Exit Value:
exit_code
Results:
script_results
Agent resumed script script_name failed to execute successfully.
Results:
script_results
Master isolation script script_name failed to execute successfully.
Exit Value:
exit_code
Results:
script_results
The trigger file file_name could not be created on node. Could not promote standby. Error details: message_details
for cluster cluster_name node_address recovery.conf file on Error creating
during promotion. Promotion has continued, but requires manual intervention to ensure that the old master node can not be restarted. Error details: There was an error creating the recovery.conf file on master node node_address during promotion. Promotion has continued, but requires manual intervention to ensure that the old master node can not be restarted. Error details: There was an error creating the recovery.conf file on master node during promotion. Promotion has continued, but requires manual intervention to ensure that the old master node can not be restarted. Error details: message_details
The master database has been isolated from the majority of the cluster. The cluster is telling the master agent at to fence off the master database to prevent two masters when the rest of the failover manager cluster promotes a standby. The master database has been isolated from the majority of the cluster. The cluster is telling the master agent at ip_address The master database has been isolated from the majority of the cluster. The cluster is telling the master agent at to fence off the master database to prevent two masters when the rest of the failover manager cluster promotes a standby. ip_address to fence off the master database to prevent two masters when the rest of the failover manager cluster promotes a standby.
database failure for cluster cluster_name master_or_standby database failure for cluster
is no longer available in cluster cluster_name , but there are not enough standby nodes available for failover.. is no longer available in cluster , but there are not enough standby nodes available for failover..
node_address Database in wrong state on node_address
node_address Database in wrong state on node_address
The following custom monitor script has failed on a standby node.
The agent will stop monitoring the local database.
Script location: script_name
Script output: script_results
Script output: script_results
set to true for master node property_name set to true for master node
property has been set to true for this cluster. Stopping the master agent without stopping the entire cluster will be treated by the rest of the cluster as an immediate master agent failure. If maintenance is required on the master database, shut down the master agent and wait for a notification from the remaining nodes that failover will not happen. The property_name property has been set to true for this cluster. Stopping the master agent without stopping the entire cluster will be treated by the rest of the cluster as an immediate master agent failure. If maintenance is required on the master database, shut down the master agent and wait for a notification from the remaining nodes that failover will not happen.
Load balancer attach script script_name failed to execute successfully.
Exit Value:
exit_code
Results:
script_results
Load balancer detach script script_name failed to execute successfully.
Exit Value:
exit_code
Results:
script_results
Failover Managerは no もサポートします。 自動 - あなたはフェイルオーバーマネージャーは、監視およびフェイルオーバー条件を検出しますが、スタンバイへの自動フェイルオーバーを実行しないようにしたいような状況のための フェールオーバー モード。このモードでは、フェイルオーバー条件が満たされると通知が管理者に送信されます。自動フェイルオーバーを無効にするには、クラスタプロパティファイルを修正して auto 設定します 。 failover パラメータを false 設定し false ( 3.5.1.1 項を参照 )。
C:\ Users \ susan \ Desktop \スクリーンショット2015-05-28 at 11.19.47 AM.png
2。
元のマスターノードで efm resume コマンドを 呼び出し ます。
1。
クラスタに複数のスタンバイノードがある場合は、 efm allow-node コマンドを 使用し てノードのフェールオーバー優先順位を 1 に設定します 。
2。
ノードをその元の役割であるマスターノードに昇格させるには、 efm promote -switchover コマンドを 呼び出し ます。コマンドの詳細については、セクション 5.3 を参照してください 。
::::スクリーンショット2015-01-26 at 1.37.34 PM.png
スタンバイデータベースを efm resume な状態に戻した後、 efm resume コマンドを実行してスタンバイをクラスタに戻します。
スクリーンショット2014-12-15 7で
::::スクリーンショット2015-01-26 at 1.44.44 PM.png
スクリーンショット2014-12-15 7で
注 :1つのマスターと1つのスタンバイしか残っていない場合、マスターノードに障害が発生してもフェイルオーバー保護はありません。 Masterデータベースに障害が発生した場合、MasterエージェントとStandbyエージェントはデータベースに障害が発生したことに同意し、フェールオーバーを続行できます。
C:\ Users \ susan \ Desktop \スクリーンショット2015-02-02、9.27.03 AM.png
2。
Failover Managerをインストールした後、 efm 起動して efm upgrade - conf ユーティリティを作成します。 properties と。 Failover Manager 3.5用の nodes ファイル。 Failover Managerインストーラがアップグレードユーティリティを追加しました( efm /usr/edb/efm-3.5/binディレクトリにupgrade - conf)します。 ユーティリティを起動するには、root権限を想定して次のコマンドを起動します。
efm upgrade-conf cluster _ name
efm upgrade - conf ユーティリティが。 properties と。 既存のクラスタのファイルを nodes 化し、Failover Managerで使用するためにパラメータ値を新しい設定ファイルにコピーします。ユーティリティは、更新された設定ファイルのコピーを /etc/edb/efm-3.5 ディレクトリに 保存します 。
3。
を修正します。 properties と。 EFM 3.5用の nodes ファイル。新しい設定を指定します。 Failover Managerのバージョン3.5では、次の設定プロパティが追加されました。
選択したエディタを使用して 、そのノードのサービスを開始する前 に、プロパティファイル( /etc/edb/efm-3.5 ディレクトリにあります)の 追加のプロパティを変更 します。プロパティ設定の詳細については、 3.5 項を参照してください 。
5。
クラスタの各ノードで 新しいフェールオーバーマネージャサービス( efm-3.5 )を 起動し ます。サービス開始の詳細については、 4.1.1 項を参照してください 。
次の例は、アップグレードユーティリティを呼び出してを作成する方法を示しています。 properties と。 Failover Managerインストール用の nodes ファイル
-あなたはsudoをせずにフェールオーバーマネージャーの設定を使用している場合は、含める source フラグをして呼び出すときに設定ファイルが存在するディレクトリの名前を指定し upgrade - conf 。
-あなたはsudoをせずにフェールオーバーマネージャーの設定を使用している場合は、含める source フラグを設定し、ファイルが存在するディレクトリの名前を指定します。ディレクトリが設定のデフォルトディレクトリではない場合、アップグレードされたファイルは upgrade - conf コマンドが呼び出さ れたディレクトリに作成され ます。詳細はセクション 3.4.1を 参照してください 。
更新が完了したら、 efm set - priorityコマンドを使用して古いマスターをスタンバイリストの先頭に追加してから、スイッチオーバーしてクラスターを元の状態に戻すことができます。 efm set - priorityの詳細については、 5.3 項を参照してください。
予期しないエラーメッセージに関する通知メッセージが表示された場合は、フェールオーバーマネージャのログファイル(セクション 6を 参照 )でOutOfMemoryメッセージを確認してください。 Failover Managerは、このプロパティで設定されたデフォルトのメモリ値で動作します。
次の例では、を使用します。 レプリケーションユーザに対して md5 認証 を有効にするための pgpass ファイル - これはあなたの環境にとって最も安全な認証方法かもしれません。サポートされている認証オプションの詳細については、以下のPostgreSQLコアドキュメントを参照してください。
•
マスターノードは 146.148.46.44
•
スタンバイノードは 107.178.217.178
•
複製ユーザー名は edbrepuserです。
複製シナリオのマスターノードに接続し、 pg_hba.conf ファイル( Postgresインストールの下 の data ディレクトリにあります)を変更して、複製ユーザー(この例では edbrepuser )の 接続情報を追加します 。
変更 postgresql.conf (にあるファイル data directory, under your Postgres installation ファイルの末尾に次のレプリケーションのパラメータと値を追加し、):
sudo su – コマンドを 使用して 、 enterprisedb データベースのスーパーユーザーの 身元を確認し ます。
Then, start a edb database: session, connecting to the Then, start a psql session, connecting to the Then, start a database:
時 psql コマンドラインを持つユーザーの作成 replication 属性を:
選択したエディタ で、 enterprisedb ユーザの ホームディレクトリに .pgpass ファイルを 作成し ます。 .pgpass ファイルはプレーンテキスト形式で複製、ユーザのパスワードを保持しています。 .pgpass ファイル を使用している場合は、 信頼できるユーザーだけが .pgpass ファイルに アクセスできるようにする .pgpass ます。
サーバーは、 .pgpass ファイルに 制限付きのアクセス許可を強制し ます。ファイルのアクセス権を設定するには、次のコマンドを使用します。
スタンバイノードの data ディレクトリをマスターノード の data ディレクトリ に置き換える前に、データベースサーバーを停止する必要があり ます。以下のコマンドを使用してください。
次に、 スタンバイノードの data ディレクトリを 削除し ます。
既存の data ディレクトリを 削除した後 、 bin ディレクトリに 移動し 、 pg_basebackup ユーティリティを 使用し てマスターノードの data ディレクトリをスタンバイ にコピーし data 。
cd /opt/edb/as10/bin
./pg_basebackup –R –D /opt/edb/as10/data
--host=146.148.46.44 –-port=5444
--username=edbrepuser --password
pg_basebackup の呼び出し は、マスターノードのIPアドレスとマスターノードで作成された複製ユーザーの名前を指定します。 pg_basebackupユーティリティで利用可能なオプションの詳細については、以下のPostgreSQLコアドキュメントを参照してください。
pg_basebackup によってプロンプトが pg_basebackup され pg_basebackup 、複製ユーザーに関連付けられたパスワードを入力します。
data ディレクトリを コピーした後 、ディレクトリの所有権をデータベーススーパーユーザ( enterprisedb ) に変更します 。
移動し data ディレクトリ:
選択したエディタ で、 /opt/PostgresPlus/9.xAS/data を含む recovery.conf( という名前のファイル recovery.conf( /opt/PostgresPlus/9.xAS/data ディレクトリ内)を 作成します 。
standby_mode = on
primary_conninfo = 'host=146.148.46.44 port=5444 user=edbrepuser sslmode=prefer sslcompression=1 krbsrvname=postgres'

trigger_file = '/opt/edb/as10/data/mytrigger'
restore_command = '/bin/true'
recovery_target_timeline = 'latest'
primary_conninfo パラメータは、レプリケーションシナリオのマスターノード上の複製ユーザーの接続情報を指定します。
recovery 所有権を変更し ます。 conf のEnterpriseDBへのファイル:
postgresql 修正してください 。 ファイル の末尾に次の値を指定して、 conf ファイル( Postgresインストールの下の data directory にあります):
psqlクライアントでスタンバイに接続して pg_is_in_recovery() 関数 を問い合わせる と、サーバーは以下のように応答します。
C:\ Users \ susan \ AppData \ Local \ Temp \ vmware-susan \ VMwareDnD \ 46cf8bc4 \スクリーンショット2016-10-06 at 11.15.37 AM.png
1。
置き server 。 crt と server 。 dataディレクトリ(Advanced Serverインストールの下)にある key ファイル。認証局によって署名された証明書を購入することも、独自の自己署名証明書を作成することもできます。自己署名証明書の作成については、次の場所にあるPostgreSQLのコアドキュメントを参照してください。
2。
postgresql 修正してください 。 Failover Managerクラスタ内の各データベースに conf ファイルを作成し、SSLを有効にします。
postgresql 修正した後 。 conf ファイル、サーバーを再起動する必要があります。
3。
pg _ hba 変更し ます。 Failover Managerクラスタの各ノードに conf ファイルを追加し、ファイルの先頭に次の行を追加します。
4。
server 配置した後 。 crt と server 。 dataディレクトリの key ファイルで、証明書をJavaが理解できる形式に変換します。あなたがコマンドを使用することができます:
keytool -keystore $JAVA_HOME/lib/security/cacerts -alias alias _ name -import -file server.crt.der
$JAVA_HOME は、Javaインストールのホームディレクトリです。
alias _ name は任意の文字列にできますが、各証明書に対して一意である必要があります。
keytool コマンドを 使用して 、利用可能な証明書のリストを確認したり、特定の証明書に関する情報を取得したりできます。 keytool コマンドの 使用方法について詳しくは 、次のように入力してください。
各データベースサーバーからの証明書は、各エージェントの信頼できる証明書ファイルにインポートする必要があります。 cacerts ファイルの 場所は システムごとに異なる可能性があることに 注意してください 。詳しくは、次のURLをご覧ください。
6。
efm 修正して efm 。 properties 設定、クラスタ内の各ノード上のファイル jdbc 。 sslmode プロパティ。