Amazon Relational Database Service
ユーザーガイド (API バージョン 2014-10-31)

Oracle Java Virtual Machine

Amazon RDS は、JVM オプションを使用することで Oracle Java Virtual Machine (JVM) をサポートします。Oracle Java では、SQL スキーマと関数が提供され、Oracle データベース内で Oracle Java の機能を活用できます。詳細については、Oracle ドキュメントの「Oracle データベースの Java の活用」を参照してください。

Oracle データベースの以下のバージョンで Oracle JVM を使用できます。

  • Oracle 12c、12.2.0.1、すべてのバージョン

  • Oracle 12c、12.1.0.2.v13 以降

  • Oracle 11g、11.2.0.4.v17 以降

Amazon RDS の Java 実装のアクセス許可セットは制限されています。マスターユーザーには RDS_JAVA_ADMIN ロールが付与されます。このロールでは、JAVA_ADMIN ロールによって付与される特権のサブセットを付与します。RDS_JAVA_ADMIN ロールに付与される特権を一覧表示するには、DB インスタンスで次のクエリを実行します。

SELECT * FROM dba_java_policy WHERE grantee IN ('RDS_JAVA_ADMIN', 'PUBLIC') AND enabled = 'ENABLED' ORDER BY type_name, name, grantee;

Oracle JVM の前提条件

Oracle Java を使用するための前提条件は次のとおりです。

  • DB インスタンスは Virtual Private Cloud (VPC) 内にある必要があります。詳細については、「EC2-VPC または EC2-Classic のどちらのプラットフォームを使用するか判断する」を参照してください。

  • DB インスタンスが十分な大きさのクラスである必要があります。Oracle Java は、db.m1.small、db.t2.micro、または db.t2.small の DB インスタンスクラスではサポートされません。詳細については、「DB インスタンスクラスの選択」を参照してください。

  • DB インスタンスでは、[Auto minor version upgrade (マイナーバージョン自動アップグレード)] オプションが有効になっている必要があります。このオプションにより、DB インスタンスは、DB エンジンのマイナーバージョンアップグレードが利用可能になったときに、自動的に受信できるようになります。Amazon RDS は、このオプションを使用して DB インスタンスを最新の Oracle Patch Set Update (PSU) に更新します。特に、共通脆弱性評価システム (CVSS) のスコアが 9.0 以上、またはそのほかのセキュリティ脆弱性の報告によりセキュリティ脆弱性がある場合にはそのようにします。詳細については、「Oracle DB インスタンスの設定」を参照してください。

  • DB インスタンスがメジャーバージョン 11.2 で実行されている場合には、XMLDB オプションをインストールする必要があります。詳細については、「Oracle XML DB」を参照してください。

Oracle JVM のベストプラクティス

Oracle Java を使用するためのベストプラクティスは次のとおりです。

JVM オプションの追加

DB インスタンスに JVM オプションを追加する一般的な手順は以下のとおりです。

  1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

  2. オプショングループにオプションを追加します。

  3. オプショングループを DB インスタンスに関連付けます。

JVM オプションが追加されるあいだ、短い停止が発生します。オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに Oracle Java が使用可能となります。

JVM オプションを DB インスタンスに追加するには

  1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

    • [Engine (エンジン)] に、DB インスタンスによって使用される DB エンジン ([oracle-ee]、[oracle-se]、[oracle-se1]、または [oracle-se2]) を選択します。

    • [メジャーエンジンのバージョン] で、DB インスタンスのバージョンを選択します。

    詳細については、「オプショングループを作成する」を参照してください。

  2. オプショングループに [JVM] オプションを追加します。オプションの追加方法の詳細については、「オプショングループにオプションを追加する」を参照してください。

  3. 新規または既存の DB インスタンスに、DB オプショングループを適用します。

  4. ユーザーに必要なアクセス権限を付与します。

    Amazon RDS マスターユーザーには、JVM オプションを使用するアクセス許可がデフォルトで付与されています。他のユーザーがこれらのアクセス許可を必要とする場合は、SQL クライアントのマスターユーザーとして DB インスタンスに接続し、そのユーザーにアクセス許可を付与します。

    次の例では、JVM オプションを使用するアクセス許可を test_proc ユーザーに付与しています。

    create user test_proc identified by password; CALL dbms_java.grant_permission('TEST_PROC', 'oracle.aurora.security.JServerPermission', 'LoadClassInPackage.*', '');

    ユーザーにアクセス許可が付与されると、次のクエリで出力が返されます。

    select * from dba_java_policy where grantee='TEST_PROC';

    注記

    Oracle ユーザー名では大文字と小文字が区別され、通常すべて大文字が使用されます。

Oracle JVM オプションの削除

DB インスタンスから JVM オプションを削除できます。オプションが削除されるあいだ、短い停止が発生します。JVM オプションを削除した後に DB インスタンスを再起動する必要はありません。

警告

JVM オプションを削除すると、DB インスタンスがオプションの一部として有効であったデータ型を使用している場合、データ損失が発生する可能性があります。続行する前にデータをバックアップしてください。詳細については、「Amazon RDS DB インスタンスのバックアップと復元」を参照してください。

JVM オプションを DB インスタンスから削除するには、次のいずれかを実行します。

  • JVM オプションを所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「オプショングループからオプションを削除する」を参照してください。

  • DB インスタンスを修正して、JVM オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「Oracle データベースエンジンを実行する DB インスタンスの変更」を参照してください。