4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Autonomous AI Database]組み込みツールの有効化/無効化および各ツールの割当てECPU数をPL/SQLで制御する

4
Posted at

はじめに

Autonomous AI Databaseには、Autonomous AI Databaseをプロビジョニングするとすぐに利用可能な、さまざまな組み込みツールが用意されています。

これらの組み込みツールは、OCIコンソールから有効化/無効化したり、各ツールに割り当てるECPU数を設定するできますが、ツールの有効化/無効化や割り当てるECPU数をPL/SQLで変更できれば便利かと思い、それを可能にするPL/SQLプロシージャを作成しました。

PL/SQLプロシージャでツールの有効化/無効化、割当てECPUを変更できれば、DBMS_SCHEDULERと組み合わせて、任意のタイミングで各ツールの設定を変更することが可能になります。

注意
こちらの記事の内容はあくまで個人のメモ的な内容のため、こちらの内容を利用した場合のトラブルには一切責任を負いません。
また、こちらの記事の内容を元にしたOracleサポートへの問い合わせはご遠慮ください。

0.事前準備

今回作成するPL/SQLプロシージャでは、Autonomous AI Databaseのリソース・プリンシパルを使用しますので、こちらのマニュアルを参考にして、適切な動的グループとポリシーを作成し、DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPALプロシージャでリソース・プリンシパルを有効にしておきます。

1.組み込みツールの有効化/無効化および割当てECPU数を変更するPL/SQLプロシージャの作成

今回作成するPL/SQLプロシージャadb_tool_configは、内部でDBMS_CLOUD.SEND_REQUESTプロシージャを使用して、Autonomous AI DatabaseのREST APIをコールすることで、各組み込みツールの設定を変更します。

このプロシージャを使用して設定が変更できる組み込みツールおよび変更可能な設定内容は以下の表のとおりです。

ツール名 ツールコード 有効化/
無効化
ECPU数設定
データ変換(Data Transforms) DATA_TRANSFORMS
データ・レイク・アクセラレータ DLA
Graph Studio GRAPH_STUDIO
Spatial Studio SPATIAL_STUDIO
Oracle Machine Learning
ユーザー・インタフェース
OML
データベース・アクション DATABASE_ACTIONS -
MongoDB API MONGODB_API -
ORDS ORDS -
Oracle APEX APEX -

1つめのパラメータtool_nameには、設定を変更したいツールのツールコード(上記の表を参照)を指定します。
2つめのパラメータtool_enabledには、ツールを有効化する場合やツールのECPU数を変更したい場合は「TRUE」、ツールを無効化したい場合には「FALSE」を指定します。
3つ目のパラメータecpu_countには、そのツールに設定したいECPU数を指定します、

adb_tool_configプロシージャ
CREATE OR REPLACE PROCEDURE adb_tool_config (
    tool_name    IN VARCHAR2, 
    tool_enabled IN VARCHAR2, 
    ecpu_count   IN NUMBER DEFAULT NULL
)
IS
    adb_ocid VARCHAR2(255);
    resp     DBMS_CLOUD_TYPES.resp;

BEGIN
    -- Get ADB OCID
    SELECT LOWER(JSON_VALUE(cloud_identity, '$.DATABASE_OCID')) INTO adb_ocid FROM v$pdbs;

    -- Send request
    IF UPPER(tool_enabled) = 'TRUE' THEN 
        resp := DBMS_CLOUD.SEND_REQUEST(
                    credential_name => 'OCI$RESOURCE_PRINCIPAL',
                    uri => 'https://database.ap-tokyo-1.oraclecloud.com/20160918/autonomousDatabases/'||adb_ocid,
                    method => DBMS_CLOUD.METHOD_PUT,
                    body => UTL_RAW.CAST_TO_RAW(
                                JSON_OBJECT('dbToolsDetails' value  JSON_ARRAY(JSON_OBJECT('name' value tool_name, 'isEnabled' value TRUE, 'computeCount' value ecpu_count)))
                            )
                );
    ELSIF UPPER(tool_enabled) = 'FALSE' THEN 
        resp := DBMS_CLOUD.SEND_REQUEST(
                    credential_name => 'OCI$RESOURCE_PRINCIPAL',
                    uri => 'https://database.ap-tokyo-1.oraclecloud.com/20160918/autonomousDatabases/'||adb_ocid,
                    method => DBMS_CLOUD.METHOD_PUT,
                    body => UTL_RAW.CAST_TO_RAW(
                                JSON_OBJECT('dbToolsDetails' value  JSON_ARRAY(JSON_OBJECT('name' value tool_name, 'isEnabled' value FALSE)))
                            )
                );
    END IF;

    -- Response Status Code
    DBMS_OUTPUT.PUT_LINE('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
    DBMS_CLOUD.GET_RESPONSE_STATUS_CODE(resp));

END;
/

adminユーザとして、Autonomous AI Databaseに接続します。

user@mymac ~ % sqlplus admin@ADB

SQL*Plus: Release 23.0.0.0.0 - Production on Thu Aug 13 16:42:20 2026
Version 23.3.0.23.09

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Enter password: 
Last Successful login time: Thu Aug 13 2026 13:56:23 +09:00

Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.3.1.0 - Production
Version 23.26.3.1.0

SQL>

上記のSQLを実行して、PL/SQLプロシージャadb_tool_configを作成します。

SQL> CREATE OR REPLACE PROCEDURE adb_tool_config (
  2  	 tool_name    IN VARCHAR2,
  3  	 tool_enabled IN VARCHAR2,
  4  	 ecpu_count   IN NUMBER DEFAULT NULL
  5  )
  6  IS
  7  	 adb_ocid VARCHAR2(255);
  8  	 resp	  DBMS_CLOUD_TYPES.resp;
  9  
 10  BEGIN
 11  	 -- Get ADB OCID
 12  	 SELECT LOWER(JSON_VALUE(cloud_identity, '$.DATABASE_OCID')) INTO adb_ocid FROM v$pdbs;
 13  
 14  	 -- Send request
 15  	 IF UPPER(tool_enabled) = 'TRUE' THEN
 16  	     resp := DBMS_CLOUD.SEND_REQUEST(
 17  			 credential_name => 'OCI$RESOURCE_PRINCIPAL',
 18  			 uri => 'https://database.ap-tokyo-1.oraclecloud.com/20160918/autonomousDatabases/'||adb_ocid,
 19  			 method => DBMS_CLOUD.METHOD_PUT,
 20  			 body => UTL_RAW.CAST_TO_RAW(
 21  				     JSON_OBJECT('dbToolsDetails' value  JSON_ARRAY(JSON_OBJECT('name' value tool_name, 'isEnabled' value TRUE, 'computeCount' value ecpu_count)))
 22  				 )
 23  		     );
 24  	 ELSIF UPPER(tool_enabled) = 'FALSE' THEN
 25  	     resp := DBMS_CLOUD.SEND_REQUEST(
 26  			 credential_name => 'OCI$RESOURCE_PRINCIPAL',
 27  			 uri => 'https://database.ap-tokyo-1.oraclecloud.com/20160918/autonomousDatabases/'||adb_ocid,
 28  			 method => DBMS_CLOUD.METHOD_PUT,
 29  			 body => UTL_RAW.CAST_TO_RAW(
 30  				     JSON_OBJECT('dbToolsDetails' value  JSON_ARRAY(JSON_OBJECT('name' value tool_name, 'isEnabled' value FALSE)))
 31  				 )
 32  		     );
 33  	 END IF;
 34  
 35  	 -- Response Status Code
 36  	 DBMS_OUTPUT.PUT_LINE('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
 37  	 DBMS_CLOUD.GET_RESPONSE_STATUS_CODE(resp));
 38  
 39  END;
 40  /

Procedure created.

SQL> 

PL/SQLプロシージャadb_tool_configが作成できました。

2. 動作確認

PL/SQLプロシージャadb_tool_configが作成できたので、早速実行して動作を確認してみます。

まずはじめに、デフォルトでは無効になっているMongoDB APIを有効化してみます。

スクリーンショット 2026-08-13 16.48.26.png

SQL> set serveroutput on                       
SQL> EXEC adb_tool_config('MONGODB_API','TRUE')
Status Code: 
------------
200

PL/SQL procedure successfully completed.

SQL>

正常に実行され、Status Code 200が返されました。

OCIコンソールを確認すると、Autonomous AI Datanaseの状態が「更新中」に変わりました。

スクリーンショット 2026-08-13 16.53.17.png

数分待って再度確認するとAutonomous AI Datanaseの状態が「使用可能」に戻りました。

スクリーンショット 2026-08-13 16.57.13.png

MongoDB APIのセクションを確認すると、MongoDB APIが有効化されていることが確認できました。

スクリーンショット 2026-08-13 16.59.01.png

次に、データ・レイク・アクセラレータの割当てECPU数をデフォルトの32から64に変更してみたいと思います。

スクリーンショット 2026-08-13 17.04.01.png

SQL> EXEC adb_tool_config('DLA','TRUE',64)
Status Code: 
------------
200

PL/SQL procedure successfully completed.

SQL>

正常に実行され、Status Code 200が返されました。

OCIコンソールを確認すると、Autonomous AI Datanaseの状態が「更新中」に変わりました。

スクリーンショット 2026-08-13 16.53.17.png

数分待って再度確認するとAutonomous AI Datanaseの状態が「使用可能」に戻りました。

スクリーンショット 2026-08-13 16.57.13.png

データ・レイク・アクセラレータのセクションを確認すると、割当てECPU数が64に変更されていることが確認できました。

スクリーンショット 2026-08-13 17.08.04.png

最後に、データ・レイク・アクセラレータの割当てECPU数をデフォルトの32に変更してみたいと思います。

SQL> EXEC adb_tool_config('DLA','TRUE',32)
Status Code: 
------------
200

PL/SQL procedure successfully completed.

SQL>

OCIコンソールを確認すると、Autonomous AI Datanaseの状態が「更新中」に変わりました。

スクリーンショット 2026-08-13 16.53.17.png

数分待って再度確認するとAutonomous AI Datanaseの状態が「使用可能」に戻りました。

スクリーンショット 2026-08-13 16.57.13.png

データ・レイク・アクセラレータのセクションを確認すると、割当てECPU数が32に変更されていることが確認できました。

スクリーンショット 2026-08-13 17.13.39.png

まとめ

作成したPL/SQLプロシージャで、組み込みツールの有効化/無効化および割当てECPU数を制御できることが確認できました。

このPL/SQLプロシージャをDBMS_SCHEDULERを使用して定期実行することで、各ツールの負荷の高い時間のみ割当てECPU数を増やす、夜間はツールを無効化するといった制御を行うことが可能になるかと思います。

参考情報

Autonomous AI Database組み込みツールについて
DBMS_CLOUD REST API
OCI API Reference and Endpoints : UpdateAutonomousDatabase
OCI API Reference and Endpoints : UpdateAutonomousDatabaseDetails Reference
OCI API Reference and Endpoints : DatabaseTool Reference

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?