3.4.1 オンプレミスOracle Database 19c用のLinux向けOML4Pyサーバーのインストール

オンプレミスOracle Database 19c用にLinux向けOML4Pyサーバーをインストールする手順です。

オンプレミスOracleデータベース用にLinux向けOML4Pyサーバーをインストールするには、サーバー・インストールPerlスクリプトを実行します。

前提条件

オンプレミスOML4Pyサーバーをインストールするには、次が必要です。
  • インターネットへの接続。
  • Python 3.9.5。Python 3.9.5のインストール手順は、「オンプレミス・データベース用のPython for Linuxの構築およびインストール」を参照してください。
  • OML4Pyサポート・パッケージ。必要なサポート・パッケージのインストール手順は、「オンプレミス・データベース用のLinuxに必要なサポート・パッケージのインストール」を参照してください。
  • システムにインストールされているPerl 5.8以降。

    ノート:

    Perlには、perl-Envパッケージが存在する必要があります。
  • perl-Envパッケージがシステムに存在するかどうかを確認するには、次のコマンドを入力します。
    rpm -qa perl-Env

    インストールされている場合、戻り値にはシステムにインストールされているperl-Env RPMのバージョンが含まれます。

    rpm -qa perl-Env
    perl-Env-1.04-2.el7.noarch

    perl-Envがシステムにインストールされていない場合、戻り値はないので、rootまたはsudoとして次のコマンドを使用してパッケージをインストールできます。

    yum install perl-Env
  • サーバー・コンポーネントをダウンロードしてインストールするディレクトリに対する書込み権限。

サーバー・インストール・ファイルのダウンロードおよび抽出

オンプレミスOML4Pyサーバーのインストール・ファイルをダウンロードし、その内容を抽出します。

  1. oml4pyディレクトリが$ORACLE_HOMEディレクトリに存在しない場合は作成します。
    mkdir $ORACLE_HOME/oml4py
  2. システムのインストール・ファイルをダウンロードします。
    1. Oracle Technology Networkの「Oracle Machine Learning for Python Downloads」ページにアクセスします。
    2. ライセンス契約に同意し、Oracle Machine Learning for Python Downloads (v1.0)を選択します。
    3. Oracle Machine Learning for Python Server Install for Oracle Database on Linux 64 bitを選択します。
    4. ファイルを$ORACLE_HOME/oml4pyディレクトリに保存します。
  3. インストール・ファイルを$ORACLE_HOME/oml4pyディレクトリに抽出するには、次のコマンドを使用します。
    unzip oml4py-server-linux-x86_64-1.0.zip -d $ORACLE_HOME/oml4py

    ファイルは、$ORACLE_HOME/oml4py/serverサブディレクトリに抽出されます。

サーバー・インストールPerlスクリプトのオプションの引数の表示

サーバー・インストール・スクリプトのオプションの引数を表示するには、ディレクトリを$ORACLE_HOME/oml4pyディレクトリに変更します。

次のコマンドを使用して、使用可能なインストール・オプションを表示します。

perl -Iserver server/server.pl --help

次が表示されます。

Oracle Machine Learning for Python 1.0 Server.

Copyright (c) 2018, 2022 Oracle and/or its affiliates. All rights reserved.

Usage: server.pl [OPTION]...
Install, upgrade, or uninstall OML4P Server.

  -i, --install         install or upgrade (default)
  -u, --uninstall       uninstall
  -y                    never prompt
  --ask                 interactive mode (default)
  --pdb NAME            PDB name
  --perm PERM           permanent tablespace to use for PYQSYS
  --temp TEMP           temporary tablespace to use for PYQSYS
  --no-db               do not configure the database; only install the
                        oml module and libraries associated with
                        Embedded Python Execution
  --no-embed            do not install the Embedded Python Execution
                        component
  --no-automl           do not install the AutoML metamodels

デフォルトでは、インストール・スクリプトによって、Embedded Python ExecutionコンポーネントとAutoMLコンポーネントの両方がインストールされます。これらのコンポーネントをインストールしない場合は、--no-embedフラグまたは--no-automlフラグ(あるいはその両方)を使用できます。

Perlコマンドで永続表領域または一時表領域を指定しないと、インストール・スクリプトからその入力を求められます。

データベース構成なしでomlモジュールおよびEmbedded Python Executionライブラリのインストールのみを行う場合は、--no-dbフラグを使用します。--no-dbフラグは、Oracle RACなどの複数のノードを持つデータベースにOML4Pyをインストールする場合に使用します。OML4Pyサーバーには最初のノードで完全なデータベース構成が必要ですが、omlモジュールおよびEmbedded Python Executionライブラリは各ノードにインストールする必要があります。

サーバー・インストールPerlスクリプトの実行

