4 Oracle Machine Learning for Rサーバーのインストール

この章では、OML4Rサーバーのインストール方法および管理方法について説明します。この章の内容は、次のとおりです。

4.1 Oracle Machine Learning for Rサーバーについて

OML4Rには、OML4RクライアントとOML4Rサーバーとの相互作用を可能にするOracle Databaseサーバー上のコンポーネントが含まれています。

ノート:

OML4Rのバージョンは、サーバーと各クライアント・コンピュータで同じである必要があります。また、Rのバージョンは、サーバーと各クライアント・コンピュータで同じである必要があります。

次のコンポーネントがあります。

  • OML4Rサーバー

    • RQSYSスキーマ

    • sys内のメタデータおよび実行可能コード

    • $ORACLE_HOME/lib内のOML4Rサーバー・ライブラリ

    • $ORACLE_HOME/R/library内のOML4R Rパッケージ

      サーバーのOML4RパッケージおよびSupporting Packagesでは、埋込みRの実行がサポートされています。これと同じパッケージを各クライアント・コンピュータに個別にインストールする必要があります(OML4Rパッケージについてを参照してください)。

詳細は、次のトピックを参照してください。

関連項目:

  • サポートされているRおよびOML4Rのバージョンのリストは、表1-3を参照してください。
  • OML4Rのサーバー・コンポーネントとクライアント・コンポーネントについては、図1-2を参照してください。

4.1.1 RQSYSスキーマについて

RQSYSスキーマは、Oracle DatabaseでのOracle Machine Learning for Rのシステム・アカウントです。

これには、メタデータ、PL/SQLパッケージ、およびOML4Rサーバーの内部で使用される他の実行可能コードが含まれています。

OML4Rサーバー・インストール・プロセスでは、パスワードが期限切れになってロックされたアカウントとしてRQSYSが作成されます。rqsysユーザーにはCREATE SESSION権限がありません。

4.1.2 OML4Rのセキュリティのベスト・プラクティス

Oracle DatabaseでOML4Rサーバーのセキュリティを損なうリスクを最小化するために、次のセキュリティのベスト・プラクティスをお薦めします。

Oracle DatabaseインスタンスのOML4Rサーバー・コンポーネントには、ロックされてパスワードが期限切れになったRQSYSスキーマ(OML4Rメタデータを格納および管理する)が含まれます。ユーザーは、データベースの接続資格証明を使用してOML4Rサーバーに接続します。RQADMINロールによって、ユーザーに、OML4R Rスクリプト・リポジトリ内でR関数をスクリプトとして作成する権限が付与されます。これらのスクリプトは、OML4Rの埋込みRの実行を使用して実行できます。

次のセキュリティのベスト・プラクティスをお薦めします。

  • RQSYSスキーマをロック解除したり、ログインを有効にしないでください。

  • RQADMINロールは、Rスクリプト・リポジトリを作成および管理するデータベース・ユーザーにのみ付与します。

  • プライベートRスクリプトを作成し、必要に応じて他のユーザーにアクセス権を付与します。グローバルRスクリプトは、すべてのOML4Rユーザーが表示でき、実行できます。

  • パラメータまたはOML4Rデータストアを使用して、埋込みRの実行スクリプトとOracle Databaseの間でデータを転送します。Rスクリプトは、サーバーのファイル・システムやネットワークとやり取りしないでください。

  • Oracle Databaseサーバーのリソースおよび使用パターンに基づいて、OML4Rの埋込みRの実行メモリー制限を適切に設定します。デフォルト値は、1接続当たり2 GBです。

  • 埋込みRの実行を使用するRスクリプトでOracle Databaseサーバーに接続する際に、明示的なデータベース資格証明を指定するかわりに、自動接続機能(connect=TRUE)を使用します。

  • 承認されていないRパッケージまたはCライブラリを、埋込みRの実行で使用するためにOracle Databaseサーバーにロードすることを許可しないでください。

  • 依存する共有ライブラリを$ORACLE_HOME/libディレクトリからロードして、承認されていないライブラリの使用を防ぎます。

