Amazon RDS for Oracle での Oracle リポジトリ作成ユーティリティの使用 - Amazon Relational Database Service

Amazon RDS for Oracle での Oracle リポジトリ作成ユーティリティの使用

Amazon RDS を使用すると、Oracle Fusion Middleware コンポーネントをサポートするスキーマを保持する RDS for Oracle DB インスタンスをホストできます。Fusion Middleware コンポーネントを使用する前に、データベースでそれらのコンポーネント用のスキーマを作成してデータを入力します。スキーマの作成とデータ入力は、Oracle Repository Creation Utility (RCU) を使用して行います。

RCU でサポートされているバージョンとライセンスオプション

Amazon RDS では、Oracle Repository Creation Utility (RCU) バージョン 12c のみサポートされています。RCU は以下の構成で使用できます。

  • Oracle データベース 21c を使用する RCU 12c

  • Oracle データベース 19c を使用する RCU 12c

  • Oracle Database 12c Release 2 (12.2) を使用する RCU 12c

  • 12.1.0.2.v4 以降を使用する、Oracle Database 12c Release 1 (12.1) を使用する RCU 12c

RCU を使用する前に、以下を実行します。

  • Oracle Fusion Midleware のライセンスを取得する。

  • リポジトリをホストする Oracle データベースの Oracle ライセンスガイドラインに従う。詳細については、Oracle ドキュメントの「Oracle Fusion Middleware Licensing Information User Manual」を参照してください。

Fusion MiddleWare は、Oracle Database Enterprise Edition および Standard Edition 2 上のリポジトリをサポートしています。Oracle では、オンラインインデックスの再構築を必要とするパーティション化とインストールが必要な本稼働インストールには、Enterprise Edition を推奨しています。

RDS for Oracle DB インスタンスを作成する前に、デプロイするコンポーネントをサポートするために必要な Oracle データベースバージョンを確認します。デプロイする Fusion Middleware コンポーネントおよびバージョンの要件を確認するには、認定マトリックスを使用します。詳細については、Oracle ドキュメントの「Oracle Fusion Middleware Supported System Configurations」を参照してください。

Amazon RDS では、必要に応じて Oracle データベースバージョンのアップグレードがサポートされます。詳細については、「DB インスタンスのエンジンバージョンのアップグレード」を参照してください。

RCU の要件と制限

RCU を使用するには、Amazon VPC が必要です。Amazon RDS DB インスタンスは、パブリックインターネットではなく、Fusion Middleware コンポーネントでのみ使用できるようにします。そのため、Amazon RDS DB インスタンスをプライベートサブネットでホストして、セキュリティを強化します。RDS for Oracle DB インスタンスで使用する Amazon VPC を作成する方法については、「Oracle データベース用の VPC の作成」を参照してください。

RDS for Oracle DB インスタンスも必要です。Fusion Middleware メタデータで使用する RDS for Oracle DB インスタンスを作成する方法については、「Oracle DB インスタンスの作成」を参照してください。

どの Fusion Middleware コンポーネントのスキーマでも Amazon RDS DB インスタンスに保存できます。次のスキーマは、正しくインストールされることが検証されています。

  • Analytics (ACTIVITIES)

  • Audit Services (IAU)

  • Audit Services Append (IAU_APPEND)

  • Audit Services Viewer (IAU_VIEWER)

  • Discussions (DISCUSSIONS)

  • Metadata Services (MDS)

  • Oracle Business Intelligence (BIPLATFORM)

  • Oracle Platform Security Services (OPSS)

  • Portal and Services (WEBCENTER)

  • Portlet Producers (PORTLET)

  • Service Table (STB)

  • SOA Infrastructure (SOAINFRA)

  • User Messaging Service (UCSUMS)

  • WebLogic Services (WLS)

RCU を使用するガイドライン

