[EM] Recreating OMS instances in a HA environment when instances on all nodes are lost

OracleはEnterprise Manager(以下EM)をHA環境にデプロイすることを強く推奨しています。HA環境へのデプロイ、バックアップ、ハウスキーピングや災害対策などのベストプラクティスは、以下をご覧下さい。

Oracle Enterprise Manager Advanced Installation and Configuration Guide
http://download.oracle.com/docs/cd/E11857_01/install.111/e16847/toc.htm

このエントリでは、正しい運用、ハウスキーピングができず、すべてのOMSが停止してにっちもさっちもいかなくなったお客様の例をご紹介します。

このお客様は2ノードのOMSセットアップし、リポジトリとしてRACをお使いでした。<OMS_ORACLE_HOME>が削除されるという予想外のことが起こったため、シングルノードだけ残ってしまったので、この削除されたノードを復旧しようとしたところ、もう一方のノード(残ったノード)が再起動してしまいました。管理サーバも、管理対象サーバも起動できず、完全にサイトが停止してしまったのです。

このお客様の場合、
  • どちらのノードのOracle Homeもバックアップを取っていなかった
  • OMSの構成スナップショットがなかった("emctl exportconfig oms"でスナップショットを撮ることができます)
  • インスタンスホームは完全に無くなっていた(そのインスタンスには管理サーバがあった)。
さらに、
  • emkey.oraのコピーが第2ノードの<OMS_ORACLE_HOME>にあった。(OMSと同じサーバの<OMS_ORACLE_HOME>にemkeyを置くことは推奨されません)
  • 第2ノードの<OMS_ORACLE_HOME>から数多くのファイルが削除されていたり、変更されていた。WebLogic Serverのログをもとにいくつかのファイルを修正してサーバを起動しようとしたが、すべて失敗した。
という状態でした。

この条件下で復旧する方法をお伝えします。

STEP 1. emkey.oraの状態を確認する
EMリポジトリにemkeyが存在するか、以下のコマンドで確認します。
$OMS_ORACLE_HOME/bin/emctl status emkey
出力結果が以下のような場合、リポジトリにkeyがあります。
#./emctl status emkey

Oracle Enterprise Manager 11g Release 1 Grid Control
Copyright (c) 1996, 2010 Oracle Corporation. All rights reserved.

Enter Enterprise Manager Root (SYSMAN) Password :

The EMKey is configured properly.
EM管理サーバが立ち上がっているかどうか、keyが適切に構成されているかどうかによって、メッセージの内容が異なります。

1) 管理サーバが起動していて、emkeyがCredStoreに適切に構成されていて、リポジトリにemkeyが存在しない場合、上の例と同じメッセージが現れます。
The EMKey is configured properly.
2) 管理サーバが起動していて、emkeyがCredStoreにて適切に構成され、リポジトリにemkeyが存在する場合
The EMKey is configured properly, but is not secure.
Secure the EMKey by running "emctl config emkey -remove_from_repos".
3) 管理サーバが停止しており、emkeyがCredStore内で壊れており、かつemkeyがリポジトリに存在する場合
The EMKey exists in the Management Repository, but is not configured properly or is corrupted in the credential store.
Configure the EMKey by running "emctl config emkey -copy_to_credstore".
4) 管理サーバが停止しており、emkeyがCredStore内で壊れており、emkeyがリポジトリに存在しない場合
The EMKey is not configured properly or is corrupted in the credential store and does not exist in the Management Repository. To correct the problem:
1) Get the backed up emkey.ora file.
2) Configure the emkey by running "emctl config emkey -copy_to_credstore_from_file".
Keyが適切にセキュリティが確保されていない場合、復旧する前にリポジトリに配置する必要があります。STEP2に進みます。

なお、 emctlを実行したときに以下のようなエラーメッセージが出ることがありますが、無視して下さい。
$OMS_ORACLE_HOME/bin/emctl status emkey

Exception in thread “Main Thread” java.lang.NoClassDefFoundError: oracle/security/pki/OracleWallet

At oracle.sysman.emctl.config.oms.EMKeyCmds.main (EMKeyCmds.java:658)
STEP 2: emkey.oraをリポジトリに戻す
# emkey.oraが既にリポジトリにある場合はこの手順を飛ばしてください。
以下はemkey.oraをリポジトリに戻すコマンドと、出力例です。
# $OMS_ORACLE_HOME/bin/emctl config emkey -copy_to_repos

Oracle Enterprise Manager 11g Release 1 Grid Control

Copyright (c) 1996, 2010 Oracle Corporation. All rights reserved.

