7 Oracle Machine Learning for Rの管理タスク

この章では、OML4Rの保守および最適化のための管理タスクについて説明します。

この章には次のトピックが含まれます:

7.1 非デフォルトのR_HOMEへのOracle R Distributionのインストール

Oracle R Distribution RPMは、LinuxでのデフォルトのR_HOMEである/usr/lib64/R以外のディレクトリにもインストールできます。

次の例で示す手順では、Oracle R Distribution 3.6.1 RPMをデフォルト以外の場所にインストールします。この場合は、以前にユーザーがインストールしたバージョンであるR-3.3.0を引き続き起動できます。

この例では、RPMをディレクトリ/opt/R361にインストールします。次のRPMがインストールされます。

R-3.6.1-1.el7.x86_64.rpm
R-core-3.6.1-1.el7.x86_64.rpm
R-devel-3.6.1-1.el7.x86_64.rpm
libRmath-3.6.1-1.el7.x86_64.rpm
libRmath-devel-3.6.1-1.el7.x86_64.rpm
libRmath-static-3.6.1-1.el7.x86_64.rpm
  1. RPMを含むディレクトリから、Oracle R Distribution 3.6.1 RPMを、--prefixフラグを使用して非デフォルトの場所にインストールします。

    # rpm -i *.rpm --prefix=/opt/R361

  2. R_HOMEをR-3.6.1の場所に設定し、$R_HOME/binPATHに追加します。

    # export R_HOME=/opt/R361/lib64/R

    # export PATH=$R_HOME/bin:$PATH

  3. 新しくインストールしたR-3.6.1を起動します。

    # R

    Oracle Distribution of R version 3.6.1 (--) -- "Shake and Throw"
    Copyright (C) The R Foundation for Statistical Computing
    Platform: x86_64-pc-linux-gnu (64-bit)...

以前のバージョンのRを引き続き使用する場合は、デフォルトのR実行可能ファイル/usr/bin/Rの名前を古いRバージョン(たとえば、/usr/bin/R-3.3.0)に変更します。

# mv /usr/bin/R /usr/bin/R-3.3.0

これで、R 3.3.0を起動できます。

$ R-3.3.0
Oracle Distribution of R version 3.3.0 (--) -- "Action of the Toes"
Copyright (C) The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)...

7.2 Oracle Machine Learning for Rのアップグレード

OML4Rを再インストールすることで、以前のリリースから現在のリリースにアップグレードできます。

ノート:

OML4R 1.1からのアップグレードはIBM AIXでサポートされていません。IBM AIXでOracle R Enterprise 1.1をアップグレードするには、まずOracle R Enterprise 1.1を(Rを含めて)アンインストールした後、新しいバージョンをダウンロードしてインストールします。

OML4Rをアップグレードしてデータを移行するには:

  1. インストールするOML4Rのリリースで必要となるRのバージョンがあることを確認します。

    Rの要件については、「オンプレミス・データベースの場合のOracle Machine Learning for Rのシステム要件」で構成要件およびサーバー・サポートの表を参照してください。

    Rをアップグレードする必要がない場合は、ステップ2に進みます。

    Rをアップグレードする必要がある場合は、次の手順を実行します。

    1. OML4Rユーザー・スキーマ、データ・ストア・オブジェクト、RスクリプトおよびRQSYSスキーマをバックアップします。

    2. Oracle R Distribution RPMまたはオープン・ソースRコンポーネントを削除します。

    3. 必要なRバージョンをインストールし、ステップ2に進みます。

  2. Oracle Databaseリリース12c以前のOML4Rサーバーをアップグレードするには、server.shまたはserver.batスクリプトを実行してインストールを実行します。

    スクリプトによって旧バージョンのOML4Rサーバーが検出された場合は、アップグレードするかどうか確認を求められます。Yesと入力して、アップグレードを開始します。(Noを入力すると、プロセスが中断されます。)

    詳細は、serverスクリプトについてを参照してください。

  3. Oracle Database 18c以降の場合にOML4Rサーバーをアップグレードするには、ソース・データベースに対応するrquncfg.sqlスクリプトを使用してOML4Rサーバーをアンインストールし、rqcfg.sqlを使用してOML4Rサーバーをターゲット・データベースに再インストールします。

    詳細は、「Oracle Database 19c以降の場合のOracle Machine Learning for Rサーバーのインストール」を参照してください。

  4. OML4Rクライアントをアップグレードするには、OML4RパッケージおよびSupporting Packagesを再インストールします。新しいパッケージをインストールする前に現在のパッケージをアンインストールする必要はありません。

    手順は、Oracle Machine Learning for Rクライアントのインストールを参照してください。