このシナリオで DB インスタンスを使用する場合の推奨事項を以下に示します。

  • マルチ AZ は、本稼働ワークロードに使用することをお勧めします。複数のアベイラビリティーゾーンの使用の詳細については、「リージョン、アベイラビリティーゾーン、および Local Zones」を参照してください。

  • セキュリティを高めるため、Oracle では、Transparent Data Encryption (TDE) を使用して保管時のデータを暗号化することを推奨しています。高度なセキュリティオプションを含む Enterprise Edition のライセンスをお持ちの場合、TDE オプションを使用して保管時の暗号化を有効にできます。詳細については、「Oracle Transparent Data Encryption」を参照してください。

    Amazon RDS では、すべてのデータベースエディション用の保管時の暗号化オプションも用意しています。詳細については、「Amazon RDS リソースの暗号化」を参照してください。

  • アプリケーションサーバーと Amazon RDS DB インスタンスの間の通信が許可されるように、VPC セキュリティグループを設定します。Fusion Middleware コンポーネントをホストするアプリケーションサーバーは、Amazon EC2 またはオンプレミスにすることができます。

RCU の実行

Fusion Middleware コンポーネントをサポートするためのスキーマを作成し、データを入力するには、Oracle Repository Creation Utility (RCU) を使用します。RCU は、さまざまな方法で実行できます。

コマンドラインを使用した 1 ステップでの RCU の実行

データを入力する前にスキーマを編集する必要がない場合は、単一ステップで RCU を実行できます。それ以外の場合、複数ステップでの RCU の実行について次のセクションを参照してください。

コマンドラインパラメータ -silent を使用して、RCU をサイレントモードで実行できます。サイレントモードで RCU を実行すると、パスワードを含むテキストファイルを作成することで、コマンドラインにパスワードを入力する必要がなくなります。1 行目に dbUser のパスワードを含み、それ以降の行に各コンポーネントのパスワードを含むテキストファイルを作成します。RCU コマンドの最後のパラメータとして、パスワードファイルの名前を指定します。

次の例では、SOA Infrastructure コンポーネント (およびその依存関係) のスキーマを単一ステップで作成し、データを入力します。

Linux、macOS、Unix の場合:

export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw export JAVA_HOME=/usr/java/jdk1.8.0_65 ${ORACLE_HOME}/oracle_common/bin/rcu \ -silent \ -createRepository \ -connectString ${dbhost}:${dbport}:${dbname} \ -dbUser ${dbuser} \ -dbRole Normal \ -honorOMF \ -schemaPrefix ${SCHEMA_PREFIX} \ -component MDS \ -component STB \ -component OPSS \ -component IAU \ -component IAU_APPEND \ -component IAU_VIEWER \ -component UCSUMS \ -component WLS \ -component SOAINFRA \ -f < /tmp/passwordfile.txt

詳細については、Oracle ドキュメントの「Running Repository Creation Utility from the Command Line」を参照してください。

コマンドラインを使用した複数ステップでの RCU の実行

スキーマスクリプトを手動で編集するには、次の複数のステップで RCU を実行します。

  1. -generateScript コマンドラインパラメータを使用して [Prepare Scripts for System Load] モードで RCU を実行し、スキーマのスクリプトを作成します。

  2. 手動で編集し、生成したスクリプト script_systemLoad.sql を実行します。

  3. -dataLoad コマンドラインパラメータを使用して [Perform Product Load] モードでもう一度 RCU を実行し、スキーマにデータを入力します。

  4. 生成したクリーンアップのスクリプト script_postDataLoad.sql を実行します。

RCU をサイレントモードで実行するには、コマンドラインパラメータ -silent を指定します。サイレントモードで RCU を実行すると、パスワードを含むテキストファイルを作成することで、コマンドラインにパスワードを入力する必要がなくなります。1 行目に dbUser のパスワードを含み、それ以降の行に各コンポーネントのパスワードを含むテキストファイルを作成します。RCU コマンドの最後のパラメータとして、パスワードファイルの名前を指定します。

次の例では、SOA Infrastructure コンポーネントおよびその依存関係のスキーマスクリプトを作成します。

Linux、macOS、Unix の場合:

export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw export JAVA_HOME=/usr/java/jdk1.8.0_65 ${ORACLE_HOME}/oracle_common/bin/rcu \ -silent \ -generateScript \ -connectString ${dbhost}:${dbport}:${dbname} \ -dbUser ${dbuser} \ -dbRole Normal \ -honorOMF \ [-encryptTablespace true] \ -schemaPrefix ${SCHEMA_PREFIX} \ -component MDS \ -component STB \ -component OPSS \ -component IAU \ -component IAU_APPEND \ -component IAU_VIEWER \ -component UCSUMS \ -component WLS \ -component SOAINFRA \ -scriptLocation /tmp/rcuscripts \ -f < /tmp/passwordfile.txt

