2 Oracle Machine Learning for R向けデータベースのインストールおよび構成
この章では、OML4RサーバーをサポートするOracle Databaseのインストールおよび構成方法について説明します。
この章には次のトピックが含まれます:
- Oracle Machine Learning for R向けOracle Databaseのインストール
 Oracle Databaseのインストール手順。
- 埋込みRの実行でのEXTPROCの使用
 Oracle Databaseでは、外部プロシージャをサポートするためにextprocという外部プロシージャ・エージェントが使用されます。
2.1 Oracle Machine Learning for R向けOracle Databaseのインストール
Oracle Databaseのインストール手順。
OML4Rには、64ビット・バージョンのOracle Database Enterprise EditionまたはStandard Edition 2が必要です。サポートされているプラットフォームについては、「オンプレミス・データベースの場合のOracle Machine Learning for Rのシステム要件」を参照してください。
Oracle Databaseをインストールするには、ご使用のサポート対象プラットフォームのインストール手順に従ってください。
- Oracle Help CenterのOracle Database Documentationページに移動します。
- インストールするOracle Databaseのバージョンを選択します。
- 「Topics」セクションで、「Install and Upgrade」を選択します。
- ご使用のオペレーティング・システムのセクションで、適切なインストレーション・ガイドを選択します。
ノート:
OML4Rサーバーは、マルチテナント・コンテナ・データベース(CDB)内のプラガブル・データベース(PDB)にインストールできます。このデータベースは、マルチテナント環境ではルート・データベースにインストールされていない場合があります。
マルチテナント環境の管理の詳細は、『Oracle Database管理者ガイド』を参照してください。
2.2 埋込みRの実行でのEXTPROCの使用
Oracle Databaseでは、外部プロシージャをサポートするためにextprocという外部プロシージャ・エージェントが使用されます。
                  
外部プロシージャは、異なる言語で書かれたプログラムから起動されるプロシージャです。OML4Rでは、埋込みRの実行をサポートするためにextprocが使用されます。
                  
- EXTPROCについて
 アプリケーションから外部プロシージャが起動されると、Oracle Databaseによってextprocエージェントが起動されます。
- OML4RのEXTPROC構成について
 OML4Rでは、extprocのデフォルト構成が使用されます。
- EXTPROCのトラブルシューティング
 データベース構成に問題が存在する場合、OML4R埋込みR関数のコールでエラーが発生する可能性があります。
2.2.1 EXTPROCについて
アプリケーションから外部プロシージャが起動されると、Oracle Databaseによってextprocエージェントが起動されます。
                     
アプリケーションからは、Oracle Databaseによって確立されたネットワーク接続を使用して、プロシージャを実行するための指示がエージェントに送られます。エージェントでは、DLLや共有ライブラリがロードされ、外部プロシージャが実行され、外部プロシージャから戻された値がアプリケーションに戻されます。
親トピック: 埋込みRの実行でのEXTPROCの使用
2.2.2 OML4RのEXTPROC構成について
OML4Rでは、extprocのデフォルト構成が使用されます。
                     
ノート:
Oracle Database 12c以降とOML4Rを使用する場合は、デフォルトのextproc構成が必要です。これは、リスナーベースのextprocでは機能しません。
                        
extprocエージェントはOracle Databaseによって直接生成され、listener.oraもtnsnames.oraも構成を変更する必要はありません。extprocをデータベース・リスナーに構成すると、デフォルト設定がオーバーライドされます。
                     
Linux 6上のR-3.3.0では、使用するライブラリが$ORACLE_HOME/binまたは$ORACLE_HOME/libにある場合は、デフォルトで、extprocで外部プロシージャ・コールがサポートされます。
                     
extprocにあらゆる外部プロシージャの処理を許可するには、EXTPROC_DLLSをANYに設定するか、または単に空白のまま(デフォルト)にします。
                     
次の手順を実行して、extprocトレースを有効にします。
                     
- extproc.oraファイルに、次の文を追加します。- SET TRACE_LEVEL=ON
- データベースを再起動します。
                           すべての extproc操作のトレースが$ORACLE_HOME/hs/logディレクトリのログ・ファイルに記録されるようになりました。
Linux 6上のR-3.3.0の場合は、$ORACLE_HOME/hs/admin/extproc.ora内のLD_LIBRARY_PATHをR-core-extra RPMの場所に設定する必要があります。これにより、これらのライブラリが、extprocを実行しているOracleプロセスで検出されるようになります。たとえば、R-core-extra RPMのデフォルトの場所は/usr/lib64/R/port/Linux-X64/libです。そこでのextproc.oraエントリは次のとおりです。
                     
SET LD_LIBRARY_PATH=/usr/lib64/R/port/Linux-X64/libLinux 7以降では、LD_LIBRARY_PATHを設定する必要はありません。これは、これらのライブラリの必要なバージョンが新しいシステムのネイティブであるためです。
                     
ノート:
extproc.oraの変更を有効にするには、データベースの再起動が必要です。
                     関連項目:
詳細は、『Oracle Database Net Services管理者ガイド』の外部プロシージャのデフォルト構成に関する説明を参照してください。
親トピック: 埋込みRの実行でのEXTPROCの使用
2.2.3 EXTPROCのトラブルシューティング
データベース構成に問題が存在する場合、OML4R埋込みR関数のコールでエラーが発生する可能性があります。
OML4R埋込みR関数のコールの試みで、次のエラーが発生した場合、外部プロシージャが成功していません。
ORA-28575: unable to open RPC connection to external procedure agent.このエラーは、データベース構成の問題で発生することがよくあります。この原因として、次のいずれかが考えられます。
- 
                           OML4RユーザーにRQADMINロールが付与されていません。 
- 
                           Oracleリスナー構成が正しくありません。デフォルトの外部プロシージャ構成(使用をお薦めします)を使用しない場合に発生します。 
- 
                           ネットワーク層の制限または問題が存在します。 
- 
                           外部プロシージャの制限が強制的にコールされました。 
親トピック: 埋込みRの実行でのEXTPROCの使用