7.3 Oracle Machine Learning for Rデータの移行

OML4Rサーバーには、RQSYSスキーマおよびOML4Rユーザー・データをソース・データベースからターゲット・データベースに移行するために実行できる移行スクリプトが含まれています

ソースおよびターゲットでは、同じバージョンのOracle DatabaseおよびOML4Rサーバーが必要です。

このスクリプトを見つけるには、serverディレクトリに移動してmigrationサブディレクトリに変更します。

/oreserver_install_dir/server/migration

migrationサブディレクトリには、READMEおよび次のサブディレクトリが含まれています。

  • exp — RQSYSスキーマおよびすべてのOML4Rユーザー・データをダンプ・ファイルにエクスポートするためのスクリプトore_srcexport.plが含まれています。

  • imp — RQSYSスキーマおよびすべてのOML4Rユーザー・データをore_screxport.plで作成したダンプ・ファイルからインポートするためのスクリプトore_destimport.plが含まれています。

  • oreuser — 特定のOML4Rユーザーのデータをエクスポートおよびインポートするためのスクリプトが含まれています。

移行スクリプトの実行手順は、READMEに記載されています。

7.4 データベース・アップグレード後のOracle Machine Learning for Rの移行

Oracle Databaseのアップグレード後、OML4Rサーバー・コンポーネントを新しいORACLE_HOMEに移行する必要があります。

OML4Rサーバー・コンポーネントを新しいORACLE_HOMEに移行しない場合、OML4Rの埋込みRの実行を使用してR関数を実行すると、次のようなエラーが発生します。
ORA-28578: protocol error during callback from an external procedure

OML4Rサーバーのコンポーネントは次のとおりです。

  • Oracle DatabaseスキーマRQSYSおよびスキーマ関連オブジェクト

  • OML4RクライアントをサポートするOracle Database共有ライブラリ

  • Oracle DatabaseサーバーにインストールされているOML4RパッケージおよびSupporting Packages

データベースのアップグレード後、RQSYSスキーマおよび依存データベース・コンポーネントを新しいORACLE_HOMEに移行する必要があります。また、OML4Rパッケージも新しいデータベースの場所にインストールする必要があります。

これは、新しいORACLE_HOMEに対してOML4Rサーバーのインストール・スクリプトを実行することで簡単に行えます。これにより、OML4RメタデータにORACLE_HOMEへの新しいパスが作成されます。

次のステップは、Linuxシステムの初期データベース・インストールからデータベース・アップグレード後の新しいデータベースへのOML4R 1.5.1の移行を示しています。Oracle Databaseがリリース12.1.0.2からリリース12.2.0.1にアップグレードされました。Oracle R DistributionおよびOML4Rはアップグレードされず、新しいORACLE_HOMEへの移行のみが行われます。

警告:

Oracle Databaseリリース18c以降のデータベース・インスタンスに移行する場合は、rqcfg.sqlスクリプトを使用します。server.shまたはserver.batスクリプトは使用しないでください。
  1. OML4Rコンポーネントを移行する前に、RQSYSスキーマおよびOML4Rユーザー・スキーマをバックアップします。
  2. 新しいORACLE_HOMEに対してOML4Rサーバーのインストール・スクリプトを実行します。
    $ ./server.sh
  3. sysdbaユーザーとして、OML4R構成スクリプトが新しいORACLE_HOMEを指していることを確認します。
    SQL> SELECT * FROM sys.rq_config;
    NAME                                                       VALUE
    ——————-----  ————————————————————————--------------------------- 
    R_HOME       /usr/lib64/R  
    R_LIBS_USER  /u01/app/oracle/product/12.2.0.1/dbhome_1/R/library
    VERSION      1.5.1
    ...
  4. sysdbaユーザーとして、OML4R依存ライブラリore.soおよびlibrqe.soが新しいORACLE_HOMEにあることを確認します。
    SQL> SELECT library_name, file_spec FROM all_libraries WHERE owner = 'RQSYS';
    LIBRARY_NAME                                                FILE_SPEC
    ------------  -------------------------------------------------------
    RQ$LIB        /u01/app/oracle/product/12.2.0.1/dbhome_1/lib/ore.so
    RQELIB        /u01/app/oracle/product/12.2.0.1/dbhome_1/lib/librqe.so
  5. 最後に、OML4RクライアントをOML4Rサーバーに接続し、OML4Rの例(Oracle Machine Learning for Rユーザーズ・ガイド相関データおよびore.tableApply関数の使用トピックの例など)を実行して、アップグレードされたORACLE_HOMEに対するOML4Rのインストールをテストします。これらの例では、R Distributionに含まれているdatasetsパッケージにあるirisデータセットを使用しています。

7.5 Oracle Machine Learning for Rのアンインストール

OML4Rのアンインストールの手順

このトピックには次の項が含まれます:

7.5.1 Oracle Database 18c以降からのOML4Rサーバーのアンインストール

Oracle Databaseリリース18c以降からOML4Rをアンインストールする方法。

rquncfg.sqlスクリプトは、OML4Rに関連付けられたデータベース関数およびプロシージャをアンインストールします。$ORACLE_HOME/libOML4RライブラリはOracle Databaseに付属しているため、削除されません。$ORACLE_HOME/R/libraryOML4Rパッケージも削除されません。

OML4Rサーバー・コンポーネントをアンインストールするには、rquncfg.sqlスクリプトを実行します。

  1. ディレクトリを$ORACLE_HOME/R/serverに変更します。
    $ cd $ORACLE_HOME/R/server
  2. PDBを使用している場合は、PDBに接続します。
    $ ALTER SESSION SET CONTAINER = pdbname;
  3. SQLで、アンインストール・スクリプトを実行します。このスクリプトでは$ORACLE_HOMEの場所である単一の入力を指定します。次の例では、ORACLE_HOME環境変数の値は/u01/app/oracle/product/18.0.0/dbhome_1です。
    SQL> @rquncfg.sql
    Session altered.
    Enter value for 1: /u01/app/oracle/product/18.0.0/dbhome_1

7.5.2 Oracle Database 12c以前からのOML4Rサーバーのアンインストール

OML4Rサーバーをアンインストールするには、--uninstallオプションを指定してserverスクリプトを実行します。

完全アンインストールまたは部分アンインストールのいずれも実行できます。デフォルトでは、部分アンインストールが実行されます。

警告:

Oracle Machine Learning for RコンポーネントをOracle Databaseリリース18cまたはリリース19cからアンインストールするためにserver.shスクリプトを使用しないでください。これを行うと、重要なファイルがデータベースから削除されます。18c以降のデータベースでは、かわりにrquncfg.sqlスクリプトを使用します。

このトピックは次の項で構成されています。

7.5.2.1 部分アンインストールの実行

部分アンインストールでは、RQSYSメタデータおよびPL/SQLパッケージがデータベースから削除されますが、OML4RサーバーをサポートするライブラリおよびRパッケージはOracleホーム内に残ります。

