データベース接続の設定について

自動化スクリプトをインストールし、機能的なNode-REDMosquittoおよびOracle Databaseインスタンスを保持するステップを実行する方法について学習します。これには、相互に接続するための様々なソリューション・コンポーネントの構成も含まれます。

スクリプトの実行

GitHubのスクリプトは、環境のプロビジョニングを自動化し、依存関係をインストールします。

  1. GitHubリポジトリへのリンクについては、「ダウンロード・コード」を参照してください。
  2. スクリプトを実行します。
  3. スクリプトによってインフラストラクチャがプロビジョニングされます。
    自動化の始まりは、次のとおりです。
    1. VCNおよびサブネットを作成し、必要なポートを開きます。
    2. オペレーティング・システムとしてOracle Linuxを使用してOCI Computeインスタンスをプロビジョニングします。
  4. スクリプトによってソフトウェアがインストールされます。
    1. Oracle Database (無料の開発者)をインスタンスにインストールします。
    2. Node-REDのスキーマおよび表を作成し、必要な権限をスキーマ・ユーザーに提供します。
    3. ノードやNPMなどの Node-RED依存関係をインストールします。
    4. Node-REDをインストールします。
    5. Mosquittoサーバーをインストールします。
    6. これらのポートを外部からアクセスできるようにsfwルールを更新します。
    7. Oracleクライアントおよび必要なNode-RED Oracle Databaseプラグインnode-red-contrib-oracledb-modをインストールします。
    8. MosquittoのトピックにサブスクライブするNode-REDフローをデプロイし、データベースにデータを配置します。

データベースの接続

すべてが稼働したら(約15分かかります)、ユーザー名とパスワードをNode-REDに追加してデータベースに接続する必要があります。

  1. Node-RED <Machine IP>:1880にログインします。
  2. oracledbノードをダブルクリックします。
  3. 「編集」ボタンをクリックします。
  4. Oracle Autonomous Databaseに置き換えます。

Autonomous Databaseの作成

OCIを使用してOracle Autonomous Databaseを設定します。

  1. OCIで、Autonomous Databaseに移動します。
  2. 「Autonomous Databaseの作成」をクリックします。
  3. 「ワークロード・タイプの選択」で、「トランザクション処理」を選択します。
  4. 「自動スケーリングの計算」を有効にします。
  5. 「管理者資格証明の作成」で、パスワードを入力します。
  6. 画面の下部で、「Autonomous Databaseの作成」をクリックします。
    「Autonomous Databaseの詳細」画面が表示されます。

Autonomous Databaseの構成

Node-REDで必要なユーザーおよびスキーマを設定し、ソリューションをテストするテスト表を作成します。

  1. Autonomous Databaseの詳細画面で、「データベース・アクション」「SQL」をクリックします。
    データベース・アクション| SQLエディタが開きます。
  2. 次のスクリプトを実行して、スキーマおよびユーザーを作成し、必要な権限を与え、初期テスト表を作成します。
    CREATEUSER nodered IDENTIFIED BY<YourPassword>;
    GRANTCREATE SESSION TO nodered;
    GRANTCREATETABLETO nodered;
    GRANTCREATEPROCEDURETO nodered;
    GRANTCREATETRIGGERTO nodered;
    GRANTCREATEVIEWTO nodered;
    ALTERUSER C##NODERED QUOTA UNLIMITED ON USERS;
    CREATETABLE nodered.nodered (col1 varchar2(500),col2 varchar2(500));
    CREATETABLE nodered.sensor_data (
      id NUMBER GENERATED ALWAYS ASIDENTITY, -- Optional auto-generated ID column
      vibration NUMBER,
      sound NUMBER,
      temp NUMBER,
      humi NUMBER,
    timestampTIMESTAMPDEFAULTCURRENT_TIMESTAMP
    );

Node-RED接続の構成

以前に設定したAutonomous DatabaseにNode-REDを接続します。

  1. OCIで、Autonomous Databaseに移動します。
  2. 「データベース接続」をクリックします。
  3. 接続画面をコピーします。
  4. (SSH経由で)プロビジョニングされたNode-REDサーバーに接続します。
    1. tnsnames.oraを編集します。
    2. 接続文字列vi /opt/oracle/product/$DBHOME/dbhomeFree/network/admin/tnsnames.oraを追加します
    3. 接続文字列を貼り付けます。
    4. 接続文字列の名前をadb = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.eu-frankfurt-1.oraclecloud.com))(connect_data=(service_name=ixcsyvrmtjm8ebr_iottest_high.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)))に変更します。
  5. Node-REDコンソールに移動します。
  6. oracledbノードを編集します。
  7. サーバーの接続とセキュリティーを変更します。

    ノート:

    エラーORA-12506: TNS:listener rejected connection based on service ACL filteringが表示された場合は、アクセス制御リストを変更して、Node-REDサーバーのIPを含めます。また、接続元のマシンのIPを追加し、mTLSの要件を無効にする必要があります。

Oracle APEXの設定

Kaggleのデータまたは独自のセンサーデータを使用できます。

  1. データベース・アクションの起動
  2. 「APEXワークスペース」をクリックします。
  3. フォームに入力してワークスペースを作成し、前に作成したものと同じデータベース・ユーザーを使用するようにします。
  4. APEXダッシュボードを起動します。
  5. 「アプリケーションの作成」をクリックします。
  6. 「サンプル・チャート」を選択します。
  7. 表からデータを読み取るようにチャートを構成します。