7.5 データベース・アップグレード後の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データセットを使用しています。