OML4Rサーバーのサポートが複数のデータベース・インスタンスで同一のOracleホームにインストールされている場合、またはプラガブル・データベース(PDB)にインストールされている場合、部分アンインストールでは、指定したデータベースからOML4Rサーバー・サポートが削除され、他のデータベースに影響はありません。デフォルトでは、serverスクリプトにより部分アンインストールが実行されます。

ノート:

OML4Rサーバーのサポートを共有するインスタンスまたはPDBの1つに対して誤って完全アンインストールを実行した場合、他の共有インスタンスまたはPDBでもOML4Rサーバーがサポートされなくなります。serverスクリプトを再実行して、共有インスタンスまたはPDBの1つでインストールを実行すると、Oracleホーム内のOML4Rサーバー・サポートを簡単にリストアできます。

-uオプションを指定してserverスクリプトを実行すると、部分アンインストールが実行されます。--keepオプションを指定すると、部分アンインストールを明示的にリクエストできます。次のコマンドはすべて、OML4Rサーバーの部分アンインストールを実行します。

./server.sh  --uninstall  
./server.sh  -u
./server.sh  -u --keep
./server.sh  --uninstall  --keep
7.5.2.2 完全アンインストールの実行

完全アンインストールでは、RQSYSスキーマ・メタデータとPL/SQLコードがデータベースから削除され、すべてのOML4Rサーバー・ライブラリとRパッケージがOracleホームから削除されます。

次のコマンドはそれぞれ、OML4Rサーバーの完全アンインストールを実行します。

./server.sh --uninstall --full  
./server.sh -u  -full

ノート:

共有Oracleホームで誤って完全アンインストールを実行した場合は、serverスクリプトを再実行して、OML4Rサーバー・サポートを再インストールしてください。詳細は、「部分アンインストールの実行」を参照してください。

7.5.3 OML4Rクライアントのアンインストール

OML4Rクライアントのアンインストールの手順。

OML4RパッケージおよびSupporting Packagesをアンインストールするには、Rを起動し、次の例に示すコマンドを入力します。

例7-1 OML4Rパッケージのアンインストール用のRコマンド

remove.packages("arules")
remove.packages("DBI")
remove.packages("Cairo")
remove.packages("ORE")
remove.packages("OREbase")
remove.packages("OREcommon")
remove.packages("OREdm")
remove.packages("OREdplyr")
remove.packages("OREds")
remove.packages("OREeda")
remove.packages("OREembed")
remove.packages("OREgraphics")
remove.packages("OREmodels")
remove.packages("OREpredict")
remove.packages("OREstats")
remove.packages("ORExml")
remove.packages("png")
remove.packages("randomForest")
remove.packages("ROracle")
remove.packages("statmod")

7.6 LinuxまたはUNIXへの追加のRパッケージのインストール

LinuxおよびUNIXプラットフォームでは、OML4RサーバーのインストールにOREスクリプトが用意されており、これをオペレーティング・システムのプロンプトから実行して追加のRパッケージをインストールできます。

OREスクリプトは、Rのインストール・コマンド、R CMD INSTALLのラッパーです。

デフォルトでは、Rパッケージは/usr/lib64/R/libraryにインストールされます。OML4Rサーバーのインストールでは、OREスクリプトが提供されます。Rパッケージをインストールするには、また、Rを起動するには、このスクリプトをオペレーティング・システムのシェルから実行します。OREスクリプトは、デフォルトのRスクリプトのラッパー、R実行可能ファイルのシェル・ラッパーです。これを使用して、Rを起動し、バッチ・スクリプトを実行し、Rパッケージを構築またはインストールできます。デフォルトのRスクリプトとは異なり、OREスクリプトでは、oracleユーザーが書込み可能ですべてのOML4Rユーザーがアクセス可能な場所($ORACLE_HOME/R/library)にパッケージがインストールされます。OREスクリプトでインストールされるすべてのRパッケージは、この場所にインストールされます。