ここでは、生成されたスクリプトを編集し、Oracle DB インスタンスに接続してスクリプトを実行できます。生成したスクリプトの名前は、script_systemLoad.sql です。Oracle DB インスタンスへの接続の詳細については、「ステップ 3: SQL クライアントを Oracle DB インスタンスに接続する」を参照してください。

次の例では、SOA Infrastructure コンポーネント (およびその依存関係) のスキーマにデータを入力します。

Linux、macOS、Unix の場合:

export JAVA_HOME=/usr/java/jdk1.8.0_65 ${ORACLE_HOME}/oracle_common/bin/rcu \ -silent \ -dataLoad \ -connectString ${dbhost}:${dbport}:${dbname} \ -dbUser ${dbuser} \ -dbRole Normal \ -honorOMF \ -schemaPrefix ${SCHEMA_PREFIX} \ -component MDS \ -component STB \ -component OPSS \ -component IAU \ -component IAU_APPEND \ -component IAU_VIEWER \ -component UCSUMS \ -component WLS \ -component SOAINFRA \ -f < /tmp/passwordfile.txt

終了するには、Oracle DB インスタンスに接続し、クリーンアップスクリプトを実行します。生成したスクリプトの名前は、script_postDataLoad.sql です。

詳細については、Oracle ドキュメントの「Running Repository Creation Utility from the Command Line」を参照してください。

インタラクティブモードでの RCU の実行

RCU グラフィカルユーザーインターフェイスを使用するには、インタラクティブモードで RCU を実行します。​-interactive パラメータを指定し、-silent パラメータは指定しません。詳細については、Oracle ドキュメントの「Understanding Repository Creation Utility Screens」を参照してください。

次の例では、RCU をインタラクティブモードで起動し、接続情報を事前入力します。

Linux、macOS、Unix の場合:

export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw export JAVA_HOME=/usr/java/jdk1.8.0_65 ${ORACLE_HOME}/oracle_common/bin/rcu \ -interactive \ -createRepository \ -connectString ${dbhost}:${dbport}:${dbname} \ -dbUser ${dbuser} \ -dbRole Normal

RCU のトラブルシューティング

次の点に注意してください。

Oracle Managed Files (OMF)

Amazon RDS は、OMF データファイルを使用してストレージ管理を簡素化します。サイズや拡張管理などのテーブルスペース属性をカスタマイズできます。ただし、RCU の実行時にデータファイル名を指定すると、テーブルスペースコードが ORA-20900 で失敗します。RCU は、以下の方法で OMF と使用できます。

オブジェクト権限

Amazon RDS はマネージ型サービスであるため、RDS for Oracle DB インスタンスへのフル SYSDBA アクセス権はありません。ただし、RCU 12c では低い権限のユーザーがサポートされます。ほとんどの場合、リポジトリを作成するにはマスターユーザー権限で十分です。

マスターアカウントは、WITH GRANT OPTION がすでに付与されている権限を直接付与できます。場合によっては、SYS オブジェクト権限を付与しようとすると RCU が ORA-01031 で失敗することがあります。次の例に示すように、rdsadmin_util.grant_sys_object ストアドプロシージャを再試行して実行することができます。

BEGIN rdsadmin.rdsadmin_util.grant_sys_object('GV_$SESSION','MY_DBA','SELECT'); END; /

オブジェクト SCHEMA_VERSION_REGISTRY に対する SYS 権限を付与しようとすると、このオペレーションが ORA-20199: Error in rdsadmin_util.grant_sys_object で失敗することがあります。テーブル SCHEMA_VERSION_REGISTRY$ とビュー SCHEMA_VERSION_REGISTRY をスキーマ所有者の名前 (SYSTEM) で修飾して、オペレーションを再試行できます。または、シノニムを作成することもできます。マスターユーザーとしてログインし、次のステートメントを実行します。

CREATE OR REPLACE VIEW SYSTEM.SCHEMA_VERSION_REGISTRY AS SELECT * FROM SYSTEM.SCHEMA_VERSION_REGISTRY$; CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY FOR SYSTEM.SCHEMA_VERSION_REGISTRY; CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY$ FOR SCHEMA_VERSION_REGISTRY;

Enterprise Scheduler Service

RCU を使用して Enterprise Scheduler Service リポジトリを中断すると、RCU が Error: Component drop check failed で失敗することがあります。