インストールPerlスクリプトにより、PYQSYSスキーマおよびユーザーが作成されます。OML4Pyデータベース・オブジェクト、表およびその他のサーバー要素を格納するために、指定した永続表領域および一時表領域が使用されます。PYQSYSユーザーは、PYQSYSスキーマに格納されているシステム・オブジェクトを保護するためにロックされます。

デフォルトでは、インストールPerlスクリプトは対話モードで実行され、Embedded Python Executionコンポーネントがインストールされます。

  1. インストールされたomlモジュールがPythonで検出できるように、サーバー・インストール・スクリプトを実行する前にPYTHONPATH環境変数を設定する必要があります。
    export PYTHONPATH=$ORACLE_HOME/oml4py/modules
  2. $ORACLE_HOME/oml4pyディレクトリから、サーバー・インストール・スクリプトを実行します。次のコマンドは、スクリプトを対話モードで実行します。
    $ perl -Iserver server/server.pl

    スクリプトから入力を求められたら、PYQSYSユーザーの一時表領域および永続表領域を入力します。

  3. インストール・スクリプトにProceed?と表示されたら、yまたはyesと入力します。正常なインストールの出力は次のとおりです。
    bash-4.4$ perl -Iserver server/server.pl
    
    Oracle Machine Learning for Python 1.0 Server.
    
    Copyright (c) 2018, 2022 Oracle and/or its affiliates. All rights reserved.
    
    Checking platform .................. Pass
    Checking ORACLE_HOME ............... Pass
    Checking ORACLE_SID ................ Pass
    Checking sqlplus ................... Pass
    Checking ORACLE instance ........... Pass
    Checking CDB/PDB ................... Fail
      ERROR: cannot install OML4P in a root container
      PDB to use for OML4P installation [list]:
    ORCLPDB
      PDB to use for OML4P installation [list]: ORCLPDB
    Checking CDB/PDB ................... Pass
    Checking OML4P Server .............. Pass
    Checking Python .................... Pass
    Checking module dependencies ....... Pass
    Checking Python libraries .......... Pass
    Checking OML4P version ............. Pass
    
    Choosing PYQSYS tablespaces
      PERMANENT tablespace to use for PYQSYS [list]:
    SYSTEM
    USERS
      PERMANENT tablespace to use for PYQSYS [list]: SYSTEM
      TEMPORARY tablespace to use for PYQSYS [list]: TEMP
    
    Current configuration
      ORACLE_HOME ...................... /u01/app/oracle/product/19.3/dbhome_1
      ORACLE_SID ....................... orcl
      PDB .............................. ORCLPDB
      Python Version ................... 3.9.5
      PYTHONHOME ....................... /u01/app/oracle/product/19.3/dbhome_1/python
    
      Existing OML4P data and code ..... None
      Existing OML4P AutoML component .. None
      Existing OML4P embed component ... None
      Existing OML4P module version .... None
    
      PYQSYS PERMANENT tablespace ...... SYSTEM
      PYQSYS TEMPORARY tablespace ...... TEMP
    
      Operation ........................ Install/Upgrade
    
    Proceed? [yes]yes
    
    Copying embedded python libraries ... Pass
    Processing ./server/oml-1.0-cp39-cp39-linux_x86_64.whl
    Installing collected packages: oml
    Successfully installed oml-1.0
    Configuring the database ............ Pass
    
    Done

    OML4Pyユーザーは、機械学習アクティビティを実行する権限を持つデータベース・ユーザー・アカウントです。Oracle Machine Learning for Python用のユーザーを作成する方法の詳細は、「オンプレミスOracle Database用の新しいユーザーの作成」をクリックします

サーバーのインストールの確認

次のようにして、oracleユーザーとしてOML4Pyのデータベース構成を確認できます。
  1. OML4Pyサーバー・データベース・インスタンスで、PDBにログインするOMLユーザー(この例ではPDB1)としてSQL*Plusを起動します。
    $ sqlplus oml_user/oml_user_password$PDB1
  2. 次のコマンドを実行します。
    SELECT * FROM sys.pyq_config;
    想定される出力は次のとおりです。
    bash-4.4$ sqlplus / as sysdba;
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jan 31 12:49:34 2022
    Version 19.3.0.0.0
    
    Copyright (c) 1982, 2019, Oracle. All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    
    SQL> alter session set container=PDB1;
    
    Session altered.
    
    SQL> select * from sys.pyq_config;
    
    NAME
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    PYTHONHOME
    /u01/app/oracle/product/19.3/dbhome_1/python
    
    PYTHONPATH
    /u01/app/oracle/product/19.3/dbhome_1/oml4py/modules
    
    VERSION
    1.0
    
    
    NAME
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    PLATFORM
    ODB
    
    DSWLIST
    oml.*;pandas.*;numpy.*;matplotlib.*;sklearn.*
  3. オンプレミス・データベース用のOML4Pyサーバーのインストールを確認するには、「オンプレミス・データベース用のOML4Pyサーバー・インストールの確認」を参照してください。