4.2 Oracle Machine Learning for Rサーバーの要件

OML4Rサーバーをインストールする前に、システム環境を確認し、ユーザーIDに正しい権限があることを確認してください。

OML4Rサーバーの前提条件として、Oracle Databaseと、Oracle R Distributionまたはオープン・ソースRがインストールされている必要があります。

4.2.1 システム要件

OML4Rサーバーのシステム要件を示します。

4.2.2 環境変数

OML4Rサーバーに必要な環境変数を示します。

表4-1 Oracle Machine Learning for Rサーバーの環境変数要件

プラットフォーム 環境変数要件

Linux

$ORACLE_SIDで、OML4Rをサポートするデータベースのサービス識別子(SID)が指定されている必要があります。

$ORACLE_HOMEで、ORACLE_SIDによって特定されているデータベースのホーム・ディレクトリが指定されている必要があります。

$LD_LIBRARY_PATH$ORACLE_HOME/libが含まれている必要があります。

4.2.3 ユーザー要件

OML4Rサーバーをインストールするオペレーティング・システム・ユーザーの要件を示します。

表4-2 OML4Rサーバーのインストーラのユーザー要件

プラットフォーム ユーザー要件

Linux

  • dbaグループのメンバーである必要があります。

  • $ORACLE_HOME/libへの書込み権限が必要です。

詳細は、次のトピックを参照してください。

4.2.3.1 オペレーティング・システム認証について

OML4Rサーバーで使用されるオペレーティング・システム認証について説明します。

OML4Rサーバーのインストール・スクリプトでは、ORACLE_HOMEおよびORACLE_SIDによって識別されるデータベースへの接続にシステム認証が使用されます。システム認証は、データベース資格証明書ではなくユーザーのオペレーティング・システム資格証明書に基づいています。

たとえば、Linuxシステムでは、OML4Rのインストール・スクリプトで、次の文を使用してパスワードなしでSQL*Plusが起動されます。

$ORACLE_HOME/bin/sqlplus / as sysdba

特別なオペレーティング・システム・グループのメンバーシップによって、Oracle Databaseのシステム認証が行われます。このオペレーティング・システム・グループは、データベースのインストール時に作成され、インストール実行者のIDがグループに自動的に割り当てられます。グループの一般的な名前はOSDBAです。LinuxおよびUNIXでは、OSDBAの名称はdbaです。Windowsでは、OSDBAの名称はora_dbaです。

OML4RサーバーをインストールするユーザーはOSDBAに属している必要があります。

関連項目:

4.2.3.2 ユーザーIDのグループ・メンバーシップの確認

OML4Rサーバーに必要なグループ・メンバーシップを決定する方法について説明します。

オペレーティング・システム認証についてで説明しているように、OML4Rサーバーのインストール・スクリプトを実行するLinuxまたはUNIXユーザーIDは、dbaグループに属している必要があります。サーバー上でその他のOML4Rスクリプトを実行するには、dbaグループのメンバーシップも必要です。

ご使用のLinuxまたはUNIXのユーザーIDのグループ・メンバーシップを確認するには、次のコマンドを入力します。

% groups
dba  othergroup

4.3 Oracle Database 19c以降の場合のOracle Machine Learning for Rサーバーのインストール

Oracle Database 19c以降のOML4Rサーバーのインストール手順。

rqcfg.sqlスクリプトは、データベースの一部であるOML4R Serverコンポーネントを有効にし、サーバーのいくつかの側面を構成し、一部のOML4Rデータベース・オブジェクトをインストールします。

OML4Rサーバーをインストールする前に、「オンプレミスのOracle DatabaseへのOracle Machine Learning for RのRのインストール」の説明に従ってRをインストールします。

R-4.0.5と使用する場合、OML4Rサーバー・パッケージは、個別の各Rバージョンに基づいて構築されています。OML4RをR-4.0.5と使用するには、それらのOML4Rサーバー・パッケージをダウンロードしインストールする必要があります。

