読者です 読者をやめる 読者になる 読者になる

素敵なおひげですね

PowerShellを中心に気分で書いているブログです。

RAC環境でOEM Expressを構築しようとしてハマったところ

Oracle

ちょっとハマったのでメモ。

Oracle Enterprise Manager Express(OEM Experss)はRAC環境でもサポートされており、インストール手順は、

RAC環境でのOracle Enterprise Manager Database Expressの構成 (コーソル DatabaseエンジニアのBlog)

の内容を参考にするといい感じにインストールできます。

RAC環境でOEM Expressを構築しようとしてハマったところ

環境はOracle 12.1.0.2.0 Enterprise Edition、ノード数3。
データベース構築時はOEM Experssをインストールせず後から追加でインストールしました。

上記リンクの手順について、

1. LOCAL_LISTENERを設定する

RAC環境であれば自動でLOCAL_LISTENERの設定がなされるはずです。
OEM Express向けに特別な設定を入れなく良いはずなので今回はデータベース構築時のままとしました。

2. DISPATHERSを設定する

こちらは記事の通りに設定しました。
ただ、設定後に判明したのですが、DISPATHERSの設定はDISPATCHERS=(PROTOCOL=TCP)(SERVICE=[DB_NAME]XDB)でも動作する様です。

3. exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500)を実行する

こちらも記事の通り実行し、HTTPSで5500ポートを使う設定にしました。

4. SHARED_SERVERSを設定する

ここでハマったのですが、1.~3.の手順を実行してもリスナーにエントリポイントが増えずしばらく悩まされました。
ここで以下の記事を見つけ、SHARED_SERVERSパラメーターが設定されていないことに気が付きました。

Oracle Database Express 12c | 技術ブログ| レック・テクノロジー・コンサルティング株式会社

今回の環境は専用サーバー構成でデータベースを作成していたのでSHARED_SERVERSパラメーターが設定されていませんでした。 SHARED_SERVERS1に設定し、各インスタンスを再起動したところ無事OEM Expressに接続することができました。

最終的な設定内容

この4点を踏まえた最終的な設定内容は以下になりました。 とりあえずデータベースORCLインスタンスORCL1ORCL3としています。

データベースに流すSQL

ALTER SYSTEM RESET DISPATCHERS SCOPE=SPFILE SID='*'
;
ALTER SYSTEM SET DISPATCHERS="(PROTOCOL=TCP)(SERVICE=ORCL1XDB)" SCOPE=BOTH SID='ORCL1'
;
ALTER SYSTEM SET DISPATCHERS="(PROTOCOL=TCP)(SERVICE=ORCL2XDB)" SCOPE=BOTH SID='ORCL2'
;
ALTER SYSTEM SET DISPATCHERS="(PROTOCOL=TCP)(SERVICE=ORCL3XDB)" SCOPE=BOTH SID='ORCL3'
;
ALTER SYSTEM SET SHARED_SERVERS=1 SCOPE=BOTH SID='*'
;
exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500)
;

srvctlでデータベースを再起動

srvctl stop database -db ORCL -stopoption IMMEDIATE
srvctl start database -db ORCL -startoption OPEN