ヘッダーをスキップ

Oracle Applicationsシステム管理者ガイド - 構成
リリース11i(2005年6月)
部品番号: B15956-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

Oracle ApplicationsとReal Application Clusters

Real Application Clusters(RAC)へのOracle Applications単一インスタンスの移行

概要

この項では、Real Application Clusters(RAC)を使用する環境にOracle Applicationsをインストールするための必要なステップについて説明します。Oracle ApplicationsとRACの併用には、基本的に2つの場合(初めてインストールする場合とOracle Applicationsが単一のデータベース・インスタンスを使用してすでに配置されている場合)があります。RACに移行するステップは、両方の場合とも本質的には同じです。移行を開始する前に必要な前提ステップと、移行ステップの2組のステップがあります。

前提

次の一連のステップは、データベースをRACに移行する前に実行してください。RACに移行する前は、いつでも前提ステップを実行できます。前提ステップとRAC移行ステップの両方とも、システムを一時停止する必要があるため、その点を考慮して計画してください。

ステップ1: Oracle ApplicationsのRapid Installの完了

既存のOracle Applicationsランタイム環境がある場合は、このステップをスキップできます。Rapid Installを完了し、標準的な単一のデータベース・インスタンスのインストール・モードを使用してください。また、FormsおよびSelf-Serviceを含めたアプリケーション・モジュールが確実に機能するようにします。さらに、コンカレント・マネージャが有効化されて確実に機能するようにしてください。

ステップ2: 共有ディスク・ボリュームの構成

RACには、共有ディスク・アーキテクチャの実装を円滑化するために共有ディスク・ボリュームが必要です。使用しているプラットフォームでVeritasなどのディスク・ボリューム・マネージャを使用して、共有ディスク・ボリュームを構成します。移行時間を最短化するために、データベース・ファイル、REDOログ・ファイル、ログ・ファイルおよび制御ファイルなど、各データベース・ファイルには個別の共有ボリュームを構成してください。すべてのインスタンスからすべてのファイルに対してアクセスが許可されるように、データベース・ファイルをすべて共有ボリュームに配置する必要があります。REDOログ・ファイルは各インスタンスごとにプライベートですが、リカバリの際は、他のインスタンスがREDOログ・ファイルにアクセスすることが必要になります。データベースが、80個のデータ・ファイル、4個のログ・ファイルおよび2個の制御ファイルで構成される場合は、少なくとも86個の共有ディスク・ボリュームを構成してください。ボリュームには、当初のデータ・ファイルを格納できるようなサイズを指定してください。たとえば、既存のデータ・ファイルが1GBの場合、そのデータ・ファイルの共有ボリュームには、少なくとも1GBのサイズを指定します。一般に、共有ボリュームのサイズは、ボリューム・マネージャおよびRAWデバイスのオーバーヘッドを考慮して、既存のデータ・ファイルよりも数MB大きくするように指定してください。

共有ボリュームの構成を完了した後は、共有ボリュームをオンラインで提供し、oracleのバイナリを所有するシステム・アカウントが共有ボリュームを読取り/書込みできるように共有ボリュームに対する権限を変更します。

ステップ3: Real Application Clustersオプションのインストール

データベース・サーバーの$ORACLE_HOMEからOracle9i Universal Installerを使用して、Real Application Clustersオプションをインストールします(インストールされていない場合)。

Oracle8iを使用している場合は、Oracle8iインストーラを使用してParallel Serverオプションをインストールしてください。

ステップ4: MAXINSTANCESパラメータの適切な設定の確認

RACに移行するには、データベースが、同じデータベースをマウントしてアクセスする複数インスタンスをサポートする必要があります。したがって、制御ファイルのMAXINSTANCESパラメータは、有効なRACインスタンス数に設定してください。たとえば、2ノードのクラスタを構成している場合は、MAXINSTANCESパラメータの値を少なくとも2に設定します。MAXINSTANCESの既存の値を判断するには、次の問合せを実行します。