4.3.1 R-4.0.5でOML4Rサーバーを使用するための準備

R-4.0.5でビルドされたOML4Rサーバー・パッケージをダウンロードしてインストールするための手順。

OML4R Serverパッケージは、$ORACLE_HOME/R/library/ディレクトリにあります。R-4.0.5で使用する場合は、そのディレクトリ内のOML4Rパッケージの名前を変更するか、削除できます。その後、R-4.0.5と互換性のあるOML4Rサーバー・パッケージをダウンロードしてインストールします。

次の手順では、元のOML4Rサーバー・パッケージの名前を変更し、R-4.0.5に基づいて構築されているパッケージに置き換えます。
  1. $ORACLE_HOME/R/library/ディレクトリにあるOML4Rパッケージの名前を変更します。
    $ cd $ORACLE_HOME/R/library
    
    $ mv ORE ORE.orig
    $ mv OREbase OREbase.orig
    $ mv OREcommon OREcommon.orig
    $ mv OREdm OREdm.orig
    $ mv OREdplyr OREdplyr.orig
    $ mv OREeda OREeda.orig
    $ mv OREembed OREembed.orig
    $ mv OREgraphics OREgraphics.orig
    $ mv OREmodels OREmodels.orig
    $ mv OREpredict OREpredict.orig
    $ mv OREserver OREserver.orig
    $ mv OREstats OREstats.orig
    $ mv ORExml ORExml.orig
    
  2. Oracle Machine Learning for Rダウンロード・ページに移動し、ライセンス契約に同意し、R-4.0.5互換のOML4Rサーバー・パッケージをインストール・ディレクトリ(/oml4rserver_install_dir/など)にダウンロードします。

    ノート:

    すべてのOML4Rコンポーネントで、同じインストール・ディレクトリを使用します。
  3. インストール・ディレクトリに移動し、ダウンロードしたファイルを解凍します。
    $ cd /oml4rserver_install_dir/
    $ unzip ore-server-platform-arch-version.zip

    ファイルの解凍時に/serverディレクトリが作成され、次のファイルがそこに抽出されます。

    /server/ORE_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREbase_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREcommon_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREdm_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREdplyr_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREds_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREeda_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREembed_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREgraphics_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREmodels_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREpredict_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREserver_version_R_arch-unknown-platform-gnu.tar.gz
    /server/OREstats_version_R_arch-unknown-platform-gnu.tar.gz
    /server/ORExml_version_R_arch-unknown-platform-gnu.tar.gz
    
  4. /oml4rserver_install_dir/serverディレクトリに移動し、次のコマンドを実行してOML4Rサーバー・パッケージおよびライブラリをインストールします。
    $ cd /oml4rserver_install_dir/server
    $ export R_LIBS_USER=$ORACLE_HOME/R/library
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" ORE_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREbase_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREcommon_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREdm_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREdplyr_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREds_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREeda_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREembed_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREgraphics_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREmodels_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREpredict_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREstats_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" OREserver_version_R_arch-unknown-platform-gnu.tar.gz
    $ R --vanilla CMD INSTALL --library="$R_LIBS_USER" ORExml_version_R_arch-unknown-platform-gnu.tar.gz
    $ cp -f ore.so $ORACLE_HOME/lib/
    $ cp -f librqe.so $ORACLE_HOME/lib/
OML4R Serverを初めてインストールする場合は、rqcfg.sqlスクリプトを実行します。すでにOML4Rサーバーをインストールしていて、Rバージョンをアップグレードする場合、rqcfg.sqlスクリプトを実行する必要はなく、実行しないでください。

4.3.2 rqcfg.sqlを使用したOML4Rサーバーのインストール

Oracle Database 19c以降のOML4Rサーバーのインストール手順。

Rをインストールした後、 /oml4rserver_install_dir/server/rqcfg.sqlスクリプトを実行し、次の表にある引数の値を指定することで、OML4Rサーバーをインストールします。

表4-3 rqcfg.sqlインストール・スクリプトへの引数

引数 説明

define permtbl