スクリプトを実行するには:

ORE CMD INSTALL R_package_name

7.7 Oracle Machine Learning for Rのデータベース・ユーザーの作成

Database 18c以降では、rquser.sqlスクリプトが付属しており、$ORACLE_HOME/R/serverディレクトリにあります。このスクリプトによって新しいOML4Rユーザーが作成され、同じディレクトリ内のスクリプトrqgrant.sqlによって、必要な権限がその新しいユーザーに適用されます。Oracle Database 12c以前では、serverスクリプトのインストール・プロセスによって、OML4Rのユーザーが存在しない場合はそれが自動的に作成または構成されます。

例7-2 OML4Rユーザーの作成

./server.sh
.
.

Choosing ORE user
  ORE user to use [list]:

[Enter]を押すと、使用可能なユーザーのリストが表示されます。

BI
HR
IX
OE
SCOTT
SH
  ORE user to use [list]: ruser2
.
.

存在するユーザーを選択すると、OML4Rをサポートするようにそのユーザーが構成されます。存在しないユーザーを指定すると、ユーザーが作成されます。

例7-3 SQL*PlusでのOML4Rユーザーの作成

SQL*PlusでOML4Rユーザーを作成するには、次のステップを実行します。

  1. システム権限でログインします。

    SQLPLUS / AS SYSDBA
    
  2. 次のような文を実行して、ユーザーを作成します。

    CREATE USER oml_username IDENTIFIED BY password
    DEFAULT TABLESPACE default_tablepace_name
    TEMPORARY TABLESPACE temp_tablespace_name 
    QUOTA UNLIMITED ON default_tablespace_name;

    関連項目:

    ユーザーの作成の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  3. 必要な権限を付与します。

    GRANT CREATE SESSION,
          CREATE TABLE,
          CREATE VIEW,
          CREATE PROCEDURE,
          CREATE MINING MODEL
    TO oml_username; 

    関連項目:

    ユーザーへの権限付与の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

7.7.1 RQADMINロールについて

serverスクリプトのインストール・プロセスでは、RQADMINという名前のデータベース・ロールが作成されます。

OML4RユーザーにRQADMINロールが付与されると、そのユーザーは埋込みRの実行用のRスクリプトを作成および削除できます。デフォルトでは、serverスクリプトによりOML4RユーザーにRQADMINロールは付与されません

ノート:

すべてのOML4Rユーザーは埋込みRを実行できますが、Rスクリプトを作成および削除できるのはRQADMINロールを持つOML4Rユーザーのみです。

SQL*PlusでRQADMINロールを付与する場合は、システム権限でログインし、次のような文を実行します。

SQLPLUS / AS SYSDBA
GRANT RQADMIN TO oml_username;

注意:

RQADMINロールを付与する場合は注意が必要です。このロールは、OML4R管理権限を必要とするユーザーにのみ付与してください。

7.8 Windowsでの環境変数の作成および変更

PATHORACLE_SIDおよびORACLE_HOME環境変数が存在しない場合は、作成する必要があります。

図7-2に示されている値を割り当てます。Windowsシステムでは、環境変数を作成または変更するには管理者である必要があります。

Windowsで環境変数を作成または変更するには 10:

    1. Windowsタスクバーで、「Windows」アイコンを右クリックして「システム」を選択します。

    2. 「設定」ウィンドウの「関連設定」で、「システムの詳細設定」をクリックします。

      図7-1 Windowsのシステムの詳細設定

      図7-1の説明は次にあります
      「図7-1 Windowsのシステムの詳細設定」の説明
    3. 「詳細設定」タブで、「環境変数」をクリックします。

      図7-2 Windowsの「環境変数」ダイアログ

      図7-2の説明が続きます
      「図7-2 Windowsの「環境変数」ダイアログ」の説明
    4. 「新規」をクリックして、新しい環境変数を作成します。「編集」をクリックして、既存の環境変数を変更します。

      ノート:

      新規をクリックして、ユーザー変数またはシステム変数を変更します。Windowsサーバーにアクセスしているユーザーが、同じバージョンのRまたはOracle Database(あるいはその両方)を使用する場合は、システム変数を変更します。Windowsサーバーにアクセスしているユーザーが、異なるバージョンのRまたはOracle Database(あるいはその両方)を使用する場合は、ユーザー変数を変更します。
    5. 環境変数を作成または変更した後、「適用」をクリックし、「OK」をクリックして変更を有効にします。