select type,records_total
from v$controlfile_record_section
where type='REDO THREAD';

OUTPUT:

TYPE             RECORDS_TOTAL
---------------- --------------
REDO THREAD                  4

REDO THREADタイプのRECORDS_TOTAL値がRACインスタンスの必要数以上になっている場合は、ステップ5をスキップできます。必要数未満の場合は、ステップ5の指示に従ってMAXINSTANCESの値を増やしてください。前述の例の出力では、MAXINSTANCESは4に設定されています。したがって、制御ファイルを再作成する必要はありません。

ステップ5: MAXINSTANCESパラメータの増加

制御ファイル・パラメータMAXINSTANCESを変更するためには、データベース制御ファイルを再作成する必要があります。次のステップに従って再作成できます。

制御ファイルが正しく作成され、データベースが正常にオープンしたことを確認します。MAXINSTANCESパラメータが正しく設定されたことを確認するために、ステップ4「MAXINSTANCESパラメータの適切な設定の確認」を繰り返します。

RACの移行ステップ

前提ステップを完了した後は、次のステップを実行してください。

ステップ1: アプリケーション・サービスの停止

RAC環境に移行する前に、コンカレント・マネージャ、フォーム・サーバー、レポート・サーバー、Discoverer、セルフ・サービス(Apache JServやApache Mod PL/SQL)など、すべてのアプリケーション・サービスを停止してください。中間層サービスが正常に停止した後、データベース・インスタンスを標準または即時モードで停止してください。

ステップ2: 共有ボリュームへのデータベース・ファイルのコピー

データベースは、ファイルをコピーする前に停止してください。OSコピー・ユーティリティを使用して、すべてのデータベース・ファイルを共有ボリュームにコピーします。Solarisでは、ddコマンドを使用してデータ・ファイルをコピーできます。次に例を示します。

prompt> dd if=ont_idx1.dbf of=/dev/vx/rdsk/apps1opsdg/vol25 ¥
                        bs=64k
prompt> dd if=mrp_data1.dbf of=/dev/vx/rdsk/apps1opsdg/vol26 ¥
        bs=64k

ステップ3: 共有ボリュームへのリンク

共有ボリュームへのデータベース・ファイルのコピーを完了した後は、データベースが共有ボリュームを指し示すように設定する必要があります。新しい共有ボリュームを指し示すシンボリック・リンクを作成するか、またはALTER DATABASE RENAME FILEコマンドを使用して、データベースに格納されたファイル名を変更します。ALTER DATABASE RENAME FILEコマンドを使用してデータ・ファイル名を変更するには、データベースを排他マウント・モードで起動する必要があります。データ・ファイル名を変更した後、データベースをオープンできます。

ALTER DATABASE RENAME FILEコマンドでファイル名を変更した場合は、名称変更の完了に続いて、ALTER DATABASE openコマンドでデータベースをオープンします。v$datafile、v$logfileおよびv$tempfileを問い合せて、データベース・ファイル名が共有ボリューム名を反映していることを確認します。次に、データベース・インスタンスを標準モードで停止します。

ステップ4: init.oraファイルの構成

インスタンス番号やスレッド番号など、RACに関連する構成が含まれるように各インスタンスのinit.oraファイルを変更します。さらに、パラメータparallel_serverをTRUEに設定して、RACを使用可能にします。次に例を示します。

 instance 1:
             instance_number=1
             thread=1
                    cluster_database=true
             rollback_segments = (rbs1, rbs2, rbs3, rbs4)
      instance 2:
             instance_number=2
             thread=2
             cluster_database=true1
             rollback_segments = (rbs5, rbs6, rbs7, rbs8)

Oracle8i Parallel Serverを使用している場合は、クラスタ内の各インスタンスのinit.oraパラメータ・ファイルにparallel_server=trueを設定します。

ロールバック・セグメントは特定のインスタンスに割り当てることをお薦めします。たとえば、既存のデータベースが8個のロールバック・セグメント(rbs1〜rbs8)で構成される場合は、4個のロールバック・セグメントをインスタンス#1に、4個のロールバック・セグメントをインスタンス#2に割り当てます。

