株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

RAC環境でのOracle Enterprise Manager Database Expressの構成

RAC環境でOracle Enterprise Manager Database Expressを構成しようとしたときに少しハマったのでメモしておきます。

RAC環境でもシングル環境と同様に、上記のマニュアルの箇所に記載されている以下の手順に従い、OEM Expressを構成します。

  1. local_listenerを設定する
  2. dispatchersを設定する
  3. exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500); で OEM Expressが使用するポートを指定する

dispatchersの設定には注意が必要です。どうやらDBCAのデフォルトでは、dispatchersのSERVICEに、[DB_NAME]XDBが設定されているようです。(あまりきっちり検証していないので、違う場合はご容赦ください)

SQL> show parameter dispatchers

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP)(SERVICE=c101ruX
                                                 DB)
max_dispatchers                      integer

しかし、実際にはdispatchersのSERVICEに、[SID]XDBを設定する必要があります。

SQL> define sidbase=lc101ru
SQL> alter system reset dispatchers scope=spfile sid='*';

System altered.

SQL> alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=&sidbase.1XDB)" scope=both sid='&sidbase.1';
old   1: alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=&sidbase.1XDB)" scope=both sid='&sidbase.1'
new   1: alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=lc101ru1XDB)" scope=both sid='lc101ru1'

System altered.

alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=&sidbase.2XDB)" scope=both sid='&sidbase.2';
old   1: alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=&sidbase.2XDB)" scope=both sid='&sidbase.2'
new   1: alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=lc101ru2XDB)" scope=both sid='lc101ru2'

System altered.

SQL> alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=&sidbase.3XDB)" scope=both sid='&sidbase.3';
old   1: alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=&sidbase.3XDB)" scope=both sid='&sidbase.3'
new   1: alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=lc101ru3XDB)" scope=both sid='lc101ru3'

System altered.

また、DBMS_XDB_CONFIG.SETHTTPSPORT の実行後に、インスタンスとリスナーの再起動が必要なようです。 これを明確に記載しているドキュメントを確認できませんでしたが、自分が検証した限りでは、リスナーを再起動するまで、リスナーにXML DB Repository に対応するリスニングエンドポイントが追加されませんでした。(これはRAC特有の制約ではないはずです)

[oracle@lc101ru1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 03-9月 -2013 15:16:45

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.1.0 - Production
Start Date                03-9月 -2013 01:49:37
Uptime                    0 days 0 hr. 27 min. 8 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/12.1.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/lc101ru1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.31.180.1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.31.180.2)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=lc101ru1.domain)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/12.1.0/dbhome_1/admin/c101ru/xdb_wallet))(Presentation=HTTP)(Session=RAW)) ←★
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "c101ru.world" has 1 instance(s).
  Instance "c101ru1", status READY, has 1 handler(s) for this service...
Service "c101ru1XDB.world" has 1 instance(s).
  Instance "c101ru1", status READY, has 1 handler(s) for this service...
The command completed successfully

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