ノート:

環境変数を作成するグラフィカル・ユーザー・インタフェースは、Windowsのバージョンによってわずかに異なる場合があります。

7.9 Oracle Machine Learning for R接続のOracleウォレットの作成

Oracleウォレットは、Oracle Databaseのセキュリティ資格証明書の格納に使用する、パスワードで保護されたコンテナです。

ウォレットを使用することで、埋込みRスクリプトで接続の詳細を指定するためのセキュアなメカニズムが得られます。

OML4R接続のウォレットを作成するには:

  1. Oracle Wallet Managerを起動します。

    • (LinuxおよびUNIXの場合)コマンド・ラインでowmと入力します。

    • (Windowsの場合)「スタート」「プログラム」「Oracle-HOME_NAME」「統合管理ツール」「Wallet Manager」の順に選択します。

  2. ウォレットを作成するには、ご使用のサポートされているOracle Databaseのドキュメントの手順に従います。

    1. Oracle Database 12c以降の場合は、Oracle Help CenterのOracle Database Documentationページにアクセスしてください。
    2. Oracle Databaseのバージョンを選択します。
    3. 「Topics」セクションで、「Security」を選択します。
    4. 「Centralized User Management」セクションで、Oracle Database Enterprise User Security Administrator's Guideを選択します。
    5. Oracle Wallet Managerの使用方法の章を参照してください。

    Oracle Database 11c、リリース11.2.0.4の場合は、Oracle Database Advanced SecurityガイドOracle Wallet Managerの使用方法を参照してください。

  3. tnsnames.oraで、OML4Rデータベース用の接続文字列を探します。次に例を示します。

    mydb_test =
          (DESCRIPTION =
             (ADDRESS =
                (PROTOCOL = TCP)
                (HOST = myserver)
                (PORT = 1521)
             )
             (CONNECT_DATA = (sid=ORCL))
          )
    
  4. ウォレットに接続情報を指定します。ステップ2で参照されている、Oracle Databaseのセキュリティに関するドキュメントのステップに従います。

  5. ウォレットを構成した後は、接続識別子を指定するだけで、OML4Rサーバーのデータベースに接続できます。次に例を示します。

    ore.connect(conn_string = "mydb_test", all = TRUE)
    

    ore.connectについてさらに学習するには、次のようにRヘルプ・コマンドを使用します。

    help(ore.connect)

外部プロシージャで使用するOracle Walletを構成するには

  1. ウォレット・ストアを作成します。
    $ mkstore -create -wrl /home/oracle/wallet

    プロンプトが表示されたら、ユーザー名とパスワードを割り当てます。この例では、データベース・ユーザーOML_USERとパスワードapasswordおよびPDB ORCLを使用します。

  2. ウォレット資格証明を割り当てます。
    $ mkstore -wrl /home/oracle/wallet -createCredential ORCL oml_user
     apassword
  3. SQL*Plusで、ウォレットを使用してOML_USERとしてログインします。
    $ sqlplus /@ORCL
  4. ユーザーを表示します。
    SQL> show user;
    USER is "OML_USER"

例7-4 ウォレット接続のテスト

この例では、OML4Rセッションのウォレット接続で埋込みRの実行を使用してテストします。この例では、R Distributionに含まれているdatasetsパッケージにあるirisデータセットを使用します。