ステップ5: インスタンス#1の起動

インスタンス#1を共有モードで起動します。

 sqlplus> startup

Oracle8i Parallel Serverを使用している場合は、起動時にparallelオプションを指定する必要があります。

 sqlplus> startup parallel

ステップ6: インスタンス#2のREDOスレッドの追加

インスタンス#1を使用して、インスタンス#2を起動できるように別のREDOログ・スレッドを追加します。

 ALTER DATABASE ADD LOGFILE THREAD 2
              'logthr2_1.dbf' size 500M ,
              'logthr2_2' size 500M ;
       ALTER DATABASE ENABLE PUBLIC THREAD 2;

ステップ7: インスタンス#2の起動

インスタンス#2を共有モードで起動します。

 sqlplus> startup

Oracle8i Parallel Serverを使用している場合は、起動時にparallelオプションを指定する必要があります。

 sqlplus> startup parallel

ステップ8: tnsnames.oraファイルの構成

中間層システム(つまり、データベース・クライアント)のtnsnames.oraファイルを変更して、RAC環境を反映します。2ノードのクラスタ・システムでは、独立した2つのTNS別名を定義してください。アプリケーション・エラーになるため、tnsnames.oraではLOAD_BALANCEオプションは使用しないでください。

ステップ9: RACのSelf-Service Infrastructureの構成

Self-Service Infrastructure(ICX)では、管理者によってCookie名が明示的に設定されていない場合は、デフォルトでデータベース・インスタンス名がCookie名の一部として使用されます。RAC環境では、ユーザーが接続されたインスタンスに基づいてデータベース・インスタンス名を変更できます。したがって、ICX_PARAMETERS表で、Cookie名(SESSION_COOKIE_NAME)を明示的に定数値に設定してください。次の例に従って、AppsスキーマからICX_PARAMETERS表を更新します。

 SQL> update ICX_PARAMETERS
          set SESSION_COOKIE_NAME='OPSPROD1';

この例では、Cookie名はOPSPROD1に設定されます。session_cookie_nameには30文字以下の長さで任意の値を指定できます。ただし、短縮名(5文字以下)を使用することをお薦めします。

ステップ10: アプリケーション・サービスの開始

フォーム・サーバー、レポート・サーバー、Apache(JServやMod PL/SQL)、コンカレント・マネージャなどのアプリケーション・サービスを開始します。

ステップ11: 特定のインスタンスへのユーザーのバインド

RACでは、手動によるアプリケーションのパーティション化は不要ですが、システム管理者は、パフォーマンスとスケーラビリティを最大化するために、ユーザーまたはユーザーのクラスを特定のインスタンスにバインドできます。

ユーザーの特定のクラスをRACクラスタの特定のインスタンスに割り当てるために、Oracle Applicationsプロファイル・オプション「データベース・インスタンス」(INSTANCE_PATH)を使用して、特定の職責を持つユーザーを特定のインスタンスにバインドできます。たとえば、「データベース・インスタンス」プロファイル・オプションを使用して、PurchasingフォームのユーザーをインスタンスAにバインドし、Order ManagementフォームのユーザーをインスタンスBにバインドできます。

コンカレント・プログラムの場合は、パラレル・コンカレント処理(PCP)機能と特殊化マネージャを使用することで、特定のインスタンスにコンカレント・プログラムをバインドできます。

Oracle E-Business SuiteおよびReal Application Clustersでのロード・バランシングの実装

ここでは、Real Application Clusters(RAC)およびOracle E-Business Suiteを使用して、ロード・バランシングを効果的に実装するための重要な構成ステップについて説明します。

ロード配分

Oracle9i Real Application Clusters環境では、接続ロード・バランシングによって、複数インスタンスの中で有効な接続数を調整する機能が提供されます。

