| Oracle Applicationsシステム管理者ガイド - 構成 リリース11i(2005年6月) 部品番号: B15956-01 | 目次 | 前へ | 次へ |
この項では、Real Application Clusters(RAC)を使用する環境にOracle Applicationsをインストールするための必要なステップについて説明します。Oracle ApplicationsとRACの併用には、基本的に2つの場合(初めてインストールする場合とOracle Applicationsが単一のデータベース・インスタンスを使用してすでに配置されている場合)があります。RACに移行するステップは、両方の場合とも本質的には同じです。移行を開始する前に必要な前提ステップと、移行ステップの2組のステップがあります。
次の一連のステップは、データベースをRACに移行する前に実行してください。RACに移行する前は、いつでも前提ステップを実行できます。前提ステップとRAC移行ステップの両方とも、システムを一時停止する必要があるため、その点を考慮して計画してください。
既存のOracle Applicationsランタイム環境がある場合は、このステップをスキップできます。Rapid Installを完了し、標準的な単一のデータベース・インスタンスのインストール・モードを使用してください。また、FormsおよびSelf-Serviceを含めたアプリケーション・モジュールが確実に機能するようにします。さらに、コンカレント・マネージャが有効化されて確実に機能するようにしてください。
RACには、共有ディスク・アーキテクチャの実装を円滑化するために共有ディスク・ボリュームが必要です。使用しているプラットフォームでVeritasなどのディスク・ボリューム・マネージャを使用して、共有ディスク・ボリュームを構成します。移行時間を最短化するために、データベース・ファイル、REDOログ・ファイル、ログ・ファイルおよび制御ファイルなど、各データベース・ファイルには個別の共有ボリュームを構成してください。すべてのインスタンスからすべてのファイルに対してアクセスが許可されるように、データベース・ファイルをすべて共有ボリュームに配置する必要があります。REDOログ・ファイルは各インスタンスごとにプライベートですが、リカバリの際は、他のインスタンスがREDOログ・ファイルにアクセスすることが必要になります。データベースが、80個のデータ・ファイル、4個のログ・ファイルおよび2個の制御ファイルで構成される場合は、少なくとも86個の共有ディスク・ボリュームを構成してください。ボリュームには、当初のデータ・ファイルを格納できるようなサイズを指定してください。たとえば、既存のデータ・ファイルが1GBの場合、そのデータ・ファイルの共有ボリュームには、少なくとも1GBのサイズを指定します。一般に、共有ボリュームのサイズは、ボリューム・マネージャおよびRAWデバイスのオーバーヘッドを考慮して、既存のデータ・ファイルよりも数MB大きくするように指定してください。
共有ボリュームの構成を完了した後は、共有ボリュームをオンラインで提供し、oracleのバイナリを所有するシステム・アカウントが共有ボリュームを読取り/書込みできるように共有ボリュームに対する権限を変更します。
データベース・サーバーの$ORACLE_HOMEからOracle9i Universal Installerを使用して、Real Application Clustersオプションをインストールします(インストールされていない場合)。
Oracle8iを使用している場合は、Oracle8iインストーラを使用してParallel Serverオプションをインストールしてください。
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に設定されています。したがって、制御ファイルを再作成する必要はありません。
制御ファイル・パラメータMAXINSTANCESを変更するためには、データベース制御ファイルを再作成する必要があります。次のステップに従って再作成できます。
myhost> sqlplus "/ as sysdba" SQL> alter database backup controlfile to trace;
制御ファイルのバックアップ・コマンドにより、init.oraのパラメータuser_dump_destに指定されているディレクトリに、トレース・ファイルが生成されます。このトレース・ファイルを検索し、制御ファイルの再作成に使用できるSQLスクリプトを作成するために編集します。トレース・ファイルのコメントは削除してください。たとえば、MAXINSTANCESパラメータの値を1から4に変更します。
STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "OPSPROD" NORESETLOGS ¥ NOARCHIVELOG MAXLOGFILES 255 MAXLOGMEMBERS 2 MAXDATAFILES 1022 MAXINSTANCES 4 MAXLOGHISTORY 907
トレース・ファイルへの変更内容がcontrol.sqlというSQLスクリプトに保存されます。
すべてのアプリケーション・サービスを停止し、次にデータベースを(標準モードで)停止します。その後、制御ファイルを次のように再作成します。
myhost> sqlplus "/ as sysdba" SQL>@control.sql
制御ファイルが正しく作成され、データベースが正常にオープンしたことを確認します。MAXINSTANCESパラメータが正しく設定されたことを確認するために、ステップ4「MAXINSTANCESパラメータの適切な設定の確認」を繰り返します。
前提ステップを完了した後は、次のステップを実行してください。
RAC環境に移行する前に、コンカレント・マネージャ、フォーム・サーバー、レポート・サーバー、Discoverer、セルフ・サービス(Apache JServやApache Mod PL/SQL)など、すべてのアプリケーション・サービスを停止してください。中間層サービスが正常に停止した後、データベース・インスタンスを標準または即時モードで停止してください。
データベースは、ファイルをコピーする前に停止してください。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
共有ボリュームへのデータベース・ファイルのコピーを完了した後は、データベースが共有ボリュームを指し示すように設定する必要があります。新しい共有ボリュームを指し示すシンボリック・リンクを作成するか、またはALTER DATABASE RENAME FILEコマンドを使用して、データベースに格納されたファイル名を変更します。ALTER DATABASE RENAME FILEコマンドを使用してデータ・ファイル名を変更するには、データベースを排他マウント・モードで起動する必要があります。データ・ファイル名を変更した後、データベースをオープンできます。
ALTER DATABASE RENAME FILEコマンドでファイル名を変更した場合は、名称変更の完了に続いて、ALTER DATABASE openコマンドでデータベースをオープンします。v$datafile、v$logfileおよびv$tempfileを問い合せて、データベース・ファイル名が共有ボリューム名を反映していることを確認します。次に、データベース・インスタンスを標準モードで停止します。
インスタンス番号やスレッド番号など、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に割り当てます。
インスタンス#1を共有モードで起動します。
sqlplus> startup
Oracle8i Parallel Serverを使用している場合は、起動時にparallelオプションを指定する必要があります。
sqlplus> startup parallel
インスタンス#1を使用して、インスタンス#2を起動できるように別のREDOログ・スレッドを追加します。
ALTER DATABASE ADD LOGFILE THREAD 2
'logthr2_1.dbf' size 500M ,
'logthr2_2' size 500M ;
ALTER DATABASE ENABLE PUBLIC THREAD 2;
インスタンス#2を共有モードで起動します。
sqlplus> startup
Oracle8i Parallel Serverを使用している場合は、起動時にparallelオプションを指定する必要があります。
sqlplus> startup parallel
中間層システム(つまり、データベース・クライアント)のtnsnames.oraファイルを変更して、RAC環境を反映します。2ノードのクラスタ・システムでは、独立した2つのTNS別名を定義してください。アプリケーション・エラーになるため、tnsnames.oraではLOAD_BALANCEオプションは使用しないでください。
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文字以下)を使用することをお薦めします。
フォーム・サーバー、レポート・サーバー、Apache(JServやMod PL/SQL)、コンカレント・マネージャなどのアプリケーション・サービスを開始します。
RACでは、手動によるアプリケーションのパーティション化は不要ですが、システム管理者は、パフォーマンスとスケーラビリティを最大化するために、ユーザーまたはユーザーのクラスを特定のインスタンスにバインドできます。
ユーザーの特定のクラスをRACクラスタの特定のインスタンスに割り当てるために、Oracle Applicationsプロファイル・オプション「データベース・インスタンス」(INSTANCE_PATH)を使用して、特定の職責を持つユーザーを特定のインスタンスにバインドできます。たとえば、「データベース・インスタンス」プロファイル・オプションを使用して、PurchasingフォームのユーザーをインスタンスAにバインドし、Order ManagementフォームのユーザーをインスタンスBにバインドできます。
コンカレント・プログラムの場合は、パラレル・コンカレント処理(PCP)機能と特殊化マネージャを使用することで、特定のインスタンスにコンカレント・プログラムをバインドできます。
ここでは、Real Application Clusters(RAC)およびOracle E-Business Suiteを使用して、ロード・バランシングを効果的に実装するための重要な構成ステップについて説明します。
Oracle9i Real Application Clusters環境では、接続ロード・バランシングによって、複数インスタンスの中で有効な接続数を調整する機能が提供されます。
専用サーバーと共有サーバーの両方の構成で、11iとRACの間で接続ロード・バランシングを構成できます。
動的サービス登録、およびリモートまたはローカル・リスナーのパラメータの構成により、リスナーは、インスタンスおよびディスパッチャの配置に関係なく、それらのすべてを常に認識しています。リスナーは、ロード情報に基づいて、着信したクライアント要求の割当て先インスタンスを判断します。
リモート・リスナーまたはローカル・リスナーのパラメータを使用して、すべてのノードのリスナーにインスタンスを登録します。
専用サーバー構成の場合、リスナーは、次の順にインスタンスを選択します。
remote_listenerパラメータを使用して、インスタンスおよびディスパッチャの配置に関係なく、リスナーがそれらのすべてを常に認識するようにします。リスナーは、ロード情報に基づいて、着信したクライアント要求の割当て先インスタンスを判断します。
ワークロードは、異なる手段で配分できます。環境に固有の適切なアプローチをテストしてください。
HTMLベースのアプリケーションは、アプリケーション・サーバーのホスト名で構成され、データベース・サーバーによって動的に追加される単一のURLを利用することに依存しています。このURLは、データベース内にハード・コード化され、必要に応じて、プロファイル・オプションを介して変更される場合があります。このため、複数ノードの中間層環境では、ロード・バランシングおよびフェイルオーバー機能が制限されます。
HTMLベースのアプリケーションでロード・バランシングが機能するためには、インストールにパッチ2549449を適用する必要があります。
次のステップに従います。
Oracle JDBC 9iR2ドライバ・パッチは、Oracle Applicationsリリース11.5.9以上のメンテナンス・パックおよびFNDパッチセットG以上に格納されています。
次に構成ファイルの例を示します。
両方のインスタンスに必要なのは、次の構文を使用した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>)))
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
L_LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ap201ops)(PORT = 1526))
)
R_LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ap202ops)(PORT = 1526))
)
ifile=initcommon_fidel115.ora
undo_management=auto
undo_tablespace=undo_rbs1
instance_number=1
thread=1
remote_listener = R_LISTENER
local_listener = L_LISTENER
~