ore.doEval(function(){print("TEST")})

TEST_WALLET_DF
 function() {
                 return(as.data.frame(length(iris)))
            }

ore.scriptLoad("TEST_WALLET_DF")

ore.doEval(FUN.NAME="TEST_WALLET_DF")
   length(iris)

この例のリスト

> ore.doEval(function(){print("TEST")})
[1] "TEST"
> 
> TEST_WALLET_DF
  function() {
                 return(as.data.frame(length(iris)))
             }
> 
> ore.scriptLoad("TEST_WALLET_DF")
> 
> ore.doEval(FUN.NAME="TEST_WALLET_DF")
>    length(iris)
1 5

ノート:

Oracle Databaseは再帰的な外部プロシージャをサポートしていないため、埋込みRの実行では、データベース接続を作成するR関数は失敗します。埋込みRの実行関数をデータベースに接続するには、ore.connectという特別な制御引数を使用します。

7.10 埋込みRが使用するメモリーの制御

埋込みRの実行が使用するメモリーの制御方法。

Rのgcメカニズムで自動的に管理されるヒープ・メモリー(R用語でのベクトルとコンス)を制限することによって、埋込みRの実行で使用されるメモリーを制御できます。データベースでヒープ・メモリーのサイズを制限するには、sys.rqconfigsetユーティリティを使用します。sys.rqconfigsetのキーワード引数を次の表に示します。

表7-1 SYS.RQCONFIGSETのキーワード引数

キーワード デフォルト 説明

MIN_VSIZE

32M

最小のRベクター・ヒープ・メモリー

MAX_VSIZE

4G

最大のRベクター・ヒープ・メモリー

MIN_NSIZE

1M

Rコンス・セルの最小値

MAX_NSIZE

20M

Rコンス・セルの最大値

例7-5 埋込みRが使用するメモリーの制御用のSQLコマンド

-- Set the minimum R vector heap memory to 20M
EXEC sys.rqconfigset('MIN_VSIZE', '20M');

-- Set the maximum R vector heap memory to 100M
EXEC sys.rqconfigset('MAX_VSIZE', '100M')

-- Set the minimum number of R cons cells to 500x1024
EXEC sys.rqconfigset('MIN_NSIZE', '500K');

-- Set the maximum number of R cons cells to 10x10x1024
EXEC sys.rqconfigset('MAX_NSIZE', '10M');

-- Set maximum vector heap memory and maximum cons cells to unlimited
EXEC sys.rqconfigset('MAX_VSIZE', NULL); 
EXEC sys.rqconfigset('MAX_NSIZE', NULL);

ノート:

sys.rqconfigsetプロシージャでは、Calloc、Realloc、callocまたはmallocによって割り当てられる場合のあるCタイプのメモリーを制御できません。Cタイプのメモリーは、Cで実装されるRの関数により使用される、一時的な値を保存するために作成されます。通常、Cタイプのメモリーのサイズは限定的であるため、Rのメモリー使用量に著しく影響することはありません。

sys.rqconfigsetプロシージャは、sys.rq_configと呼ばれる構成表で設定を編集します。OML4Rの様々な環境設定を確認するためにこの表の内容を参照できます。sys.rq_configに格納された設定で、埋込みRのメモリーが制限されます。必要な場合はこれらのメモリー制限を変更できますが、ほとんどの場合、sys.rq_configの値は変更しないでください。

次の問合せは、sys.rq_configに格納されているサンプルの値を示します。

SQL> SELECT * FROM sys.rq_config;
 
NAME                      VALUE
------------------------- -----------------------------------------------------
R_HOME                    /usr/lib64/R
R_LIBS_USER               /dbhome_1/R/library
VERSION                   1.5.1
MIN_VSIZE                 32M
MAX_VSIZE                 4G
MIN_NSIZE                 2M
MAX_NSIZE                 20M