専用サーバーと共有サーバーの両方の構成で、11iとRACの間で接続ロード・バランシングを構成できます。

動的サービス登録、およびリモートまたはローカル・リスナーのパラメータの構成により、リスナーは、インスタンスおよびディスパッチャの配置に関係なく、それらのすべてを常に認識しています。リスナーは、ロード情報に基づいて、着信したクライアント要求の割当て先インスタンスを判断します。

リモート・リスナーまたはローカル・リスナーのパラメータを使用して、すべてのノードのリスナーにインスタンスを登録します。

専用サーバー構成の場合、リスナーは、次の順にインスタンスを選択します。

remote_listenerパラメータを使用して、インスタンスおよびディスパッチャの配置に関係なく、リスナーがそれらのすべてを常に認識するようにします。リスナーは、ロード情報に基づいて、着信したクライアント要求の割当て先インスタンスを判断します。

HTMLベースのアプリケーションのロード・バランシング

ワークロードは、異なる手段で配分できます。環境に固有の適切なアプローチをテストしてください。

HTMLベースのアプリケーションは、アプリケーション・サーバーのホスト名で構成され、データベース・サーバーによって動的に追加される単一のURLを利用することに依存しています。このURLは、データベース内にハード・コード化され、必要に応じて、プロファイル・オプションを介して変更される場合があります。このため、複数ノードの中間層環境では、ロード・バランシングおよびフェイルオーバー機能が制限されます。

HTMLベースのアプリケーションでロード・バランシングが機能するためには、インストールにパッチ2549449を適用する必要があります。

次のステップに従います。

構成ファイルの例

次に構成ファイルの例を示します。

<HOSTNAME>_<SERVICE_NAME>.DBCファイル

両方のインスタンスに必要なのは、次の構文を使用した1つのdbcファイル(<hostname1>_<service_name>.dbc)のみです。

TWO_TASK=<SERVICE_NAME>
FNDNAM=APPS
GWYUID=APPLSYSPUB/PUB
GUEST_USER_PWD=OPERATIONS/WELCOME
APPS_JDBC_DRIVER_TYPE=THIN
DB_HOST=<NODE1>.us.oracle.com
DB_PORT=1526
BATCH_VALIDATE_USER=mfg
BATCH_VALIDATE_PWD=welcome
APPS_JDBC_DRIVER_TYPE=THIN
FND_MAX_JDBC_CONNECTIONS=100
APPS_JDBC_URL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=
(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST1>)(PORT-1526))
(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST2>)(PORT=1526)))
(CONNECT_DATA=(SERVICE_NAME = <SERVICE_NAME>)))

DBインスタンス1 - LISTENER.ORA

LISTENER=
  (ADDRESS_LIST =
        (ADDRESS= (PROTOCOL= IPC)(KEY= opsperf))
        (ADDRESS= (PROTOCOL= IPC)(KEY= fidel1151))
#       (ADDRESS= (PROTOCOL= IPC)(KEY= PNPKEY))
        (ADDRESS= (PROTOCOL= TCP)(Host= ap201ops)(Port= 1526))
  )
SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (ORACLE_HOME= /d1/oracle81)
       (SID_NAME = opsperf)
     )
     (SID_DESC =
       (ORACLE_HOME= /d1/oracle81)
       (SID_NAME = fidel1151)
     )
     (SID_DESC =
       (SID_NAME = extproc)
       (ORACLE_HOME = /d1/oracle81)
       (PROGRAM = extproc)
     )
  )

STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
TRACE_LEVEL_LISTENER = OFF

DBインスタンス1 - TNSNAMES.ORA

L_LISTENER =
  (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ap201ops)(PORT = 1526))
)
R_LISTENER =
  (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ap202ops)(PORT = 1526))
)

DBインスタンス1 - INIT.ORA

ifile=initcommon_fidel115.ora
undo_management=auto
undo_tablespace=undo_rbs1
instance_number=1
thread=1
remote_listener = R_LISTENER
local_listener = L_LISTENER
~