素敵なおひげですね

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

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

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

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