Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 10.2.0.4 更新リリース SAP J2EE 構成を含む オラクル ホワイト ペーパー 2008 年 7 月
Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 はじめに... 3 基本セットアップ : SAPシステムの準備... 4 オプション 1: Oracle 10gを使用したSAPシステムの新規インストール... 4 オプション 2: Oracle 9.2 単一インスタンス データベースからのアップグレード... 5 オプション 3: Oracle 9.2 RAC 対応クラスタからのアップグレード... 5 Oracle Clusterwareのインストール... 6 VIP ONS GSDの基本 CRSリソース... 19 SAPインストール用のOracle CRSパラメータ調整... 22 Oracle 10.2 RACソフトウェアのクラスタへのインストール... 24 Oracle Database 10g Release 2 へのデータベースのアップグレード... 31 アップグレードの準備 : サーバー パラメータ ファイルspfile.oraまたはinit<dbsid>.ora... 31 アップグレードの準備 : 非推奨パラメータのチェック... 32 データベースの起動とアップグレード... 32 SYSTEM 表領域の拡張... 32 SYSAUX 表領域の作成... 33 無効なデータベース オブジェクトのチェック... 33 アップグレードの実行... 33 CATCLUST.SQL UTLRP.SQL OLSTRIG.SQLの実行... 34 データベースの制御ファイルのパラメータ... 34 UNDO 表領域による自動 UNDO 管理... 37 REDOログのグループとメンバー... 38 RACのためのOracle 初期化パラメータの修正... 42 Oracleパスワード ファイル... 44 クラスタ データベースの有効化とすべてのインスタンスの起動... 45 Oracleネットワーク構成... 46 リスナー構成ファイルlistener.ora... 46 ネットワーク構成ファイルtnsnames.ora... 53 Instant Client 使用時にTNS_ADMINで指定された場所へのtnsnames.oraファイルのコピー... 58 インスタンス プロファイル パラメータlocal_listenerとremote_listenerの追加... 59 RAC 対応 SAPデータベースのためのCRSでのサービスの登録... 60 Oracle ClusterwareでのSAPデータベースとRACインスタンスの構成... 60 SAP R/3 アプリケーション インスタンスのデータベース サービスの定義... 61 SAPユーザー環境... 63 SAPインスタンスのプロファイル... 63 SAP STARTプロファイル... 64 RACデータベース用 SAP J2EEサーバー構成... 65 J2EEインスタンスのデータベース サービスの定義... 67 SAP BR*Tools... 68 SAP Enqueue Replicationの実行と構成... 68 Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 2
はじめに このホワイト ペーパーでは Oracle Database 10g Release 2 Real Application Clusters のための SAP R/3 システムの構成に必要となるすべての手順を説明します ここでの目的は 単一インスタンスのデータベースから複数インスタンスの RAC 対応データベースへの移行などに必要なすべての手順の概要を示すことです また 各システム環境で利用可能なテンプレートの提供も意図しています このホワイト ペーパーでは主に 単一インスタンスの Oracle データベースから Oracle Database 10g Release 2 Real Application Clusters へのアップグレードと それに伴う SAP R/3 の構成を説明します ここに掲載された情報は Oracle 9.2 RAC 対応の既存システムからアップグレードする場合にも適用できます 単一インスタンスの移行に関する違いについては このドキュメントで説明します ここでは UNIX と Linux 上で稼働する Oracle システムのアップグレードのみが対象です Windows オペレーティング システムについては 別のドキュメントで説明します このホワイト ペーパーでは クラスタ ソリューションに使用するクラスタ ハードウェア オペレーティング システム ストレージ サブシステムの固有のセットアップは説明しません 必須条件として 基礎となるクラスタ ハードウェアのセットアップに必要なインストール前の手順をすべて完了することが必要です 使用するクラスタ ハードウェアのセットアップ方法の詳細は 個々のプラットフォームやオペレーティング システムのベンダーが提供するドキュメントを参照してください サポートされる構成の追加情報と最新情報は Oracle OTN から入手できます 使用するオペレーティング システム ストレージ ソリューションなどの最新情報を確認することを強くお薦めします なお Oracle CRS つまり Oracle 10.2 RAC に付属し Oracle データベース ソフトウェアと組み合せて使用する Oracle Clusterware の使用に必要な部分については ここで説明します また 動作確認済 SAP システムのための推奨 RAC 構成も説明します このホワイト ペーパーでは SAP がサポートしていない Oracle ASM(Automatic Storage Management の使用法については説明しません 重要な注意 : このガイドは RAC 対応 SAP システムのセットアップを支援します Oracle データベース Oracle ネットワーク構成 Oracle インスタンス パラメータなど 必要な変更はすべて説明しますが 完全ではありません SAP Installation and Upgrade Guides for Oracle 10g Release 2 で取り上げる追加手順もすべて実行してください また RAC に関連したすべての SAP Note も参照してください SAP OSS Note 527843 から Oracle RAC 関連情報を確認してください Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 3
基本セットアップ : SAP システムの準備 必要な準備は Oracle 10.2 RAC に対応する SAP システムの種類によって異なります Oracle 10.2 RAC へ移行するには 次の 3 種類の構成があります - Oracle 10g を使用したシステムの新規インストール - Oracle 9.2 単一インスタンス データベースからのアップグレード - Oracle 9.2 RAC 対応クラスタからのアップグレード 実際に RAC の構成前に必要となる作業は 各構成で異なります システム間の主な違いについては適時 説明します オプション 1: Oracle 10g を使用した SAP システムの新規インストール 最初のシステム インストールについては SAP のインストールと構成ガイドを参照してください SAP システムをインストールすることにより 単一インスタンスの Oracle データベースが作成されます SAP からは Oracle RAC 対応データベースを直接インストールする機能は提供されません SAP システムの初期インストールが完了してから RAC への移行を実行してください SAP インストールの開始前に クラスタ ハードウェアのセットアップを完了しておく必要があります データベース ファイル REDO ログ ファイル アーカイブ ログ 制御ファイルをクラスタ ファイル システムに配置します これにより RAC に対応するためにデータを後で共有ストレージにコピーする必要はありません このドキュメントでは 計画されたインストールで投票ディスク ( ボーティング ディスク CRS リポジトリ データベース ファイル 制御ファイル REDO ログ ファイル アーカイブ REDO ログ ファイル $ORACLE_HOME(Oracle RDBMS ソフトウェアのインストール ディレクトリ 下の実行可能ファイル ログ ファイル $CRS_HOME(Oracle CRS ソフトウェアのインストール ディレクトリ 下の実行可能ファイル ならびに /sapmnt ディレクトリ内のすべての SAP 実行可能ファイルに対し 1 つのクラスタ ファイル システムを使用するものとします クラスタ ファイル システムへの Oracle ソフトウェアのインストールは 共有 Oracle ホーム によるインストールに分類されます 注意 : RAC 対応 SAP システムには 共有 Oracle ホームが必要です Oracle CRS ソフトウェアはクラスタ ファイル システム上の共有領域にもインストールされます SAP ソフトウェアのインストール中 ユーザー <sid>adm と ora<sid> が作成されます クラスタ ファイル システムでは これらのユーザーの HOME ディレクトリをクラスタのすべてのノード間で共有できます これは必須要件ではありませんが 変更がクラスタ内のすべてのノードに対して直ちに適用されるため ユーザー プロファイルなどに関する構成作業をより速く完了できます すべての変更を適用するために繰り返し行う作業が省けるため 管理オーバーヘッドが軽減されます このホワイト ペーパーで説明する事例はすべて 共有ユーザー ホームを使用するものとします Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 4
オプション 2: Oracle 9.2 単一インスタンス データベースからのアップグレード Oracle 8.1.7 またはそれ以前のリリースを使用している場合 このドキュメントの手順を実行する前に 9.2.x のアップグレードが必要です RAC へ移行する場合は すべての SAP R/3 システムで Oracle 9.2 以降を実行していることが前提であるためです Oracle のドキュメントは Oracle Technology Network(OTN の Web サイト http://www.oracle.com/technology から入手できます この Web サイトから Oracle Database 10g Release 2 に関連した Oracle ソフトウェア製品の最新情報を必ず入手してください SAP ドキュメントの最新のアップデートは SAP Service Marketplace の Web サイト http://service.sap.com/instguides に掲載されています Other Documentation Database Upgrades Oracle の順にクリックして必要なガイドを参照してください また SAP カーネルで Oracle 9.2 クライアント ソフトウェアを使用している場合 (640 カーネルまたは EXT カーネルを使用している場合 Oracle クライアント ソフトウェアをリリース 9.2.0.7 以降にアップグレードする必要があります Oracle 9.2 クライアント ソフトウェアをアップグレードしないと Oracle Database 10g へのアップグレード後に SAP システムでコア ダンプが出力されることがあります オプション 3: Oracle 9.2 RAC 対応クラスタからのアップグレード 既存の SAP システムが 9.2 RAC を使用したクラスタ構成の場合 そのアップグレードに必要なすべての手順がこのドキュメントに記載されています データベース ソフトウェアを Oracle 10g Release 2 にアップグレードするだけの場合は 必要なデータベースの構成変更はほぼ完了しています SAP 用の 9.2 RAC 対応データベースでは データベース インスタンスの UNDO 表領域 スレッド REDO ログ ファイルなどは構成済です ただし SAP アプリケーション インスタンスのデータベース サービスを使用するには Oracle ネットワーク構成の変更が必要です 省略可能な構成手順は その都度 明記します ノードまたはデータベース インスタンスの数を変更する場合は それに応じてデータベース構成を調整します どちらの場合でも SAP が提供するアップグレード ガイドも参照して 必須条件を確認してください 9.2 RAC から 10.2 RAC へのデータベース アップグレードは Oracle 9.2 から 10.2 への単一インスタンスのデータベース アップグレードとほぼ同じです Oracle Clusterware のインストール開始前に Oracle 9.2 RAC に使用するサードパーティのクラスタ ソフトウェアの更新または削除が必要か確認します Oracle 9.2 クライアント ソフトウェアを使用する SAP カーネルに関する注釈も参照してください この注釈は RAC 対応済システムにも適用されます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 5
Oracle Clusterware のインストール この作業は Oracle RAC データベース ソフトウェアのインストール前に完了する必要があります Oracle Clusterware ソフトウェアは 別のユーザー アカウントを使用してインストールします このユーザー アカウントは Oracle Clusterware の所有者です このユーザーには ユーザー名 oracle の使用をお薦めします クラスタ内のすべてのノードでユーザー oracle を作成します このユーザーは SAP ユーザー ora<sid> と SAP ユーザー <sid>adm のプライマリ グループで グループ dba に所属することが必要です Oracle Clusterware ユーザー oracle のホーム ディレクトリをクラスタ ファイル システムの共有領域に置くことができます これにより管理作業が非常に楽になります プロファイルの変更は一度の作業でクラスタ内のすべてのノードに適用されます このホワイト ペーパーの構成例はすべて ユーザー oracle の共有ホーム ディレクトリを使用するものとします 注意 : SAP インストール用のユーザー oracle にグループ oinstall を使用しないでください SAP データベースのすべての管理者は グループ dba に所属する必要があります すべての管理者が CRS コマンドを使用する必要があるため CRS プログラムもグループ dba を使用して実行する必要があります 最初のノードにユーザー oracle としてログオンします ディレクトリ ~/.ssh が存在しない場合は そのディレクトリを作成します 次に 作成したディレクトリに移動します $ mkdir.ssh $ cd.ssh RSA 認可と DSA 認可のための秘密鍵ファイルと公開鍵ファイルを作成します $ ssh-keygen t rsa f <path_to_homedirectory>/.ssh/id_rsa_<nodename> パスフレーズは指定しないでください 入力を要求されたら [Enter] キーを押します $ ssh-keygen t dsa f <path_to_homedirectory>/.ssh/id_dsa_<nodename> ここでも パスフレーズは指定しないでください [Enter] キーを押します この作業をすべてのノードで実行します キーの生成はノードそのものに依存しているため 必ずすべてのノードにログオンしてください すべての秘密鍵ファイルと公開鍵ファイルを生成したうえで すべてのノードの認証ファイルの場所を記述した構成ファイルを作成します これらの認証ファイルには各ノードの秘密鍵が含まれています 認証ファイルはフルパス名で指定します ファイル ~/.ssh/config の例を示します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 6
ForwardX11 no PasswordAuthentication no Host oracx1 IdentityFile /saphome1/oracle/.ssh/id_rsa_oracx1 IdentityFile /saphome1/oracle/.ssh/id_dsa_oracx1 Host oracx2 IdentityFile /saphome1/oracle/.ssh/id_rsa_oracx2 IdentityFile /saphome1/oracle/.ssh/id_dsa_oracx2 Host oracw1 IdentityFile /saphome1/oracle/.ssh/id_rsa_oracw1 IdentityFile /saphome1/oracle/.ssh/id_dsa_oracw1 Host oracw2 IdentityFile /saphome1/oracle/.ssh/id_rsa_oracw2 IdentityFile /saphome1/oracle/.ssh/id_dsa_oracw2 すべての公開鍵を含むファイルをファイル authorized_keys に連結します $ cat *.pub > authorized_keys ファイル権限を次のように変更します $chmod 600 config $chmod 600 authorized_keys $cd $chmod 700.ssh $chmod 755 これで パスワードを求められることなく すべてのホストへの ssh 接続を開くことができます 次のコマンドを実行して試してください $ssh <nodename> date ファイル known_hosts にフィンガープリントを記録するため この作業をすべてのノードで実行します インストール前のその他の必須条件を Oracle のドキュメントで確認します Oracle では インストールに成功するための条件が満たされているか確認するツールを提供しています このツールは cluvfy というツールで Oracle ソフトウェアに付属しています 注意 : cluvfy を使用して 必須条件がすべて満たされていることを確認してください ユーザー oracle としてログオンし Oracle Universal Installer を使用してインストールを開始します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 7
上の図は Welcome 画面です Oracle 製品を初めてインストールする場合は Oracle インベントリの場所を指定します インベントリは 各ノードのローカル領域に配置します Oracle インベントリには ノードにインストールされたすべての Oracle ソフトウェアのメタデータ情報が保持されます この例では インベントリ ディレクトリは /oracle/orainventory です このディレクトリはクラスタ内の各ノードのローカル ディレクトリです インベントリ ディレクトリと Oracle clusterware のソフトウェア インストール ディレクトリとを間違えないようにしてください このディレクトリは SAP インストール時に共有クラスタ ファイル システムに存在する必要があります Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 8
必ず クラスタ内のノード間で共有されていないインベントリのパスを指定してください インストールを実行するユーザーが Oracle インベントリへの完全なアクセス権を持っていることを確認します Oracle CRS の場合 ユーザー oracle がインベントリ ディレクトリおよびすべてのサブディレクトリへの書込み権限を持っていることを確認します すべてのノードで chown -R oracle:dba /oracle/orainventory を実行します このチェックは Oracle clusterware にパッチ セットまたは単一のパッチをインストールする際にも使用します オペレーティング システム グループが SAP ユーザー ora<sid> のプライマリ グループと一致する必要があります グループ dba はすべての SAP システムで同じであるため Oracle Clusterware の保護下で SID が異なる複数の SAP データベース システムを運用できます Oracle Clusterware には 専用の ORACLE_HOME ディレクトリが必要です Oracle Clusterware をデータベース ソフトウェアと同じディレクトリにインストールしないでください 各インストールで異なる ORACLE_HOME ディレクトリを使用すると パッチやパッチ セットを適用できます 注意 : Oracle CRS ソフトウェアはクラスタ ファイル システムの共有場所にインストールしてください これは 現在の Oracle CRS リリース (10.2 における SAP インストール時の必須要件です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 9
Oracle インストーラにより 必須条件がすべて満たされているかチェックされます このチェックに合格しなかった場合は インストールを続行しないでください 注意 : Oracle 10g Release 1 からアップグレードしている場合は cssd デーモンの Oracle Clusterware 構成情報を確実に消去する必要があります Oracle 10g Release 1 では RAC インストールの場合だけでなく単一インスタンスのインストールの場合でも Oracle Clusterware のこの部分が自動的にインストールされます ユーザー root として コマンド localconfig delete を実行します それにより cssd のセットアップ情報が削除されます 次の画面で クラスタに名前を付け すべてのノードを指定します Edit ボタンまたは Add ボタンを押して 各ノードの詳細に移動します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 10
Public Node Name はホストの名前です この名前は通常 hostname コマンドの出力と同じです Private Node Name はクラスタ間接続に使用される名前です 通常 プライベート クラスタ ネットワークのノード名を使用します Virtual Host Name は VIP が使用する名前で ノードに障害が発生した場合に別のホストにフェイルオーバーするときに使用される仮想 IP アドレスです Virtual Host Name と IP アドレスは クラスタ内のすべてのノードで一意にする必要があります 設定の完了後 すべてのノードが正しい名前で表示されます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 11
この画面では パブリック ネットワーク用とプライベート ネットワーク用のネットワーク アダプタを指定します パブリック ネットワークとプライベート ネットワークが少なくとも 1 つずつ必要です パブリック ネットワークは VIP に使用されます パブリック ネットワークのサブネット マスクは オペレーティング システムのネットワーク構成に含まれるサブネット マスクと一致する必要があります サブネット マスクが一致しないと 仮想 IP をネットワーク アダプタにバインドできません ネットワーク カードが 3 枚以上搭載されている場合 そのうち 2 枚を使用します 1 枚をプライベート ネットワークに もう 1 枚をパブリック ネットワークに使用します それ以外のネットワーク カードには Do not use を指定します 注意 : オペレーティング システムで仮想ネットワーク アダプタを使用できる場合は パブリック ネットワークのインタフェース構成ですべてのノードの VIP を保持してください Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 12
注意 : プライベート インターコネクト用およびパブリック ネットワーク用のアダプタのネットワーク インタフェース名はすべてのノードで同一の名称にしてください すべてのクラスタ ノードのシステム セットアップで プライベートおよびパブリック ネットワーク用に同一のインタフェース名を使用しているか確認してください 次の画面では Oracle Cluster Registry の場所を指定します Normal Redundancy では 2 つの場所を指定します この 2 つの場所は クラスタ ファイル システムの別々のパーティションのファイル システムに存在することが必要です 投票ディスクは Normal Redundancy 構成の 3 方向のミラーです 投票ディスクは クラスタ ファイル システムの異なるパーティションのファイル システムに存在することが必要です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 13
Summary 画面に表示される内容を確認します すべての情報が正しければ Install を押しインストールを開始します ソフトウェアのインストールの完了後 各ノードで 2 つのシェル スクリプトを実行します 注意 : これらのスクリプトは 各ノードで 1 つずつ実行することが重要です 1 つのスクリプトが完了するまで 次のスクリプトを実行しないでください Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 14
最後の画面にインストールの結果が表示されます 警告メッセージが表示された場合は 10.2 パッチ セットのインストールを実行しないでください エラーまたは警告が表示された場合は ここまでのインストールを取り消し エラーの根本的な原因を取り除いたうえで再度インストールします 失敗したインストール内容を完全に削除するためのプラットフォーム固有の方法は 関連する Oracle Metalink ノートを参照してください 既存の CRS を最新のパッチ セット ( リリース 10.2.0.4 以降 にただちにアップグレードします 実行したばかりのインストールによって クラスタ内の各ノードで CRS ソフトウェアが起動します 最新のリリースにアップグレードするには CRS ソフトウェアを停止します CRS ソフトウェアの停止は ユーザー root として実行します クラスタ内のすべてのノードで 次のコマンドを実行します $ su root # cd $CRS_HOME/bin #./crsctl stop crs これにより ユーザー oracle としてパッチ セットをインストールできます パッチ セットは Oracle Universal Installer によってインストールされます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 15
Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 16
利用可能なすべてのクラスタ ノードはあらかじめ選択されています この内容を変更しないでください Summary 画面が表示されます すべての要件が満たされていれば Install を押します パッチ セットがインストールされます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 17
インストールの最後に表示される指示に従います クラスタのすべてのノードで ユーザー root として スクリプト root.sh を実行します このスクリプトは複数のノードで同時に実行しないでください 1 つのノードのスクリプトが完了してから 次のノードのスクリプトを実行してください パッチ セットのインストールの最後に Oracle Clusterware が起動します これは crs_stat コマンドを実行することで確認できます crs_stat t を実行し クラスタのすべてのノードで ONS リソース GSD リソース VIP リソースが ONLINE になっていることを確認してください $ crs_stat t Name Type Target State Host ora.oracx1.gsd application ONLINE ONLINE oracx1 ora.oracx1.ons application ONLINE ONLINE oracx1 ora.oracx1.vip application ONLINE ONLINE oracx1 ora.oracx2.gsd application ONLINE ONLINE oracx2 ora.oracx2.ons application ONLINE ONLINE oracx2 ora.oracx2.vip application ONLINE ONLINE oracx2 ora.oracw1.gsd application ONLINE ONLINE oracw1 ora.oracw1.ons application ONLINE ONLINE oracw1 ora.oracw1.vip application ONLINE ONLINE oracw1 ora.oracw2.gsd application ONLINE ONLINE oracw2 ora.oracw2.ons application ONLINE ONLINE oracw2 ora.oracw2.vip application ONLINE ONLINE oracw2 まれに基本リソース自動作成用構成アシスタントの実行に失敗する場合があります その場合は crs_stat t コマンドからの出力が表示されません コマンドラインから構成アシスタント vipca を実行してください 詳細は次の項を参照してください Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 18
VIP ONS GSD の基本 CRS リソース これらのリソースは Oracle Clusterware のインストール中に自動的に作成されます OCR リポジトリ ファイルに格納された CRS 構成が失われたり壊れた場合 インストール後でもこれらのリソースを再作成できます 注意 : リソースの再作成は 必要な場合にのみ実行してください リソースは ユーザー root としてセットアップします リソースの作成と構成には vipca ツール (VIP Configuration Assistant を使用します $ su root # export PATH=$PATH:$CRS_HOME/bin # vipca 構成ツール vipca の Welcome 画面が表示されます 適切なネットワーク インタフェースを選択します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 19
ここのツールでは Oracle Cluster Services のインストール時に指定したノード名 IP Alias Name (VIP IP アドレス サブネット マスクを使用します 実際の作業前に 構成内容の一覧が表示されます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 20
次の画面に最終結果が表示されます 注意 : VIP Configuration Assistant でエラーが表示された場合は 処理を続行しないでください その場合は ユーザー root として 次のコマンドでリソースを削除します # crs_stop f < リソース名 > # crs_unregister < リソース名 > その後 vipca を使用して構成を再度実行します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 21
SAP インストール用の Oracle CRS パラメータ調整 エラー検知およびヘルス チェック用に使用されるタイミング関連のパラメータは 特にネットワークやディスク I/O などのコンポーネントの動作時間が平均値からの偏差が高く確定的でない場合 複雑な環境でのシステム設定においてデフォルト構成が過度に積極的な ( パラメータ設定値がタイト過ぎる 場合があります Oracle Clusterware における重要なタイミング関連のパラメータは misscount disktimeout reboottime および diagwait です パラメータ disktimeout は OCR リポジトリおよび投票ディスクへの読込み / 書込みアクセスの最大 I/O 完了時間を指定します 時間単位は秒です ノードは 1 つ以上の OCR リポジトリおよび 1 つ以上の投票ディスクにアクセス可能なことが必要です そうでない場合は ノードはリブートを発行しクラスタから隔離されます パラメータ misscount は ネットワーク接続を介して実行されるノード間の通信チェックの最大時間を秒単位で指定します これによりネットワークの健全度をチェックします ノードが misscount で指定された時間 ( 秒 以内に他のノードに到達できない場合は スプリット ブレイン解決策を開始し 場合によってはリブートを実行して強制的にクラスタから除外されます パラメータ reboottime は推定リブート時間を保持します デフォルトの値は 3 秒です これはノードが完全に停止するのに必要な推定時間です パラメータ diagwait はノードの停止後 再構成が安全に開始できるまでの待機時間 ( 秒 です このパラメータは oprocd タイミング値と連携している必要があります 残りのノードが再構成を安全に開始するまでに 停止またはブロックされたノードが oprocd によって ( ファスト リブートを介して 隔離される必要があるためです ノード停止前に再構成を開始するとデータ整合性が損なわれることがあります Oracle Metalink Note 294430.1 CSS Timeout Computation in RAC 10g (10g Release 1 and 10g release2 を参照しパラメータおよびパラメータの相互関係について常に最新の情報を入手してください crsctl コマンドを実行することで問合せができます ユーザー root に切替え 次のコマンドを発行してパラメータの現在値を問い合せます % $CRS_HOME/bin/crsctl get css disktimeout 次のコマンドを使用してパラメータを設定します % $CRS_HOME/bin/crsctl set css disktimeout 200 パラメータを有効にするには すべてのノードで CRS を再起動する必要があります すべてのノードをリブートする方法が最も簡単な方法です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 22
まれに OS のスケジュール時間が長いため Oracle プロセス oprocd のデフォルトのタイミング制約と合わないことがありますが これにより間違ったノード隔離が行われる原因となることがあります (oprocd によりノードがリブートされます 疑わしい場合は diagwait パラメータを使用して このプログラムのタイムアウト値を変更することができます (Metalink Note 559365.1 を参照 oprocd のみでなく Clusterware スタックも すべてのノードで停止する必要があります diagwait に対する修正は crsctl を使用して実行し Clusterware を再起動する必要があります oprocd は diagwait-reboottime の値をもって起動されます (reboottime のデフォルト値は 3 秒です Clusterware の misscount は diagwait よりも大きい値になるようにしてください diagwait の推奨値は 13 です 詳細は Metalink Note 265769.1 Troubleshooting CRS Reboots を参照してください Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 23
Oracle 10.2 RAC ソフトウェアのクラスタへのインストール Oracle CRS ソフトウェアが正常にインストールされて起動した後 データベース ソフトウェアをインストールします SAP での単一インスタンスのインストールと同様 この作業はユーザー ora<sid> として実行します このユーザーはグループ dba のメンバーであり SAP データベース SID のデータベース ソフトウェアのソフトウェア所有者です クラスタのノードにユーザー ora<sid> が作成されていない場合は これを作成します このユーザーはクラスタのすべてのノードで作成することが必要です ユーザー ora<sid> に クラスタ ファイル システム上の共有ホーム ディレクトリを使用します これにより管理作業が非常に楽になります プロファイルの変更は一度の作業でクラスタ内のすべてのノードに適用されます このホワイト ペーパーの構成例はすべて ユーザー ora<sid> の共有ホーム ディレクトリを使用するものとします 前回の SAP インストールによりローカル ファイル システム上に ユーザー ora<sid> のホーム ディレクトリが既に存在する場合は このディレクトリをクラスタ ファイル システム上の共有ホーム ディレクトリに再配置します CRS ソフトウェア用にユーザー oracle を設定したときと同様 次のようにクラスタ内のすべてのノード間にセキュアなシェル アクセスを設定して すべてのノードから共有ホーム ディレクトリを使用可能にします 最初のノードにユーザー ora<sid> としてログオンします ディレクトリ ~/.ssh が存在しない場合は これを作成します 次に 作成したディレクトリに移動します $ mkdir.ssh $ cd.ssh RSA 認可と DSA 認可のための秘密鍵ファイルと公開鍵ファイルを作成します $ ssh-keygen t rsa f <path_to_homedirectory>/.ssh/id_rsa_<nodename> パスフレーズは指定しないでください 入力を要求されたら [Enter] キーを押します $ ssh-keygen t dsa f <path_to_homedirectory>/.ssh/id_dsa_<nodename> ここでも パスフレーズは指定しないでください [Enter] キーを押します この作業をすべてのノードで実行します キーの生成はノードそのものに依存しているため 必ず各ノードにログオンしてください すべての秘密鍵ファイルと公開鍵ファイルを生成したうえで すべてのノードの認証ファイルの場所を記述した構成ファイルを作成します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 24
これらの認証ファイルには各ノードの秘密鍵が含まれています 認証ファイルはフルパス名で指定する必要があります ファイル ~/.ssh/config の例を示します ForwardX11 no PasswordAuthentication no Host oracx1 IdentityFile /saphome1/orarac/.ssh/id_rsa_oracx1 IdentityFile /saphome1/orarac/.ssh/id_dsa_oracx1 Host oracx2 IdentityFile /saphome1/orarac/.ssh/id_rsa_oracx2 IdentityFile /saphome1/orarac/.ssh/id_dsa_oracx2 Host oracw1 IdentityFile /saphome1/orarac/.ssh/id_rsa_oracw1 IdentityFile /saphome1/orarac/.ssh/id_dsa_oracw1 Host oracw2 IdentityFile /saphome1/orarac/.ssh/id_rsa_oracw2 IdentityFile /saphome1/orarac/.ssh/id_dsa_oracw2 すべての公開鍵を含むファイルをファイル authorized_keys に連結します $ cat *.pub > authorized_keys ファイル権限を変更します $chmod 600 config $chmod 600 authorized_keys $cd $chmod 700.ssh $chmod 755 これで パスワードを求められることなく すべてのホストへの ssh 接続を開くことができます 次のコマンドを実行して試してください $ssh <nodename> date ファイル known_hosts にフィンガープリントを記録するため この作業をすべてのノードで実行します インストール前のその他の必須条件を Oracle のドキュメントで確認します Oracle では インストールに成功するための条件が満たされているか確認するツールを提供しています このツールは cluvfy というツールで Oracle ソフトウェアに付属しています 注意 : cluvfy を使用して必須条件がすべて満たされていることを確認してください Oracle データベース ソフトウェアのインストールの場合 ユーザー ora<sid> がインベントリ ディレクトリおよびすべてのサブディレクトリへの書込み権限を持っていることを確認してください すべてのノードで chown -R ora<sid>:dba /oracle/orainventory を実行してください このチェックは Oracle データベース ソフトウェアにパッチ セットまたは単一のパッチをインストールする際にも使用します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 25
ユーザー ora<sid> としてログオンし Oracle Universal Installer を使用してインストールを開始します インストールを開始します Welcome 画面が開きます 次の画面で インストールのタイプとして Enterprise Edition を選択します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 26
データベース ソフトウェアは専用の ORACLE_HOME にインストールする必要があります Oracle Clusterware と同じ場所を選択しないでください 利用可能なクラスタ ノードが自動的に検出されます インストール先としてすべてのノードを選択します インストーラにより クラスタ ファイル システム上の共有 Oracle Home が検出され ソフトウェアが 1 度だけインストールされます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 27
Oracle インストーラは 必須条件がすべて満たされているか確認します このチェックに合格しなかった場合は インストールを続行しないでください データベース ソフトウェアだけをインストールします Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 28
Summary 画面に表示される内容を確認します すべての情報が正しければ Install を押しインストールを開始します ソフトウェアのインストールが完了後 すべてのノードでユーザー root として root.sh を実行します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 29
最後の画面にインストールの結果が表示されます 警告メッセージが表示された場合は パッチ セット 10.2.0.4 によるアップグレードを実行しないでください ここで データベース ソフトウェアを最新のパッチ セットにアップグレードします 現時点での最新のパッチ セットはリリース 10.2.0.4 です Oracle Universal Installer により Oracle Clusterware 用の 10.2.0.4 パッチ セットをインストールしたときと同じ順序で画面が表示されます ここまでに示したすべてのスクリーン ショットを参照してください 注意 : 共有 ORACLE Home ソフトウエア インストール ディレクトリを保持するクラスタ ファイル システムは メモリ マップ ファイルをサポートすることが必要です メモリ マップ ファイルは CRS によって 実行中の Oracle インスタンス健全度の監視に使用されます プラットフォーム上のクラスタ ファイル システムがメモリ マップ ファイルをサポートしない場合 メモリ マップ ファイルをサポートするローカル ファイル システムにシンボリック リンクを作成してください メモリ マップ ファイルの名称は hc_<instance_name>.dat です このファイルはディレクトリ $ORACLE_HOME/dbs にあります ソフトウェアのインストール後 すべてのノードのローカル ファイル システム上にローカル ディレクトリを作成します ファイル $ORACLE_HOME/dbs/hc_<INSTNAME>.dat をローカル ディレクトリにコピーします これをクラスタ内のすべてのノードに対して実行します その後 ファイル $ORACLE_HOME/dbs/hc_<INSTNAME>.dat を削除します クラスタ内のすべてのノードに対して ローカル ファイル システムのコピー元を指すシンボリック リンクを $ORACLE_HOME/dbs に作成します ln -s /<local>/hc_<instname>.dat $ORACLE_HOME/dbs/hc_<INSTNAME>.dat Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 30
Oracle Database 10g Release 2 へのデータベースのアップグレード Oracle Universal Installer によるソフトウェアのインストールの終了後 データベース自体を Oracle Database 10g Release 2 に手動でアップグレードします 前述のチェックの目的は 実際のアップグレード開始前にすべての必須条件が満たされていることを確認して アップグレード時間を短縮することです この手順により アップグレード中にエラーが発生するリスクを低減します 注意 : 使用中の SAP システムを Oracle Database 10g Release 2 とともに最近インストールした場合は このアップグレード手順を省略できます 制御ファイルのパラメータの確認に進んでください システムにユーザー ora<dbsid> としてログオンします ここで重要な点は 新しい Oracle 10g ソフトウェア リリースへの変更がユーザー ora<dbsid> の環境に反映されたことです Oracle の新しい実行可能ファイルを使用したデータベースの起動前に 環境変数を次のように設定または修正することが必要です 変数 ORACLE_HOME ORACLE_SID ORACLE_BASE ORA_NLS10 NLS_LANG 値 /oracle/<dbsid>/1020_64 <dbsid> /oracle/<dbsid> $ORACLE_HOME/nls/data 古いシステムと同じ また $PATH 変数と $LD_LIBRARY_PATH 変数に新しい Oracle 実行可能ファイルのパスを追加する必要があります アップグレードの準備 : サーバー パラメータ ファイル spfile.ora または init<dbsid>.ora 古い $ORACLE_HOME/dbs ディレクトリのすべてのファイルを新しい $ORACLE_HOME/dbs ディレクトリにコピーします ほとんどの SAP システムで採用している命名規則によると 新しい $ORACLE_HOME は /oracle/<dbsid>/1020_64 です 古いファイルで ifile パラメータを使用している場合は このパラメータで参照されるファイルもコピーする必要があります 注意 : Oracle 9.2 RAC からアップグレードしている場合 Oracle 10.2 へのアップグレードのすべての作業を単一インスタンス環境の場合と同様に実行する必要があります そのためには 初期化パラメータ cluster_database を false に設定します インスタンスの起動に pfile(init<sid>.ora を使用している場合は テキスト エディタでこのファイルを開き パラメータ cluster_database が false に設定されていることを確認します RAC 対応の SAP が必要とする単一のサーバー パラメータ ファイル spfile.ora を使用している場合は sqlplus を使用してパラメータの設定を変更します $ sqlplus / as sysdba SQL> startup nomount SQL> alter database set parameter cluster_database= false scope=spfile; SQL> shutdown immediate; Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 31
アップグレードの準備 : 非推奨パラメータのチェック インスタンスの起動前にパラメータの現在の設定をチェックします インスタンスをスムーズにエラーなく起動するため パラメータ ファイルの非推奨パラメータやサポート対象外のパラメータをすべてコメントアウトします これらのパラメータの一覧は オンライン ドキュメントの CD にも含まれています 注意 : Oracle ネットワーク構成ファイル tnsnames.ora(local_listener など を参照するすべてのパラメータも アップグレード実行時にコメントアウトしてください データベースの起動とアップグレード 次のように SQL*Plus を使用してデータベースを開きます $ sqlplus /nolog SQL> connect / as sysdba connected to an idle instance SQL> startup upgrade; SYSTEM 表領域の拡張 SYSTEM 表領域には アップグレードのための十分な空き領域が必要です その領域を確認するには SQL*Plus から次のコマンドを実行します SQL> select sum(bytes, sum(blocks from dba_free_space where tablespace_name = `SYSTEM ; 領域が十分でない場合は 次のいずれかのコマンドを使用して空き領域を増やします - 追加のファイルを作成して領域を増やす SQL> alter tablespace system add datafile `<full-path-of-datafile> size 80M autoextend on next 10M maxsize unlimited; - SYSTEM 表領域の既存のファイルで AUTOEXTEND 機能を設定する SQL> alter database datafile `filename` autoextend on; - 既存のファイルのサイズを直接変更する SQL> alter database datafile `filename resize <new filesize>; Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 32
SYSAUX 表領域の作成 注意 : Oracle 10g Release 1 からアップグレードしている場合は この手順を省略できます Oracle 10g Release 1 からアップグレードしている場合を除き アップグレード スクリプトの起動前に 新しい表領域 SYSAUX を作成する必要があります SYSAUX 表領域の詳細は Oracle Database Administrator's Guide を参照してください SQL> create tablespace SYSAUX datafile /oracle/<sid>/sapdatax/sysaux01.dbf' size 500M reuse autoextend on extent management local segment space management auto online; 無効なデータベース オブジェクトのチェック データベース内の無効なオブジェクトはアップグレード後も残ります アップグレードしても無効なオブジェクトは削除されません 次の SQL 文を実行すると 無効なオブジェクトの一覧を取得できます SQL> spool /var/tmp/check4invobj.log SQL> select count(* from dba_objects where status = `INVALID ; SQL> select comp_id, version, status from dba_registry; これらの SQL 文の出力が 0 以外の場合は 次のようにして無効なオブジェクトを特定します SQL> select owner, object_name, object_type from dba_objects where status = INVALID ; SQL> spool off SQL> shutdown immediate アップグレードの実行 データベースの Oracle 10g Release 2 へのアップグレードには SQL スクリプトを使用します システムにユーザー ora<dbsid> としてログオンします 現在の作業ディレクトリを $ORACLE_HOME/rdbms/admin に変更します 次のようにスクリプト catupgrd.sql を実行します これにより 古いリリースが Oracle10g Release 2 にアップグレードされます sqlplus /nolog SQL> connect / as sysdba connected to an idle instance SQL> startup upgrade; SQL> spool upgrade.log SQL> @catupgrd.sql Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 33
このスクリプトが完了すると 10.2 へのアップグレードが完了します スクリプト utlu102s.sql を実行してアップグレードの結果を確認します SQL> @utlu102s.sql SQL> spool off アップグレード後 インスタンスがスムーズに起動することを確認します SQL> shutdown immediate SQL> startup CATCLUST.SQL UTLRP.SQL OLSTRIG.SQL の実行 次のように $ORACLE_HOME/rdbms/admin/catclust.sql を実行します これにより データ ディクショナリにクラスタ関連のビューが作成されます SQL> @catclust.sql SQL> @utlrp.sql SQL> @olstrig.sql スクリプト utlrp.sql は PL/SQL や Java の残りのプロシージャを再コンパイルします スクリプト olstrig.sql は Oracle Label Security ポリシーによって 表にあるすべての DML トリガーを再作成します 最後の 2 つのスクリプトは 通常 SAP 環境では必要ありません これで データベースを RAC 対応にするためのその他の変更を実行できます データベースの制御ファイルのパラメータ 既存のデータベースを RAC 対応にする場合は 特にデータベース パラメータの MAXINSTANCES MAXLOGFILES MAXLOGMEMBERS に注意が必要です これらのパラメータは Oracle 制御ファイルの一部であり 初期のデータベース作成時に指定されています 一般に R/3 システムの最初のインストール以降これらのパラメータが変更されることはありません 注意 : このセクションの内容は 古い単一インスタンスのデータベースからアップグレードする場合にのみ適用されます 既存のシステムが Oracle 9.2 RAC に対応済の場合は この作業を省略できます MAXINSTANCES は 将来の拡張を考慮しクラスタ内のノードと同数 またはそれより大きい数に設定します MAXLOGFILES は データベース内で作成できる REDO ログ ファイル グループの最大数です SAP ソフトウェアのログ ファイル グループとメンバーの命名規則に従って この値は REDO ログ ファイル グループの最大の GROUP 値より大きい数値に設定します MAXLOGMEMBERS は 1 つの REDO ログ ファイル グループのメンバー ( つまり 同じコピー の最大数です SAP システムのデフォルト値は 2 です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 34
計画された構成に対して現在の値が十分でない場合 制御ファイルのセットを新しく作成する必要があります そのためには 次のようにして現在の設定をトレース ファイルにダンプします SQL> alter database backup controlfile to trace; 制御ファイルの新しいセットを生成するためのヒントと SQL 文が現在のデータベース トレース ファイルに出力されます このファイルのディレクトリの場所は 次のように SQL*Plus で調べることができます SQL> show parameter user_dump_dest SAP の命名規則が使用されている場合 このファイルのデフォルト ディレクトリは /oracle/<sid>/saptrace/usertrace です 最新のデータベース トレース ファイルには 必要な情報がすべて含まれています このトレース ファイルの該当部分を一時ファイルに保存し パラメータを適切な値に変更します 次のコマンドでファイルのリストを表示します ls lr 最新のログ ファイルは リストの最後にあります 最新のトレース ファイルを一時ファイルにコピーします このファイルを開き 必要に応じて MAXLOGFILES MAXLOGMEMBERS MAXINSTANCES の値を修正します 現在のパラメータの値で十分な場合は 制御ファイルのセットを新しく作成する必要はありません 十分でない場合には パラメータを調整します パラメータを変更した場合は トレース ログ ファイルに示す手順に従って制御ファイルのセットを新しく作成します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 35
例 : SAP での以前の RAC 対応システムで出力されたトレース ファイルからの抜粋..................... # Below are two sets of SQL statements, each of which creates a new # control file and uses it to open the database. The first set opens # the database with the NORESETLOGS option and should be used only if # the current versions of all online logs are available. The second # set opens the database with the RESETLOGS option and should be used # if online logs are unavailable. # The appropriate set of statements can be copied from the trace into # a script file, edited as necessary, and executed when there is a # need to re-create the control file. # # Set #1. NORESETLOGS case # # The following commands will create a new control file and use it # to open the database. # Data used by the recovery manager will be lost. Additional logs may # be required for media recovery of offline data files. Use this # only if the current version of all online logs are available. STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "RAC" NORESETLOGS NOARCHIVELOG -- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 255 MAXLOGMEMBERS 3 MAXDATAFILES 254 MAXINSTANCES 50 MAXLOGHISTORY 65535 LOGFILE GROUP 11 ( '/oracle/rac/origloga/log_g11m1.dbf', '/oracle/rac/mirrloga/log_g11m2.dbf' SIZE 20M,..................... GROUP 44 ( '/oracle/rac/origlogb/log_g44m1.dbf', '/oracle/rac/mirrlogb/log_g44m2.dbf' SIZE 20M -- STANDBY LOGFILE DATAFILE '/oracle/rac/sapdata1/system_1/system.data1',.................... '/oracle/rac/sapdata1/user1d_2/user1d.data2' CHARACTER SET WE8DEC ; # Recovery is required if any of the datafiles are restored backups, # or if the last shutdown was not normal or immediate. RECOVER DATABASE # Database can now be opened normally. ALTER DATABASE OPEN;..................... Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 36
UNDO 表領域による自動 UNDO 管理 オラクルと SAP では RAC 環境で UNDO 表領域を使用することをお薦めします ロールバック セグメントは将来非サポートになる可能性があるため SAP での RAC 構成では避けてください 注意 : このセクションの内容は 単一インスタンスのデータベースからアップグレードする場合にのみ適用されます 既存のシステムが Oracle 9.2 RAC に対応済で UNDO 表領域を使用する場合は この作業を省略できます 次に示す SAP が使用する命名規則に従い SAP インストールで自動 UNDO 管理を使用する準備をします クラスタのインスタンス数に応じて PSAPUNDO PSAPUNDO_002,, PSAPUNDO_n のような名前を付けます できれば これらの表領域のデータ ファイルはそれぞれ別のディスクに配置します 表領域は 次のサンプル SQL スクリプトを使用して作成することもできます create undo tablespace PSAPUNDO datafile '/oracle/<dbsid>/sapdatax/undo/undo.data1 ' size 1000m reuse; create undo tablespace PSAPUNDO_002 datafile '/oracle/<dbsid>/sapdatax/undo_002/undo_002.data1 ' size 1000m reuse;.............. create undo tablespace PSAPUNDO_00n datafile '/oracle/<dbsid>/sapdata4/undo_00n/undo_00n.data1 ' size 1000m reuse; 注意 : 自動 UNDO 管理を利用するには インスタンスの初期化ファイルも変更する必要があります ロールバック セグメントのエントリを削除するか またはコメントにします インスタンス固有の初期化ファイルに次の行を追加します *:undo_management = auto <dbsid>001.undo_tablespace = PSAPUNDO <dbsid>002.undo_tablespace = PSAPUNDO_002 <dbsid>00n:undo_tablespace = PSAPUNDO_00n クラスタ内のインスタンスで使用する自動 UNDO 管理とロールバック セグメントは相互に排他的です 2 つの方法を組み合せて使用できません 自動 UNDO 表領域を使用するには クラスタでインスタンスをまったく構成しないか またはすべてのインスタンスを構成します 注意 : UNDO 表領域を使用する場合は 古いロールバック セグメントを保持する表領域をすべて削除します これらの表領域をオフライン モードにはできません オフライン モードにした場合 データベースがハングアップする可能性があります Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 37
REDO ログのグループとメンバー 注意 : このセクションの内容は 単一インスタンスのデータベースからアップグレードする場合にのみ適用されます 既存のシステムが Oracle 9.2 RAC に対応済の場合は この作業を省略できます 標準の SAP システムでは Oracle トランザクション ログ ファイル (REDO ログ ファイル のグループが 4 つあります デフォルトでは オリジナルの REDO ログ ファイルとミラー化された REDO ログ ファイルが各グループに 1 つずつ含まれます REDO ログ ファイルをハードウェアまたはオペレーティング システムを利用してミラー化する場合 各グループは 1 つのオリジナルの REDO ログ ファイルのみで構成します 単一インスタンスのデータベース システムの場合 グループはデフォルトで次のように編成されます GROUP 101 (redo1 /oracle/<dbsid>/origloga/log_g101m1.dbf /oracle/<dbsid>/mirrloga/log_g101m2.dbf GROUP 102 (redo2 /oracle/<dbsid>/origlogb/log_g102m1.dbf /oracle/<dbsid>/mirrlogb/log_g102m2.dbf GROUP 103 (redo3 /oracle/<dbsid>/origloga/log_g103m1.dbf /oracle/<dbsid>/mirrloga/log_g103m2.dbf GROUP 104 (redo4 /oracle/<dbsid>/origlogb/log_g104m1.dbf /oracle/<dbsid>/mirrlogb/log_g104m2.dbf ログ ファイルは REDO ログ log_g101m?.dbf から REDO ログ log_g104m?.dbf までを循環的に利用します 使用中の REDO ログとアーカイブ中の REDO ログは常に別のセットに所属します つまり GROUP 101 と GROUP 103 はセット A に所属し GROUP 102 と GROUP 104 はセット B に所属します 複数のインスタンスを持つ Oracle RAC 構成では 各データベース インスタンスで独自の REDO ログ ファイルのグループが必要です これらの追加のログ ファイル グループでは命名規則が多少異なります たとえば 2 番目のインスタンス ( スレッド 2 は GROUP 21 と GROUP 23 が所属する REDO ログのセット A と GROUP 22 と GROUP 24 が所属するセット B を使用します さらに 3 番目のインスタンスではセット A とセット B を使用する という具合です データベースの新しいインスタンスのために REDO ログ ファイルを追加作成する場合は 次の例のように SQL スクリプトを使用して実行できます この例では Oracle RAC ソリューションで 4 つのデータベース インスタンスを 4 つ使用しています Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 38
alter database add logfile thread 1 group 11 ( /oracle/<dbsid>/origloga/log_g11m1.dbf, /oracle/<dbsid>/mirrloga/log_g11m2.dbf size 200M reuse; alter database add logfile thread 1 group 12 ( /oracle/<dbsid>/origlogb/log_g12m1.dbf, /oracle/<dbsid>/mirrlogb/log_g12m2.dbf size 200M reuse; alter database add logfile thread 1 group 13 ( /oracle/<dbsid>/origloga/log_g13m1.dbf, /oracle/<dbsid>/mirrloga/log_g13m2.dbf size 200M reuse; alter database add logfile thread 1 group 14 ( /oracle/<dbsid>/origlogb/log_g14m1.dbf, /oracle/<dbsid>/mirrlogb/log_g14m2.dbf size 200M reuse; alter database add logfile thread 2 group 21 ( /oracle/<dbsid>/origloga/log_g21m1.dbf, /oracle/<dbsid>/mirrloga/log_g21m2.dbf size 200M reuse; alter database add logfile thread 2 group 22 ( /oracle/<dbsid>/origlogb/log_g22m1.dbf, /oracle/<dbsid>/mirrlogb/log_g22m2.dbf size 200M reuse; alter database add logfile thread 2 group 23 ( /oracle/<dbsid>/origloga/log_g23m1.dbf, /oracle/<dbsid>/mirrloga/log_g23m2.dbf size 200M reuse; alter database add logfile thread 2 group 24 ( /oracle/<dbsid>/origlogb/log_g24m1.dbf, /oracle/<dbsid>/mirrlogb/log_g24m2.dbf size 200M reuse; alter database add logfile thread 3 group 31 ( /oracle/<dbsid>/origloga/log_g31m1.dbf, /oracle/<dbsid>/mirrloga/log_g31m2.dbf size 200M reuse; alter database add logfile thread 3 group 32 ( /oracle/<dbsid>/origlogb/log_g32m1.dbf, /oracle/<dbsid>/mirrlogb/log_g32m2.dbf size 200M reuse; alter database add logfile thread 3 group 33 ( /oracle/<dbsid>/origloga/log_g33m1.dbf, /oracle/<dbsid>/mirrloga/log_g33m2.dbf size 200M reuse; alter database add logfile thread 3 group 34 ( /oracle/<dbsid>/origloga/log_g34m1.dbf, /oracle/<dbsid>/mirrlogb/log_g34m2.dbf size 200M reuse; alter database add logfile thread 4 group 41 ( /oracle/<dbsid>/origloga/log_g41m1.dbf, /oracle/<dbsid>/mirrloga/log_g41m2.dbf size 200M reuse; alter database add logfile thread 4 group 42 ( /oracle/<dbsid>/origlogb/log_g42m1.dbf, /oracle/<dbsid>/mirrlogb/log_g42m2.dbf size 200M reuse; alter database add logfile thread 4 group 43 ( /oracle/<dbsid>/origloga/log_g43m1.dbf, /oracle/<dbsid>/mirrloga/log_g43m2.dbf size 200M reuse; alter database add logfile thread 4 group 44 ( /oracle/<dbsid>/origlogb/log_g44m1.dbf, /oracle/<dbsid>/mirrlogb/log_g44m2.dbf size 200M reuse; Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 39
新しいスレッドを使用するには それらのスレッドを有効にする必要があります SQL> alter database enable public thread 1; SQL> alter database enable public thread 2; SQL> alter database enable public thread 3; SQL> alter database enable public thread 4; ファイルとグループを作成後 古い REDO ログ ファイルのセットを削除できます v$log への問合せを実行して カレントになっているログ ファイル グループを確認します SQL> select group#, archived, status from v$log; GROUP# ARC STATUS ------------ -------------------- 101 YES INACTIVE 102 NO CURRENT 103 YES INACTIVE 104 YES INACTIVE 11 NO UNUSED 12 NO UNUSED 13 NO UNUSED..... 44 NO UNUSED 新しく作成したグループのログがカレント ログになるように ログの切替えを必要なだけ実行します カレントかどうかわからない場合は v$log への問合せを再度実行します SQL> alter system switch logfile; SQL> alter system switch logfile; SQL> alter system switch logfile; SQL> alter system switch logfile; この作業が完了すると 古いログ ファイル グループを安全に削除できます SQL> alter database drop logfile group 101; SQL> alter database drop logfile group 102; SQL> alter database drop logfile group 103; SQL> alter database drop logfile group 104; グループ 101~104 のログ ファイルを必ず OS レベルで削除してください 前述の例では ログ ファイルのミラー化にハードウェアを使用していないものとします Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 40
SAP では パフォーマンス上の理由から 1 つのログ ファイル グループに所属するファイルをそれぞれ別のディスクに配置することを推奨しています 上の図は REDO ログ ファイルのすべてのセットが個別のディスクまたはディスク ボリュームに存在する最適な構成です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 41
RAC のための Oracle 初期化パラメータの修正 RAC クラスタ データベース環境を正しく運用するためには データベース初期化パラメータを変更する必要があります 単一インスタンスの Oracle データベースには ディレクトリ $ORACLE_HOME/dbs にパラメータ ファイル init<dbsid>.ora が 1 つだけ存在します RAC クラスタ データベース構成を運用している場合は 各データベース インスタンスで そのインスタンスのスタートアップのための init<dbsid>.ora という名前の個別のパラメータ ファイルまたはデフォルトの init.ora ファイルが必要です SAP 環境では SPFILE がサポートされているため 容易に修正してそれを使用できます 注意 : 共有 $ORACLE_HOME が使用されている場合 単一のサーバーのパラメータ ファイルもクラスタ ファイル システム上の共有場所に保存されます SAP は 構成ファイルにも $ORACLE_HOME/dbs を使用します つまり BR*SPACE ツールセットの構成ファイルはこのディレクトリに保存されます これらのファイルと Oracle サーバー パラメータ ファイルを SAP ツールで管理するには 共有場所が必要です 構成ファイルを各ノードのローカル ディスクに配置する分散構成はサポートされていません オラクルと SAP では RAC 環境で SPFILE の使用をお薦めします 注意 : 次のセクションは 既存の SAP システムをアップグレードし PFILE(init<SID>.ora を使用する場合に適用されます オリジナルの初期化ファイル init<dbsid>.ora を古いディレクトリから新しいディレクトリ $ORACLE_HOME/dbs にコピーする必要があります 古いファイルで IFILE パラメータが使用されている場合 その中で参照されるファイルも新しい場所にコピーします データベースの初期化に この include メカニズムを使用している場合 今後はその使用を避けてください これは SAP でも推奨しており Oracle 10g への通常のアップグレードにも該当します これにより 将来のリリースでバイナリの SPFILE に容易に移行できるからです 計画された RAC 環境では 各 Oracle データベース インスタンスでプライベートな初期化ファイル init<dbsid><thread>.ora が必要です インスタンス固有のファイルを継続して使用する場合 最適な方法の 1 つは このファイルをインスタンス固有の設定にのみ使用し すべてのインスタンスに共通の情報は icommon.ora というファイルに含めます 注意 : SPFILE を使用している場合は 判読可能な pfile(init.ora を作成し テキスト エディタを使用して構成を調整できます 既存の spfile を変更する場合は sqlplus コマンド alter system set parameter= を使用します 例 : インスタンス RAC001 に対してインスタンス番号 1 を設定する SQL> alter system set instance_number = 1 scope = spfile sid = RAC001 ; 初期化ファイルのインスタンス固有の部分は次のようになります Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 42
instance_number = <thread> thread = <thread> instance_name = <dbsid><thread> service_names = (<dbsid>, <dbsid><thread> undo_management = auto undo_tablespace=<tablespacename> すべてのインスタンスのデータベースに UNDO 表領域を作成する必要があります UNDO 表領域のセクションの自動 UNDO 管理に関する説明を参照してください オラクルと SAP では RAC 環境で UNDO 表領域の使用をお薦めします ファイル icommon.ora には その他の初期化パラメータがすべて含まれています これらのパラメータは すべてのインスタンスで有効です RAC 環境では アップグレード後 特に次の表に示すパラメータに注意が必要です パラメータ値コメント db_domain WORLD 他の値がない場合は WORLD に設定 Compatible 10.2 cluster_database True 10g へのアップグレード後に設定 remote_login_passwordfile remote_os_authent local_listener remote_listener Exclusive True LISTENER_<SID>_ <HOSTNAME> REMOTE_LISTENER_ <SID>_<HOSTNAME> ネットワーク構成ファイル tnsnames.ora の有効後に設定ネットワーク構成ファイル tnsnames.ora の有効後に設定 注意 : 前述の表のパラメータは データベースのアップグレード後に調整します アップグレード中は 古い設定を使用します RAC 対応データベースへの移行が完了後 複数の init<dbsid>.ora ファイルではなく単一の init.ora 初期化ファイルを作成します インスタンス固有の値は パラメータの前にインスタンス名を付けます インスタンス名は ORACLE_SID 環境変数から得られます 単一の init.ora ファイルの例 ( 抜粋 <dbsid>001.instance_number = 001 <dbsid>002.instance_number = 002 <dbsid>001:thread = 001 <dbsid>002:thread = 002 <dbsid>001:instance_name = <dbsid>001 <dbsid>002:instance_name = <dbsid>002 <dbsid>001:service_names = (<dbsid>, <dbsid>001 *:undo_management = auto <dbsid><thread>: undo_tablespace=<tablespacename> Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 43
すべてのインスタンスで有効なパラメータは 先頭に * が付きます 共通パラメータの場合は * を省略できます $ORACLE_HOME/dbs ディレクトリから初期化ファイル init<dbsid>.ora または init<dbsid><thread>.ora をすべて削除します sqlplus を使用してバイナリ SPFILE を (spfile.ora というファイル名で 作成します connect / as sysdba SQL> create spfile= spfile.ora from pfile= init<dbsid>.ora ; 注意 : この作業は RAC への移行に成功してから実行してください バイナリ SPFILE は Oracle Enterprise Manager を RAC 環境で使用するときの前提条件です $ORACLE_HOME/dbs ディレクトリから初期化ファイル init<dbsid>.ora または init<dbsid><thread>.ora をすべて削除します Oracle パスワード ファイル 注意 : Oracle 9i RAC システムからアップグレードしている場合は 古いパスワード ファイルをこれまでの 9i RAC の $ORACLE_HOME/dbs ディレクトリから新しい 10g RAC の $ORACLE_HOME/dbs ディレクトリにコピーします 単一インスタンスの SAP R/3 構成では デフォルトでパスワード ファイルは使用しません ただし RAC 環境ではパスワード ファイルが必要です データベース インスタンスは このファイルを使用して DBA や OPER の権限を持つユーザーを識別します パスワード ファイルを使用するには ユーザー ora<dbsid> としてログオンします 他のユーザー アカウントを使用すると パスワード ファイルが使用できなくなります ファイル自体は データベース初期化ファイルと同じディレクトリ ($ORACLE_HOME/dbs に存在します 次のコマンドを使用してパスワード ファイルを作成します orapwd file=<fname> password=<password> entries=<users> file パラメータはファイル名を指定します これは必須のパラメータです password パラメータでは データベース ユーザー SYS のパスワードを入力します entries パラメータは省略することができます このパラメータは DBA 権限や OPER 権限を持つユーザーの数を示します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 44
クラスタ データベースの有効化とすべてのインスタンスの起動 Oracle 10g RAC へのアップグレードが完了し ここで説明したデータベースの変更がすべて終了したら クラスタ データベースを有効にします SAP for RAC が必要とする単一のサーバー パラメータ ファイル spfile.ora を使用している場合は sqlplus を使用してクラスタ データベースのパラメータの設定を変更します $ sqlplus / as sysdba SQL> startup nomount SQL> alter system set parameter cluster_database= true scope=spfile; SQL> shutdown immediate; クラスタ内の各ノードにユーザー ora<sid> としてログオンします 環境変数 ORACLE_SID を クラスタ ノードでの実行を意図したインスタンスの独自の値に設定します sqlplus を使用して各ノードで Oracle データベース インスタンスを起動します $ export ORACLE_SID=<DBSID><THREAD> $sqlplus / as sysdba connected to an idle instance SQL> startup 注意 : データベースとインスタンスはまだ Oracle Clusterware に認識されていません データベース インスタンスの起動には sqlplus を使用する必要があります 構成の完了後は ツール srvctl を使用してデータベース インスタンスを制御します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 45
Oracle ネットワーク構成 SAP R/3 システムと様々な管理ツールをスムーズにエラーなく運用するには クラスタ ノード内外のネットワーク構成を正しく設定することが不可欠です 実際の運用環境の具体的なニーズや 基礎となるオペレーティング システム 同じ場所にインストールされた他の Oracle 製品に応じて Oracle ネットワーク構成ファイルを異なる場所に置くことができます このドキュメントでは これらのネットワーク構成ファイルがクラスタ ファイル システムに存在するものとします これは特に $ORACLE_HOME/network/admin ディレクトリがクラスタ化されたファイル システムにある場合に該当します この場合 クラスタ内のすべてのノードが同じディレクトリにアクセスして Oracle ネットワーク構成を取得します 注意 : Oracle 9i RAC システムからアップグレードしている場合は ネットワーク構成ファイルとログ ファイルのローカル コピーを指すシンボリック リンクを削除します クラスタ ファイル システムの共有 $ORACLE_HOME を使用する場合 Oracle 9i RAC を使用した SAP R/3 のセットアップでは 共有ディレクトリにある構成ファイルとログ ファイルから ローカル ディスクにあるこれらのファイルのノード固有のローカル コピーへのシンボリック リンクが必要です 詳細は ホワイト ペーパー Configuring SAP R/3 4.6D for Use with Oracle Real Application Clusters を参照してください Oracle 10g RAC で SAP R/3 アプリケーション サーバーのすべてのインスタンスに任意のデータベース サービスを使用する場合 このシンボリック リンクは必要ありません クラスタ内外のすべてのノードが同じネットワーク構成ファイルを使用できます そのため 構成ファイルは共有クラスタ ファイル システムに問題なく存在できます リスナー構成ファイル listener.ora Oracle データベース インスタンスを実行するすべてのクラスタ ノードに クライアントからの接続要求を処理するリスナー プロセスが必要です 注意 : SAP がインストールされている場合 クラスタで実行される各 SAP システムに専用のリスナー プロセスを構成する必要があります この規則は 各ノードにリスナーが 1 つずつ存在する Oracle のデフォルトのセットアップとは異なります 様々なリスナーを個別にするために すべての SAP システムで接続要求に対し専用のポート番号を使用する必要があります Oracle のデフォルトのポートは 1521 です SAP ではデフォルトでポート番号 1527 を使用します クラスタで複数の SAP システムが稼働している場合は システムごとに異なるポート番号を使用します クラスタ内のすべてのノードが SAP システムの listener.ora 構成ファイルを共有できます クラスタ ノードで実行されるリスナー プロセスごとに 個別ファイルを用意する必要はありません エントリを区別するため リスナーには リテラル文字列 LISTENER SID ノード名を _ 文字で区切った名前 (LISTENER_<SID>_<nodename> を付けます この命名規則に従うことで CRS 内に複数のリスナー リソースを登録できます CRS リソースの名前は ora.listener_<sid>_<nodename>.lsnr になります Oracle 10g のリスナー プロセスは クラスタ ノードの VIP に依存します VIP に障害が発生した場合や必要に応じて VIP を再配置する場合は 該当するノードのリスナー プロセスを停止する必要があります このためには リスナーを CRS フレームワーク内にサービスとして登録します この点は Oracle の以前のリリースと異なります 以前のリリースでは リスナー プロセスを手動で開始する必要がありました Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 46
注意 : CRS でのリソースの手動登録はお薦めしません これはリスナーの構成にも該当します リスナーの構成には 構成ツール netca を使用してください 例 : netca を使用したリスナーの構成 ユーザー ora<sid> として $ORACLE_HOME の設定が正しいか確認します netca を起動します Cluster configuration を選択します 次に示すように クラスタ内のすべてのノードを選択します Listener configuration を選択します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 47
構成を最初から行う場合は Add を 既存の listener.ora を $ORCACLE_HOME/network/admin にコピーした場合は Reconfigure を選択します リスナーの名前を選択します 推奨される名前が表示されます 名前は LISTENER_<SID> の形式です 先に選択したすべてのノードのノード名が自動的に追加されます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 48
使用するプロトコルを選択します TCP を選択してください IPC も選択できますが 現在は推奨していません 使用するポート番号を選択します SAP のデフォルトのポートは 1527 です クラスタで複数の Oracle データベースを実行する場合は すべてのデータベースで リスナー間で共有しない独自のポート番号を使用します Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 49
クラスタで別の Oracle データベースを実行していない場合 構成はこれで終了です Finish を選択します ツールにより リスナー構成ファイル listener.ora が作成され CRS リポジトリにリスナーのリソースが作成されます 次のコマンドの出力から リソースの作成結果を確認できます $ crs_stat -p ora.<nodename>.listener_<sid>_<nodename>.lsnr netca ツールは ファイル listener.ora のディレクトリ $ORACLE_HOME/network/admin 内のすべてのリスナーに対して簡単な構成を作成します SAP 用には追加エントリが必要です ファイル $ORACLE_HOME/network/admin/listener.ora の内容を確認します 最もシンプルなケースでは listener.ora ファイルの内容は次のようになります この例は 4 つのノードを使用した構成です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 50
STARTUP_WAIT_TIME_LISTENER = 0 CONNECT_TIMEOUT_LISTENER = 10 TRACE_LEVEL_LISTENER = OFF LISTENER_RAC_ORACX1 = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP(HOST = oracx1_vip (PORT = 1527(IP = FIRST LISTENER_RAC_ORACX2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = oracx2_vip (PORT = 1527(IP = FIRST LISTENER_RAC_ORACW1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = oracw1_vip (PORT = 1527(IP = FIRST LISTENER_RAC_ORACW2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = oracw2_vip (PORT = 1527(IP = FIRST SID_LIST_LISTENER_RAC_ORACX1 = (SID_LIST = (SID_DESC = (SID_NAME = RAC001 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC002 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC003 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC004 (ORACLE_HOME = /oracle/rac/102_32 SID_LIST_LISTENER_RAC_ORACX2 = (SID_LIST = (SID_DESC = (SID_NAME = RAC001 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC002 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC003 (ORACLE_HOME = /oracle/rac/102_32 Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 51
(SID_NAME = RAC004 (ORACLE_HOME = /oracle/rac/102_32 SID_LIST_LISTENER_RAC_ORACW1 = (SID_LIST = (SID_DESC = (SID_NAME = RAC001 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC002 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC003 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC004 (ORACLE_HOME = /oracle/rac/102_32 SID_LIST_LISTENER_RAC_ORACW2 = (SID_LIST = (SID_DESC = (SID_NAME = RAC001 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC002 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC003 (ORACLE_HOME = /oracle/rac/102_32 (SID_NAME = RAC004 (ORACLE_HOME = /oracle/rac/102_32 注意 : リスナーのサービス名は スタートアップ プロファイルで指定した Oracle データベース インスタンス パラメータ local_listener の名前と一致する必要があります tnsnames.ora ファイルに必要なものは パラメータのネットワーク サービス名と remote_listener のみです 提供されたサービスをクライアントに公開するために Oracle データベース インスタンスをリスナー プロセスに登録する必要があります 登録は インスタンスの起動時に自動的に実行されます SAP システムの場合 使用するデフォルトのポート番号が Oracle のデフォルト値と異なります インスタンス プロファイル パラメータ local_listener と remote_listener の正しいエントリを指定してください 正しく指定されていないと サービスの自動登録に失敗します リスナー プロセスに対する Oracle インスタンスの自動登録に加え 各リスナーで管理する SID_LIST もあります ファイル listener.ora の SID_LIST エントリは インスタンスが実行中でない場合でもインスタンスが存在することをリスナーに伝えます これは インスタンスが停止中であるのかあるいはインスタンスが存在しないのかを区別するために SAP の BR*Tools にとって重要な情報です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 52
注意 : Oracle 9i RAC インストレーションからアップグレードしている場合 インスタンス パラメータ remote_listener を設定する必要があります このパラメータは SAP 用の Oracle 9i RAC では設定しません リスナーの開始と停止には CRS コマンドを使用します lsnrctl start/stop コマンドを使用してリスナーをコントロールしないでください リスナーを手動で開始するには 次のコマンドを使用します $ srvctl start listener l LISTENER_<SID>_<NODENAME> -n <node> リスナーを手動で停止するには 次のコマンドを使用します $ srvctl stop listener l LISTENER_<SID>_<NODENAME> -n <node> さらに 次のコマンドでリスナーのステータスを確認できます $ lsnrctl status LISTENER_<SID>_<NODENAME> ネットワーク構成ファイル tnsnames.ora リスナー構成ファイルでは データベース インスタンスの自動サービス登録によるメリットが得られ サイズを小さく保ち すべてのリスナーから容易に利用できます それに対し クライアントの構成ファイルはエントリの数が多くなります しかし Oracle 10g では 構成ファイルのエントリの数が増加していますが SAP 用 Oracle 9i RAC でのセットアップの複雑さが大幅に改善されています tnsnames.ora ファイルはすべてのクライアントで共通です このファイルはクラスタ ファイル システム上の共有 ORACLE_HOME ディレクトリで容易に確認できます Oracle 9i RAC の場合のように すべてのノードにこのファイルのプライベートなローカル コピーを作成し 共有クラスタ ファイル システムにそのファイルへのシンボリック リンクを作成する必要はありません 注意 : Oracle 9i RAC から Oracle 10g RAC に移行する場合は ファイル tnsnames.ora のローカル コピーへのシンボリック リンクを必ず削除してください リスナーの構成とは対照的に netca ツールは tnsnames.ora の構成にはお薦めしません netca ではネット サービス エントリの高度なオプションを構成できないため 手動での構成が必要です ファイル tnsnames.ora の内容は 3 つの部分に分けられます 最初の部分には あるノードで実行されるリスナーと他のすべてのノードで実行されるリモート リスナーのエントリがあります クラスタの 1 つのノードで実行されるすべてのインスタンスについて 各インスタンスの (spfile 内の初期化パラメータ local_listener に対応する LISTENER_<NODENAME> というネット サービス名のエントリと 初期化パラメータ remote_listener に対応する REMOTE_LISTENER_<NODENAME> というネット サービス名のエントリがあります このエントリには 他のすべてのノードを含むアドレス リストがあります ローカル リスナーのエントリは アドレス リストにメンバーが 1 つだけ含まれていますが これは仮想 IP のノード名です Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 53
2 番目の部分には データベース全体の汎用エントリが 1 つと このデータベースのデータベース インスタンスと同数のネット サービス エントリが含まれています 汎用ネット サービス名は <DBSID> です この名前は SAP R/3 アプリケーションの様々なプロファイルで使用されます この主な目的は 特定のインスタンスやサービスを必要とせずにデータベースに適時接続することが必要な R/3 ワーク プロセスなどのツールの最後の手段 またはデフォルト エントリの役割を果たすことです 残りのネット サービス エントリには クラスタ ノードで実行されるデータベース インスタンスの接続記述子が含まれます これらのエントリは 主に データベース インスタンスの保持に必要です BR*Tools などで使用します また これらのエントリは データベース サービスを使用してデータベースにログオンできない古い OCI クライアントを使用する SAP クライアントでも使用します 3 番目の部分には データベースのデータベース サービスに接続するすべてのエントリが含まれます SAP R/3 アプリケーション サーバーのインスタンスのクライアントは これらのネット サービス エントリを使用して 単一のデータベースまたは特定のノードで実行されるデータベース インスタンスではなく 単純な CRS コマンドによって任意のインスタンスとノードに再配置できるデータベース サービスに接続します これらのネット サービス エントリの名前は 一意のデータベース名 SAP アプリケーション インスタンスのインスタンス名と番号 SAP インスタンスが実行されるホスト名から構成されます したがって ここで使用される汎用スキーマは <SID>_<INST><NR>_<hostname>.WORLD です データベース インスタンス内でのサービスの定義には Oracle のツール srvctl を使用します データベース内でサービス エントリを定義する方法と例は SAP R/3 アプリケーション インスタンスのデータベース サービスの定義 を参照してください 例 : 4 つのインスタンスと SAP ダイアログ インスタンス D01_oracx1 D02_oracx2 D03_oracw1 および D04_oracw2 の 4 つサービス定義で構成されるデータベース RAC ################ # Filename...: tnsnames.ora # Created...: created by SAP AG, R/3 Rel. >= 6.10 # Name...: # Date...: ################ ### Section 1: entries for connection to the listener process REMOTE_LISTENER_RAC_ORACX1.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 REMOTE_LISTENER_RAC_ORACX2.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 REMOTE_LISTENER_RAC_ORACW1.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 54
(ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 REMOTE_LISTENER_RAC_ORACW2.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 LISTENER_RAC_ORACX1.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 LISTENER_RAC_ORACX2.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 LISTENER_RAC_ORACW1.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 LISTENER_RAC_ORACW2.WORLD= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 ### Section 2: general database service and instances RAC.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 (CONNECT_DATA = (SERVICE_NAME = RAC.WORLD (GLOBAL_NAME = RAC.WORLD (FAILOVER_MODE = (TYPE = SELECT (METHOD = BASIC RAC001.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1(PORT=1527 (CONNECT_DATA = (SID = RAC001 (GLOBAL_NAME = RAC.WORLD Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 55
RAC002.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1(PORT=1527 (CONNECT_DATA = (SID = RAC002 (GLOBAL_NAME = RAC.WORLD RAC003.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1(PORT=1527 (CONNECT_DATA = (SID = RAC003 (GLOBAL_NAME = RAC.WORLD RAC004.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1(PORT=1527 (CONNECT_DATA = (SID = RAC004 (GLOBAL_NAME = RAC.WORLD ### Section 3: entries for SAP application instances RAC_D01_oracx1.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 (CONNECT_DATA = (SERVICE_NAME = D01_oracx1.WORLD (GLOBAL_NAME = RAC.WORLD (FAILOVER_MODE = (TYPE = SELECT (METHOD = BASIC Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 56
RAC_D02_oracx2.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 (CONNECT_DATA = (SERVICE_NAME = D02_oracx2.WORLD (GLOBAL_NAME = RAC.WORLD (FAILOVER_MODE = (TYPE = SELECT (METHOD = BASIC RAC_D03_oracw1.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 (CONNECT_DATA = (SERVICE_NAME = D03_oracw1.WORLD (GLOBAL_NAME = RAC.WORLD (FAILOVER_MODE = (TYPE = SELECT (METHOD = BASIC RAC_D04_oracw2.WORLD= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP(HOST=oracx1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracx2_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw1_vip(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=oracw2_vip(PORT=1527 (CONNECT_DATA = (SERVICE_NAME = D04_oracw2.WORLD (GLOBAL_NAME = RAC.WORLD (FAILOVER_MODE = (TYPE = SELECT (METHOD = BASIC Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 57
Instant Client 使用時に TNS_ADMIN で指定された場所への tnsnames.ora ファイルのコピー Oracle 10g のリリースから ABAP スタック用の SAP ソフトウェアはデータベース接続に Instant Client ライブラリを使用します Instant Client の実装には $ORACLE_HOME ディレクトリを必要としないため クライアントで使用するネットワーク構成ファイル tnsnames.ora の場所は 環境変数 TNS_ADMIN から取得します 注意 : SAP では 環境変数 TNS_ADMIN を使用して tnsnames.ora の場所を指定します クラスタの外にある SAP アプリケーション サーバー ノードでは TNS_ADMIN の値が異なることがあります tnsnames.ora ファイルをすべての SAP アプリケーション サーバーにコピーします コピー先は 各サーバーのユーザー sap<sid> の環境変数 TNS_ADMIN で指定される場所です クラスタ内で実行される SAP アプリケーションの場合 TNS_ADMIN の値を ネットワーク構成が保持された共有 Oracle Home ディレクトリに変更できます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 58
インスタンス プロファイル パラメータ local_listener と remote_listener の追加 tnsnames.ora ファイルの構成後 インスタンス プロファイル パラメータ local_listener と remote_listener に正しい値を設定します 注意 : tnsnames.ora の構成が完了するまで これらのパラメータを設定しないでください ネット サービス名を解決できない場合 インスタンスは起動しません local_listener と remote_listener の値は ファイル tnsnames.ora にあるリスナーのネット サービス エントリと一致することが必要です ファイル tnsnames.ora の構成で説明した命名規則に従うと あるデータベース インスタンスのパラメータ local_listener は LISTENER_<SID>_<HOSTNAME> であり すべてのインスタンスのパラメータ remote_listener は REMOTE_LISTENER_<SID>_<HOSTNAME> です このように これらのパラメータで異なるのはホスト名です ホスト名は エントリが有効なインスタンスを指定します oracx1 oracx2 oracw1 oracw2 の 4 つのノードを使用する場合のパラメータ local_listener と remote_listener の設定例 : $ sqlplus / as sysdba SQL> startup nomount SQL> alter system set local_listener= LISTENER_RAC_ORACX1 scope=spfile sid= RAC001 ; SQL> alter system set local_listener= LISTENER_RAC_ORACX2 scope=spfile sid= RAC002 ; SQL> alter system set local_listener= LISTENER_RAC_ORACW1 scope=spfile sid= RAC003 ; SQL> alter system set local_listener= LISTENER_RAC_ORACW2 scope=spfile sid= RAC004 ; SQL> alter system set remote_listener= REMOTE_LISTENER_RAC_ORACX1 scope=spfile sid= RAC001 ; SQL> alter system set remote_listener= REMOTE_LISTENER_RAC_ORACX2 scope=spfile sid= RAC002 ; SQL> alter system set remote_listener= REMOTE_LISTENER_RAC_ORACW1 scope=spfile sid= RAC003 ; SQL> alter system set remote_listener= REMOTE_LISTENER_RAC_ORACW2 scope=spfile sid= RAC004 ; SQL> shutdown immediate; Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 59
RAC 対応 SAP データベースのための CRS でのサービスの登録 データベース サービスの考えは Oracle 10g RAC と CRS で新しく導入されたものです データベース サービスは CRS の HA フレームワークにおいて データベース インスタンス リスナーなどと同じ方法でリソースによって定義されコントロールされます SAP R/3 システムでこの概念を使用するには Oracle CRS 内で様々なソフトウェア コンポーネントとプログラムが認識されていることが必要です Oracle CRS は クラスタ内でこれらのすべてのデータベース サービスを開始 停止 再配置する中心のフレームワークです CRS から見ると データベース サービスは特定の属性を持つリソースです あらゆるサービスの最も基本的なビルディング ブロックは すべてのクラスタ ノードで稼働する VIP リソース ONS リソース GSD リソースです これらのリソースは Oracle CRS のインストール中に自動的に作成されます リスナー プロセスのリソース エントリは netca コマンドを使用して作成します この手順は リスナー構成ファイル listener.ora の項で説明済みです Oracle Clusterware での SAP データベースと RAC インスタンスの構成 サービス エントリをデータベースに追加するには データベース自体とデータベースに所属するインスタンスを OCR に公開する必要があります 構成作業はすべて Oracle Server Control Utility の SRVCTL を使用して実施します SAP データベースを OCR 構成に追加します たとえば 次のようにします $ srvctl add database d RAC o /oracle/rac/1020_32 次に すべてのデータベース インスタンスを構成に追加します 次の例では 4 つのインスタンスを追加しています $ srvctl add instance d RAC i RAC001 n oracx1 $ srvctl add instance d RAC i RAC002 n oracx2 $ srvctl add instance d RAC i RAC003 n oracw1 $ srvctl add instance d RAC i RAC004 n oracw2 データベースおよびインスタンスが Oracle Clusterware により認識された後 データベースの起動および停止は srvctl コマンドを使用して実行する必要があります sqlplus の使用はお薦めしません 例 : データベースの起動 $ srvctl start database d RAC これにより インスタンスも起動します 例 : 単一のインスタンスの停止 $ srvctl stop instance d RAC i RAC001 Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 60
次のコマンドでデータベースおよびインスタンスのステータスを確認できます $ srvctl status database d v メディアの破壊 リカバリの問題などデータベースに問題がある場合 srvctl コマンドではこれらの問題をユーザーに報告しません データベースまたはインスタンスが正常に起動されない場合は インスタンスのアラート ログを確認してください メディアリカバリによってデータベースまたは複数のデータベース ファイルの修理が必要な場合 sqlplus を使用してすべての管理タスクを実行してください SAP R/3 アプリケーション インスタンスのデータベース サービスの定義 データベース サービス定義の目的は 様々な SAP アプリケーション インスタンスを 特定のデータベース インスタンスにではなく任意の Oracle データベース サービスに接続することです 一方 データベース インスタンスでは 構成されたサービスをアプリケーション インスタンスから利用できます データベース サービスの配置のルールは CRS 内で定義されます 基本セットアップでは SAP アプリケーションの各インスタンスが独自のデータベース サービスを使用してデータベースに接続します 上の図では SAP インスタンス D01 がインスタンスのプロファイル RAC_D01_node1 のパラメータ dbs/ora/tnsname 内の接続情報を検出しています この情報をもとに インスタンス D01 はファイル tnsnames.ora 内の接続情報を参照します インスタンス D01 は 接続記述子のサービス名 D01_node1 を使用してリスナーに接続します 接続後 リスナーはサービス D01_node1 を提供する Oracle データベース インスタンスに SAP インスタンスを転送します SAP インスタンスのデータベース サービスは srvctl コマンドによって CRS 内で定義されます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 61
例 : ホスト oracx1 で実行される SAP アプリケーション インスタンス D01 のデータベース (-d RAC のデータベース サービス (-sd01_oracx1 を定義します このデータベース サービスはデータベース インスタンス (-rrac001 で利用でき データベース インスタンス (-a RAC002 RAC003 または RAC004 へフェイルオーバーできます $ srvctl add service d RAC s D01_oracx1 r RAC001 a RAC002,RAC003,RAC004 注意 : サービスの名前は tnsnames.ora の接続記述子で指定されたサービス名と一致することが必要です tnsnames.ora でのネットワーク サービスの構成については ネットワーク構成ファイル tnsnames.ora を参照してください 注意 : サービスの記述には データベースの名前 (RAC と SAP インスタンスの名前 (D01 を含む必要があります これらのすべての命名規則に従うことにより クラスタで複数の SAP システムと Oracle データベースが互いに競合することなく稼働できます 上のコマンドにより ora.rac.d01_oracx1.rac001.srv という名前で新しいリソースが CRS に作成されます RAC001 は ノード oracx1 で実行されるインスタンスの名前です このサービスのための CRS リソースのステータスと属性は コマンド crs_stat p ora.d01_oracx1.rac001.srv を使用して取得できます SRVCTL を使用して SAP システム用に構成された SAP R/3 アプリケーション インスタンスと同数のサービスをデータベースに対して定義します 次の例は SAP インスタンス D02 D03 および D04 のためのサービスを追加します $ srvctl add service d RAC s D02_oracx2 r RAC002 a RAC003,RAC004,RAC001 $ srvctl add service d RAC s D03_oracx3 r RAC003 a RAC004,RAC001,RAC002 $ srvctl add service d RAC s D04_oracx4 r RAC004 a RAC001,RAC002,RAC003 Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 62
SAP ユーザー環境 SAP インスタンスおよび START プロファイルの変更をテストするため ファイル.dbenv_<hostname>.sh および.dbenv_<hostname>.csh の dbs_ora_tnsname のエントリをコメントにします これを実行する前に dbenv_<hostname>.sh ファイルと.dbenv_<hostname>.csh ファイルのコピーを作成してください 注意 : R3trans または tp をコマンドラインから直接実行することが必要な場合は dbs_ora_tnsname を設定します これらのツールにはこの環境変数が必要なためです ただし その場合でも 次のように dbs_ora_tnsname のエントリをコメントにして構成をテストしてください これにより スクリプト startsap に対する変更が正しく機能することを確認できます 例 :.dbenv_<hostname>.csh... setenv dbms_type ORA # setenv dbs_ora_tnsname $DBSID setenv dbs_ora_schema SAPRAC setenv ORACLE_PSRV RAC setenv ORACLE_SID $DBSID setenv DB_SID RAC... 例 :.dbenv_<hostname>.sh... dbms_type=ora; export dbms_type # dbs_ora_tnsname=$dbsid; export dbs_ora_tnsname dbs_ora_schema=saprac; export dbs_ora_schema ORACLE_PSRV=RAC; export ORACLE_PSRV ORACLE_SID=$DBSID; export ORACLE_SID DB_SID=RAC; export DB_SID... SAP インスタンスプロファイル プロファイル ディレクトリ /usr/sap/<sid>/sys/profile で 構成された SAP R/3 インスタンスの全 SAP プロファイルにエントリを追加します パラメータ dbs/ora/tnsname を定義し 各インスタンスのネットワーク構成ファイル tnsnames.ora に指定されたサービス名のエントリを指定します SAP R/3 のインスタンスの関連するサービスを容易に識別するために tnsnames.ora のエントリには SAP インスタンス プロファイル名と同じ名前を使用できます SAP の各インスタンスを独自の Oracle ネット サービス エントリを使用するように構成できます このネット サービス エントリから そのアプリケーション インスタンスのデータベース サービスが得られます サービスの概念と CRS コマンドを使用して SAP アプリケーション インスタンスのデータベース サービスを管理するために SAP インスタンスには tnsnames.ora ファイルで指定された Oracle ネット サービスの名前を含める必要があります Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 63
tnsnames.ora ファイルでは SAP アプリケーション インスタンスのネット サービス エントリが <SID>_<INST_NAME>_<hostname> の形式です これは SAP インスタンスのプロファイル ファイルの形式と完全に一致します この規則により tnsnames.ora ファイルで SAP アプリケーション インスタンスの Oracle ネット サービス エントリを容易に確認できます この値をプロファイルのパラメータ dbs/ora/tnsnames に指定します SAP アプリケーション インスタンスのプロファイルは ディレクトリ /usr/sap/<sid>/sys/profile にあります 例 : SAP システム名は RAC インスタンス名は D01 で このインスタンスがホスト oracx1 上で実行されます インスタンスプロファイルのファイル名は RAC_D01_oracx1 です... SAPSYSTEMNAME=RAC INSTANCE_NAME=D00 dbs/ora/tnsname=rac_d00_oracx1... 注意 : SAP ユーザーの環境変数 dbs_ora_tnsname は インスタンスのプロファイルのパラメータ設定を上書きします 環境変数 dbs_ora_tnsname は 当該インスタンスの START プロファイルで 特定の SAP インスタンスに対し適切な名前に設定されます SAP START プロファイル 標準的なシステムでは SAP のすべてのアプリケーション インスタンスがスクリプト startsap によって起動されます SAP の各インスタンスが専用のデータベース サービスを利用可能にするため SAP インスタンスの START プロファイルを多少変更して Oracle ネットワーク セットアップと連携させます まず sapstart スクリプトにより 環境変数 dbs_ora_tnsname をデータベースの SID に設定します また このデータベース SID は データベースがすでに実行されているかどうかを確認するための SAPSID です sapstart 実行可能ファイルによって SAP インスタンスが起動される直前に 環境変数 dbs_ora_tnsname が ユーザー環境で指定された値に設定されます ユーザー環境で指定されていない場合 環境変数は設定されません 環境変数 dbs_ora_tnsname が設定されている場合 インスタンスのプロファイルのパラメータ dbs/ora/tnsname 設定をオーバーライドします ただし パラメータ dbs_ora_tnsname は R3trans tp などのプログラムやツールに必要です そのため 単にユーザー環境でこの変数を設定しないだけでは完全な解決が得られません 注意 : ユーザー環境変数 dbs_ora_tnsname は プログラム R3trans および tp をコマンドラインから直接実行するために必要です これらのプログラムをコマンドラインから実行しない場合または START プロファイルに加えた変更について動作検証を行う場合のみ このパラメータを非設定にしてください 例 : SAP システム名は RAC インスタンス名は D01 で このインスタンスがホスト oracx1 上で実行されます インスタンスの START プロファイルのファイル名は START_D01_oracx1 です... SETENV_02 = LIBPATH=$(DIR_LIBRARY:%(LIBPATH SETENV_03 = dbs_ora_tnsname=rac_d01_oracx1... Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 64
RAC データベース用 SAP J2EE サーバー構成 このセクションは Java Add-In インストール (JAVA + ABAP スタック および SAP NetWeaver の Java Standalone インストールに適用されます SAP が提供する JVM(Java Virtual Machine は Oracle 提供の Thin JDBC ドライバを使用してデータベースに接続します そのため Java スタック用の Oracle ネットワーク構成は ABAP スタック用と異なります Thin JDBC ドライバは ネットワーク構成ファイル tnsnames.ora および sqlnet.ora は使用しません 接続説明を定義する URL はファイル システム内の暗号化されたフラット ファイルに保存されます このファイルの内容はデータベースにも保存されます この構成ファイルの内容は SAP システムのすべての Java Server Engines に対して有効です 構成ファイルは sapmnt アクセス パスを介して共有されます ABAP+JAVA 混合インストール内の構成ツールのパスは /usr/sap/<sid>/<ci>/j2ee/configtool です ユーザー <sidadm> としてこのディレクトリを開き 構成ツール configtool.sh を起動します $ cd /usr/sap/<sid>/<ci>/j2ee/configtool $./configtool.sh ポップアップ スクリーンが開き デフォルトの接続設定を使用するように求められた場合 yes を選択してデフォルト設定にします J2EE Engine Config Tool の起動画面が開きます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 65
起動画面左側のナビゲーション ツリーで secure store アイコンを選択します キー jdbc/pool/<sid>/url を確認します このキーには Thin JDBC ドライバの接続記述子が格納されています RAC には tnsnames.ora ファイルの ABAP スタックに使用される接続設定に類似した接続文字列が使用されます Jdbc:oracle:thin@(DESCRIPTION=(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP(HOST=<node_1>(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=<node_2>(PORT=1527 (ADDRESS=(PROTOCOL=TCP(HOST=<node_N>(PORT=1527 (CONNECT_DATA= (SERVICE_NAME=J2EE.WORLD (GLOBAL_NAME=<SID>.WORLD (FAILOVER_MODE=(TYPE=SELECT(METHOD=BASIC Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 66
CR/LF を使用せずに接続 URL を指定する必要があります この構成の CONNECT_DATA 部には SERVICE_NAME キーが格納されているため データベース インスタンスではなくデータベース サービスに接続されます この例では SAP J2EE エンジンはデータベース サービス J2EE を使用します 接続要求はデータベース サービス J2EE を提供するいずれかの Oracle データベース インスタンスによってサービスが実行されます 接続可能なデータベース インスタンスが複数存在する場合 リスナー プロセスがデータベース インスタンスのワークロードに基づいて決定します データベース (spfile のパラメータ ファイルのパラメータ db_domain にデフォルト ドメイン WORLD が設定されている場合 接続記述子にデータベース ドメイン WORLD を指定する必要があります コマンド lsnrctl status LISTENER_<SID>_<nodename> を発行することによりチェックできます サービス名にドメイン修飾子が含まれているか確認してください lsnrctl コマンドを使用してチェックを行うには 事前に J2EE インスタンスのデータベース サービスを次のように定義する必要があります GLOBAL_NAME パラメータはデータベース名を特定します パラメータ値は デフォルトでは DB_NAME と DB_DOMAIN から生成されます データベースへの接続は指定された GLOBAL_NAME パラメータ有りまたは無しで動作します 注意 : セキュア ストアの構成はすべての J2EE インスタンスに対して有効です つまり すべての J2EE インスタンスは同じデータベース サービスを使用します ABAP インスタンスでは各インスタンスに専用のプライベート データベース サービスを使用するため この点で ABAP 構成と異なります J2EE インスタンスのデータベース サービスの定義 J2EE インスタンスのデータベース サービスは srvctl コマンドを使用して定義します 定義方法は ABAP インスタンスと同様です データベース サービスの配置のルールは CRS 内で定義されます 例 : SAP J2EE インスタンスのデータベース サービス (-sj2ee を定義します このデータベース サービスは 要求されるインスタンス (-rrac001 および RAC002 と共にデータベース (-drac で利用でき データベース インスタンス (-arac003 または RAC004 へフェイルオーバーできます $ srvctl add service d RAC s J2EE r RAC001,RAC002 a RAC003,RAC004 注意 : サービスの名前は セキュア ストア構成の jdbc URL で指定されたサービス名と一致することが必要です サービス名はドメイン修飾子なしの.WORLD で記述されます この修飾子は データベース サービスがリスナー プロセスに対して公開される際に ORACLE データベース インスタンスによって自動で付加されます Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 67
前述のコマンドにより ora.rac.j2ee.rac001.srv ora.rac.j2ee.rac002.srv および ora.rac.j2ee.cs という名前で新しいリソースが CRS に作成されます このサービスのための CRS リソースのステータスと属性は 例えばコマンド crs_stat p ora.j2ee.rac001.srv を使用して取得できます SAP J2EE エンジンのワークロードの分散はデータベースによって完全に管理されます ABAP ワーク プロセスのような具体的な接続バランス調整はありません その代わりに サービスが 1 つ以上のデータベース インスタンスで実行するように定義されている場合 サーバー側ロード バランス調整が実行されます このような構成により 単一の SAP J2EE サーバーエンジンによる接続は データベース サービスが定義された複数のデータベース インスタンス間で均一に分散されます J2EE エンジンからのワークロード分散が完全にランダムであり ABAP スタックのように制御できないという点で 接続シナリオは ABAP スタックと異なります 注意 : ABAP と Java アプリケーション サーバーに通常クラスタの専用ノードで実行される 異なるサービスを構成できます これにより ABAP と Java のワークロードを分離できます SAP BR*Tools SAP が提供する Oracle データベース管理用ツール SAP BR*Tools は RAC 構成をサポートします RAC を使用する場合は 常に最新バージョンの BR*Tools を SAP Service Marketplace からダウンロードしてください RAC 対応 SAP システムに必要な構成の変更はすべて SAP マニュアルの第 6 章 SAP Database Guide: Oracle に記載されています SAP Enqueue Replication の実行と構成 このドキュメントで定義されたセットアップと構成の手順はすべて Oracle Clusterware Agent SAPCTL for SAP Enqueue Replication の実装に従っています Oracle Clusterware における SAP Enqueue Replication の構成作業の詳細は Oracle のホワイト ペーパー Providing High Availability for SAP Resources を参照してください ホワイト ペーパーは次のサイトから入手できます SAP Service Marketplace http://service.sap.com/dbaora Oracle ウェブサイト Oracle Database Administration Media Library Oracle RAC http://www.oracle.com/sap ORACLE RAC FOR SAP Best Practices http://www.oracle.co.jp/sap Real Application Clusters( 日本語版 Oracle Database 10g Real Application Clusters のための SAP NetWeaver の構成 68
Oracle Database10g Real Application Clusters のための SAP NetWeaver の構成 2008 年 7 月著者 : Kurt Brög 寄稿者 : Jan Klokkers Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問合せ窓口 : 電話 : +1.650.506.7000 ファックス : +1.650.506.7200 www.oracle.com Oracle はオラクル社の登録商標です このガイドで使用されている様々な製品名およびサービス名には オラクル社の商標が含まれています その他の製品名およびサービス名には 各社の商標が含まれています Copyright 2008, Oracle Corporation. 無断転載を禁ず