The EMKey has been copied to the Management Repository. This operation will cause the EMKey to become unsecure.
必要な処理が完了したら、EMkeyをセキュアにするコマンドを実行します。
emctl config emkey -remove_from_repos
通常、インストール後keyを削除するまでは、keyは<OMS_ORACLE_HOME>/sysman/configにあります。 emctlを実行している間にSTEP 1にあるようなエラーが出た場合、STEP 3を実行してSTEP 5のemkey.oraを保護しましょう。

STEP 3: ポート番号
既存のポート番号をemd.propertiesファイルで確認します。このファイルはEM_INSTANCE_DIRECTORYにあります。gc_instディレクトリは、通常EMをインストールしたMiddleware Homeの一つ上階層です。例えば以下のような関係です。
(gc_inst) /u01/app/oracle/product/gc_inst
(oms_home) /u01/app/oracle/product/Middleware/oms11g
今回の場合、第2ノードのgc_instディレクトリにあったemgc.propertiesファイルから情報を得ました。この情報はSTEP 4で使うので覚えておきましょう。
emctlを実行できるのであれば、以下のコマンドでも確認できます。
$OMS_ORACLE_HOME/bin/emctl status oms -details
STEP 4: 第1ノードをCleanupする
WebLogicおよびOMSのOracle Homeに注意して、適用したパッチのリストを取得します。万一に備えてバックアップを取っておき、Oracle Homeの削除を実行して、インベントリを更新し、第1ノードのプロセスをクリーンナップします。

STEP 5: 第1ノードにOMSのソフトウェアのみインストール
WebLogic 10.3.2を以前と全く同じ場所にインストールしますが、OMSは以下のコマンドを使ってソフトウェアのみインストールします。
runInstaller –noconfig -validationaswarnings
インストール実行中に、「OMSの追加(Additional OMS)」を選択しましょう。以前のインストールと同じOMSのパスとインスタンスディレクトリを提示してくれます。
STEP 3で収集したポート番号をインストール時に使います。インストールが完了したら、allroot.shを実行してバイナリのデプロイを実行します。

STEP 6: One-offパッチの適用
このタイミングで以前適用したOne-offパッチをOMS_ORACLE_HOMEに適用します。

STEP 7: EM keyのコピー
この手順は、STEP 2でemctlコマンドを使ってリポジトリにemkey.oraを保存できなかった場合にのみ実施します。emkey.oraを以下のディレクトリにコピーします。
$OMS_ORACLE_HOME/sysman/config
STEP 8: Grid Controlドメインの構成
以下のコマンドを実行して、EMドメインとOMSを構成します。注意することは、以前使っていたGCドメイン名とは異なるドメイン名を使うということです。例えば、GCDOMAINという名前を以前使っていた場合には、GCDOMAIN11といった具合に新しいドメイン名を付けます。
$OMS_ORACLE_HOME/bin/omsca new -AS_USERNAME weblogic -EM_DOMAIN_NAME GCDOMAIN11 -NM_USER nodemanager -nostart
このコマンドは管理サーバのホスト名、ポート番号、パスワードのような数多くの入力を要求されますが、デフォルト値で問題なければ[Enter]を、そうでなければ正しい値を指定してください。

STEP 9: アドオン構成アシスタントの実行
以下のアドオン構成アシスタントを実行します。今回の例の場合、仮想化のアドオンを構成しました。
$OMS_ORACLE_HOME/addonca -oui -omsonly -name vt -install gc
STEP 10: OMSの起動
OMSを起動します。
$OMS_ORACLE_HOME/bin/emctl start oms
今回の例のような複数ノードへのセットアップの場合、ソフトウェア負荷分散装置(SLB)もしくはDNSラウンドロビンを使って負荷分散します。SLBやDNS仮想ホスト名に対してOMSをセキュアにするために、以下のコマンドを使います。
$ OMS_HOME/bin/emctl secure oms -host slb.example.com -secure_port 1159 -slb_port 1159 -slb_console_port 443
STEP 11: エージェントの構成
以下のコマンドを使います。
$AGENT_ORACLE_HOME/bin run the ./agentca -f
この時点で第1ノードにあるOMSが完全に復旧していますので、今度は第2ノードをクリーンナップして、通常のOMS追加インストールを進めていきます。インストレーションガイドのOMSを追加する方法を参照しながらインストールしましょう。

まとめ
EM以外の問題と合わせて、完全復旧までに2日強かかりました。こういう状況を避けるためには適切なハウスキーピングとEMのデプロイメントのバックアップを最初にやっておくべきですが、この点については次回のエントリにまとめる予定です。こうならないためにも、是非、Oracle Enterprise Manager Advanced Configuration guideを一読ください。

Advanced Installation and Configuration Guide
http://download.oracle.com/docs/cd/E11857_01/index.htm


原文はこちら。
http://blogs.oracle.com/emacs/entry/recreating_oms_instances_in_a

0 件のコメント:

コメントを投稿