初めに
冒頭ですが、この記事の位置付けは、次のシリーズ記事の1つです。
Data Integration (ODI On-P, ODI MP, OCI DI)
今回は、OCI MarketplaceからODIインスタンスを作成して、VNCでの接続方法を紹介したいと思います。
事前準備
Oracle Cloud Infrastructure(OCI)アカウント
SSHキーペア (ODIインスタンスに接続用)
SSHクライアント (e.g. Teraterm, Putty)
VNCクライアント (e.g. Tiger VNC, VNC Viewer)
Autonomous DB インスタンス (レポジトリ格納用)
*Autonomous DBとODIインスタンスは、同じコンパートメントに格納しないといけません。
ステップ
1. 動的グループを作成する
2. ポリシーを作成する
3. OCI MarketplaceからODIインスタンスを作成する
4. SSHを使用してODIインスタンスに接続する
5. VNCを使用してODIインスタンスに接続する
うまくいかない時
1. 動的グループを作成する
ODIインスタンスに権限を付与するため、動的グループを作成します。
グループ名:ODI_MP_DG
ルール:ALL {instance.compartment.id = '<compartment_ocid>'}
2. ポリシーを作成する
ステートメント:Allow dynamic-group ODI_MP_DG to manage all-resources in COMPARTMENT PoC
ODIインスタンスを作成するOCIユーザーが、管理者グループに属していない場合は、このユーザーに特定のコンパートメントのリソースの管理権限を付与する必要があります。上記ポリシー作成画面に、下記ステートメントを追加します。
Allow group ODI_MP_GRP to manage all-resources in COMPARTMENT PoC
(OCIユーザーは、ODI_MP_GRPに属しています。)
3. OCI MarketplaceからODIインスタンスを作成する
MENU->Marketplace->All Applications
検索ボックスに「data integrator」と入力すると、ODIの関連製品が表示されます。この例ではClassic-BYOLを使用します。
「利用条件」に同意し、「スタックの起動」ボタンをクリックして開始します。
全体の設定 (General Settings)
項目 | コメント |
---|---|
Networking Options | この例では、"Existing networking components will be used"を指定します。 ほかの選択肢: "New networking components will be created" |
ODI Repository Location | この例では"Create a new Repository in an Autonomous Database"を指定します。 ほかの選択肢: "Connecting to an Existing Repository in an Autonomous Database" あるいは、"Create an Embedded Repository" |
Resource Display Name Prefix (Optional) | 空白のままにすると、プレフィックスは「odi_xxxxxxxx」になります。(odi_<自動作成される8桁文字列> ) |
ネットワーク構成 (Network Configuration)
VCNとサブネットを選択します(この例ではパブリックサブネットを使用します)。
デフォルトで、「パブリックIPアドレスの割り当て」はチェックされていません。
ODIインスタンスの設定 (ODI Instance Settings)
項目 | コメント |
---|---|
ODI Node Shape | デフォルトはVM.Standard2.4です。 |
SSH Public Key | 公開鍵を貼り付けます。 |
ODI Availability Domain | 複数のドメインがある場合は、任意のドメインを選択できます。単一のドメインがある場合は、それを直接選択してください。 |
ODI VNC Password | VNCパスワードを入力します(VNCクライアントからODIに接続する場合に使用します)。確認用の再入力はありませんので、入力間違いのないことをご注意ください。 |
新しいODIメタデータ・リポジトリ (New ODI Metadata Repository)
"Create a new Repository in an Autonomous Database"を指定した場合、以下の入力項目が表示されます。
項目 | コメント |
---|---|
Autonomous Database Compartment | ADBが所属するコンパートメント。 |
Autonomous Database Instance | ADBのインスタンス名を指定(リストから選択)。 |
Autonomous Database Admin Password | adminユーザのパスワード(ADB作成時、決めたもの)。 |
Supervisor Password | ODI Supervisor用のパスワード(決めるもの)。 英数字のみ |
Schema Prefix | レポジトリ用スキーマの接頭辞(決めるもの)。 |
Schema Password | レポジトリ用スキーマのパスワード(決めるもの)。 12桁以上、かつ大文字、小文字、特殊文字が混在する必要がある |
注意点
"Create a new Repository in an Autonomous Database"を指定しても、上記項目が表示されない場合、"ODI Repository Location"の選択肢を切り替えて、もう一度試してください(既知の問題のようです)。
Review
"Run Apply"(適用の実行)はデフォルトでチェックされています。これは、リソースがすぐにプロビジョニングされることを意味します。
確認後、「作成」ボタンをクリックして開始します。
数分後、リソース・マネージャー・ジョブが完了しました。状態が「成功」であることを確認してください。
4. SSHを使用してODIインスタンスに接続する
MENU-> Compute -> Instances
OCIコンソールからパブリックIPを取得します。
SSHクライアントを起動してログインします。
ユーザ名: opc
接続後、次のような情報が表示されます。ご覧のとおり、OSはAutonomous Linuxです。つまり、手動でパッチを適用する必要はありません。
VNCポート(5901)を開く
このステップは重要です。デフォルトでは、VNCポート(5901)は開いていないため、firewall-cmdを使用してVNCポートを開く必要があります。
[opc@oracle-odi-inst-wc4b ~]$ sudo firewall-cmd --permanent --add-port=5901/tcp
success
[opc@oracle-odi-inst-wc4b ~]$ sudo firewall-cmd --reload
success
[opc@oracle-odi-inst-wc4b ~]$ sudo firewall-cmd --list-ports
5901/tcp
[opc@oracle-odi-inst-wc4b ~]$
レポジトリのスキーマを確認
Autonomous DBにレポジトリ関連のスキーマが作成されましたら、SQL Developerで確認した結果は、以下のようです。
ADBにレポジトリを作成するのに、少し時間がかかります。作成の進捗を確認したいなら、ログファイルをご参照ください。
コマンド: tail -f /u01/oracle/logs/odiConfigure.log
...省略...
Repository Creation Utility - Checking Prerequisites
Checking Component Prerequisites
Repository Creation Utility - Creating Tablespaces
Validating and Creating Tablespaces
Create tablespaces in the repository database
Repository Creation Utility - Create
Repository Create in progress.
Percent Complete: 12
Executing pre create operations
Percent Complete: 30
Percent Complete: 30
...省略...
5. VNCを使用してODIインスタンスに接続する
VNCクライアントを起動し、<Server_IP_Address>:<Port_Number>
でODIインスタンスに接続します。
VNCパスワードを入力すると、ODIインスタンスに接続できます。 (ODIインスタンスの作成時に指定したパスワードです。)
ODIインスタンスに接続すると、次のようなウェルカムページが表示されます。画面の指示に従って、言語とキーボードを設定します。
デスクトップ上のアイコンをクリックして、ODI Studioを起動します。 ("Trust and Launch"(信頼して起動)を選択します。)
以前のODI設定をインポートできます。 (ここでは、「いいえ」を選択してスキップします。)
ODI Studioを起動すると、次のようなスタートアップページが表示されます。
左上の"Connect to Repository..."をクリックすると、以下のように、ログイン画面表示されます。
既にログイン名が作成されますので、そのまま「OK」をクリックしてログインできます。
「Topology」のタブで、OracleDIAgent1が既に作成済のことが確認できます。
エージェント作成後、/u01/oracle/logs/odiConfigure.log
には、以下のようなメッセージが表示されます。
2022-03-31 08:29:15.011 NOTIFICATION ODI-1111 Agent OracleDIAgent1 started. Agent version: 12.2.1. Port: 20910. JMX Port: 20810.
2022-03-31 08:29:15.012 NOTIFICATION ODI-1136 Starting Schedulers on Agent OracleDIAgent1.
2022-03-31 08:29:16.002 NOTIFICATION ODI-1137 Scheduler started for work repository WORKREP on Agent OracleDIAgent1.
2022-03-31 08:29:25.847 NOTIFICATION Inside cleanStaleSessions ::::::::::::::::::::::::::::::::::::
2022-03-31 08:29:26.048 NOTIFICATION Not an InternatlAgent ::::::::::::::::startContinueLoadPlansThread:::::::::::::::
うまくいかない時
ODI MPインスタンスに接続できない場合
OCIセキュリティ・リストとルート・テーブルの関連設定を省略しました。もしSSH/VNC接続に問題がある場合は、OCIセキュリティ・リストに入力ルール(22/5901 Port)が追加されていることを確認してください。
レポジトリが未作成の場合
トラブルシューティングの時、以下のログファイルをご利用ください。
/u01/oracle/logs/odiConfigure.log
もし、ログに以下のようなメッセージがありましたら、レポジトリ・スキーマのパスワードがルールに満たさない可能性があります。
[opc@oracle-odi-inst-tpsu ~]# cat /u01/oracle/logs/odiConfigure.log
ODI Marketplace configuration started.
Invoking ADB config
ODI configuration for ADB technology
Start wallet download
Finished MP configuration
Going to start Apps
[ERROR] Storing the MP Repo Mode fails, Hence exiting the process !!!
[opc@oracle-odi-inst-tpsu ~]#
詳細以下のMOSドキュメントをご参考ください。
ODI Instance Creation in MP Fails with "[ERROR] Storing the MP Repo Mode fails, Hence exiting the process !!!" (Doc ID 2806808.1)
スキーマのパスワードは、12桁以上、かつ大文字、小文字、特殊文字が混在する必要があります。
次回
ここまで、ODIインスタンスの作成と接続は完了しています。この例では、Autonomous DBに新規レポジトリが自動に作成されました。次回は、手動で「Autonomous DB」にリポジトリを作成する方法を紹介したいと思います。
以上
関連記事
オラクル・クラウド関連の個人ブログ
ODI On-PとODI MarketplaceとOCI Data Integrationの比較
Autonomous DBにODIレポジトリの作成方法
How to launch ODI instance from OCI Marketplace (英語版)