Troubleshooting#
Failover Managerエージェントの起動に失敗する#
バージョン5.xエージェントの起動に失敗した場合は、指示に従ってsystemctl/journalctl出力を参照してください。エージェントがバージョン4.xである場合、詳細については、起動ログ/var/log/efm-<version>/startup-<cluster>.log
を参照してください。
承認ファイルが見つかりません。ローカルエージェントは実行されていますか?#
Failover Managerクラスター管理コマンドを呼び出し、Failover
Managerがノードで実行されていない場合、 efm
コマンドはエラーを表示します。
Authorization file not found. Is the local agent running?
このコマンドを実行する権限がありません。ユーザー ’<os user>’は`efm` グループのメンバーではありません。#
Using the efm utility に文書化されている一部のefm
コマンドを呼び出すには、特別な権限が必要です。これらのコマンドを実行する権限を持たないユーザーが呼び出した場合、
efm コマンドはエラーを表示します。
Not authorized to run this command. User <os user> is not a member of the `efm` group.
通知;予期しないエラーメッセージ#
予期しないエラーメッセージに関する通知メッセージを受け取った場合は、
Failover Manager log file でOutOfMemory
メッセージを確認します。フェールオーバーマネージャーは、このプロパティで設定されたデフォルトのメモリ値で実行されます。
# Extra information that will be passed to the JVM when starting the agent.
jvm.options=-Xmx128m
128メガバイト未満の割り当てで実行している場合は、値を増やしてFailover Managerエージェントを再起動します。
OpenJDKバージョンの確認#
Failover ManagerはOpenJDKでテストされています。 OpenJDKを使用することを強くお勧めします。次のコマンドを使用して、Javaインストールのタイプを確認できます。
フェールオーバーマネージャーエージェントが使用しているJavaのバージョンを更新または変更する前に、エージェントを停止し、更新後に再度起動する必要があります。これはOSのアップグレードにも適用され、エージェントが使用しているJavaインストールが変更される可能性があります。 Configuring for Eager Failover が使用されていない限り、エージェントを停止しても実行中のデータベースサーバーに影響はありません。
# java -version
openjdk version "11.0.20" 2023-07-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS, mixed mode, sharing)
注釈
RHELおよびその派生のOpenJDKバージョン11に一時的な問題があります。フェールオーバーマネージャーを起動すると、次のようなエラーが表示される場合があります。
java.lang.Error: java.io.FileNotFoundException: /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-2.el8.x86_64/lib/tzdb.dat (No such file or directory)
このメッセージが表示された場合、回避策は、
sudo dnf install tzdata-java
コマンドを使用して、不足しているパッケージを手動でインストールすることです。
クラスター外部からの予期しない接続試行#
外部プロセスがbind.address
ポートでエージェントに接続しようとすると、フェールオーバーマネージャーは接続試行のソースを含む警告をログに記録します。これらの警告は、フェールオーバーマネージャークラスターには影響しません。ただし、ソースアドレスを使用して、外部プロセスを停止または構成して、フェールオーバーマネージャーエージェントに接続しようとしないようにできます。以下は、クラスターの外部の何かが<source_address>
からエージェントプロセスに接続しようとしたときに表示されるメッセージの例です。
org.jgroups.protocols.TCP warn WARN: JGRP000006: failed accepting connection from peer Socket[addr=/<source_address>,port=56046,localport=7800]: java.net.SocketTimeoutException: Read timed out
別のクラスターの一部であったアドレスでエージェントを実行している場合、元のクラスターはまだこのアドレスに接続してクラスターを再形成しようとしている可能性があります。この例では、クラスターoldcluster
はまだnewcluster の一部になったアドレスに接続しようとしています。
org.jgroups.protocols.TCP warn WARN: JGRP000012: discarded message from different cluster oldcluster (our cluster is newcluster). Sender was 93cb99c7-bf3f-4243-b582-faf25aced49e(<source_address>)
クラスター名前と<source_address>
情報を使用して、元のクラスターを見つけることができます。そのクラスターで efm remote-members コマンドを使用すると、キャッシュからアドレスがクリアされます。