はじめに
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数を指定します、
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を有効化してみます。
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の状態が「更新中」に変わりました。
数分待って再度確認するとAutonomous AI Datanaseの状態が「使用可能」に戻りました。
MongoDB APIのセクションを確認すると、MongoDB APIが有効化されていることが確認できました。
次に、データ・レイク・アクセラレータの割当てECPU数をデフォルトの32から64に変更してみたいと思います。
SQL> EXEC adb_tool_config('DLA','TRUE',64)
Status Code:
------------
200
PL/SQL procedure successfully completed.
SQL>
正常に実行され、Status Code 200が返されました。
OCIコンソールを確認すると、Autonomous AI Datanaseの状態が「更新中」に変わりました。
数分待って再度確認するとAutonomous AI Datanaseの状態が「使用可能」に戻りました。
データ・レイク・アクセラレータのセクションを確認すると、割当てECPU数が64に変更されていることが確認できました。
最後に、データ・レイク・アクセラレータの割当てECPU数をデフォルトの32に変更してみたいと思います。
SQL> EXEC adb_tool_config('DLA','TRUE',32)
Status Code:
------------
200
PL/SQL procedure successfully completed.
SQL>
OCIコンソールを確認すると、Autonomous AI Datanaseの状態が「更新中」に変わりました。
数分待って再度確認するとAutonomous AI Datanaseの状態が「使用可能」に戻りました。
データ・レイク・アクセラレータのセクションを確認すると、割当てECPU数が32に変更されていることが確認できました。
まとめ
作成した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