RQSYSスキーマの永続表領域を指定します。

define temptbl

一時表領域を指定します。

define orahome

ORACLE_HOMEディレクトリを指定します。

define rhome

R_HOMEディレクトリを指定します。

  1. オペレーティング・システム・プロンプトで、SQL*Plusを起動し、PDBに直接ログインしてrqcfg.sqlスクリプトを実行します。ログを取得するために、インストール・ステップを外部ファイルにスプールします。次の例では、PDB PDB1を使用し、スクリプト引数のサンプル値を指定します。
    $ sqlplus / as sysdba 
    SQL> spool install.txt 
    SQL> alter session set container=PDB1; 
    ...for your system and R version...
    SQL> define permtbl = SYSAUX
    SQL> define temptbl = TEMP
    SQL> define orahome = /u01/app/oracle/product/21.3.0.0/dbhome_1/R/server/rqcfg.sql
    SQL> define rhome = /usr/lib64/R
    SQL> @/oml4rserver_install_dir/server/rqcfg.sql &permtbl &temptbl &orahome
        &rhome

    install.txtファイルを開き、エラーが発生したかどうかを確認します。

  2. オペレーティング・システムのプロンプトで、ORACLE_HOME/binディレクトリの下にOREスクリプトを作成し、それを実行可能にします。次のコマンドを実行する前に、環境変数ORACLE_HOMEおよびR_HOMEが正しく設定されていることを確認する必要があります。
    $ cat >$ORACLE_HOME/bin/ORE <<EOF
    #!/bin/sh
    R_LIBS_USER="$ORACLE_HOME/R/library"
    export R_LIBS_USER
    $R_HOME/bin/R \$@
    EOF
    $ chmod +x $ORACLE_HOME/bin/ORE
  3. OML4R Supporting Packagesのインストールの説明に従って、システムに適したOML4R 2.0 Supporting Packagesをダウンロードしてインストールします

4.4 OML4Rサーバーのインストールの検証

server.shスクリプトを使用して、OML4RサーバーがOracle Databaseに対して正常にインストールされたことを検証するには、ログ・ファイルを表示します。

どのインストールでも、いくつかの関数を実行して、正常にインストールされたことを確認できます。

例4-1 サーバーのインストールを検証する実行例

まず、これらのコマンドをデータベース・サーバー上でRインスタンスから直接実行し、次にOML4Rクライアントから実行します。

OREスクリプトを使用してRを起動し、OREライブラリをロードします。

$ ORE
> library(ORE)

サーバーに接続します。この例では、ユーザーOMLUSERとして接続します。

ore.connect("OMLUSER", password="OMLUSERpsw", conn_string="", all=TRUE)

一部の関数を実行します。

## Is the OML4R client connected to the OML4R server?
## The output of this function should be TRUE.
ore.is.connected()

## List the available database tables.
ore.ls()

## Push an R dataframe to a database table.
df <- data.frame(a="abc",
                b=1.456,
                c=TRUE,
                d=as.integer(1))
of <- ore.push(df)

## Run the self-contained example code in the help files associated with the following functions.
## The examples should not return any errors.
example("ore.glm")       ## Builds an OML4R generalized linear model.
example("ore.stepwise")  ## Builds an OML4R stepwise least squares regression model.
example("ore.odmAI")     ## Builds an OML4SQL attribute importance model.
example("ore.doEval")    ## Runs an embedded R execution function.

4.5 マルチテナント環境へのOML4Rサーバーのインストール

マルチテナント環境へのOML4Rサーバーのインストールに関する情報。

OML4Rサーバーは、マルチテナント環境内の1つ以上のプラガブル・データベース(PDB)にインストールできます。OML4Rサーバーは、ルート・データベースではなくプラガブル・データベースにインストールする必要があります。

OML4Rサーバーの複数のインスタンスをマルチテナント・コンテナ・データベース(CDB)にインストールした場合に、1つのインスタンスをアンインストールしてその他を保持するには、部分アンインストールの実行で説明する部分アンインストールを実行できます。

関連項目: