[OCI] PL/SQL SDKを使ってAutonomous DatabaseからPL/SQLでMySQL DBシステムを作成してみた
はじめに
記事のタイトルを見て、「ちょっと何言ってるかわかんない©️サンドウィッチマン」と思われた方もいらっしゃるかと思いますが、実際にタイトル通りの内容ですのでご容赦ください。
こちらの記事で、PL/SQL SDKを用いて、Autonomous Database内でPL/SQLからOCIの操作ができるようになったことを紹介しました。
Autonomous DatabaseでOracle Cloud Infrastructure SDK for PL/SQL a.k.a. PL/SQL SDKを使ってみた
上記の記事では、PL/SQL SDKを使ってオブジェクト・ストレージのバケット内のオブジェクト名を取得しただけでしたが、今回はなんとAutonomous DatabaseからPL/SQL SDKを使ってMySQL DBシステムを作成してみたいと思います。
(実際にそんなことをする人がいるかどうかはさておき…。)
やってみた
いきなりですが以下がMySQL DBシステムを作成するPL/SQLプログラムです。
こちらをSQL Developer Webから実行します。
※事前にこちらの記事などを参考にして、適切なMySQL DBシステム用のネットワークの作成をしてください。
OCIのネットワークを構成する際に手戻りの少ない手順を考えてみる(初心者向け)
set serveroutput on
DECRARE
response_body dbms_cloud_oci_ms_db_system_db_system_t;
response dbms_cloud_oci_ms_db_system_create_db_system_response_t;
db_system_details dbms_cloud_oci_ms_db_system_create_db_system_details_t;
json_obj json_object_t;
l_keys json_key_list;
BEGIN
--作成するMySQL DBシステムの設定内容
db_system_details := dbms_cloud_oci_ms_db_system_create_db_system_details_t();
-- 表示名
db_system_details.display_name := 'MySQL1';
-- シェイプ
db_system_details.shape_name := 'VM.Standard.E2.1';
-- 構成のOCID
db_system_details.configuration_id := 'ocid1.mysqlconfiguration.oc1..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
-- コンパートメントのOCID
db_system_details.compartment_id := 'ocid1.compartment.oc1..XXXXXXXXXXXXXXXXXXXXXXX';
-- サブネットのOCID
db_system_details.subnet_id := 'ocid1.subnet.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXX';
-- アベイラビリティ・ドメイン
db_system_details.availability_domain := 'FEnn:AP-TOKYO-1-AD-1';
-- DB管理者のユーザ名
db_system_details.admin_username := 'admin';
-- DB管理者のパスワード
db_system_details.admin_password := 'Demo#1Demo#1';
-- データ容量の指定(GB)
db_system_details.data_storage_size_in_g_bs := '50';
-- 説明
db_system_details.description := 'Created by Autonomous Database using PL/SQL SDK';
-- MySQL DB Systemの作成
response := DBMS_CLOUD_OCI_MS_DB_SYSTEM.CREATA_DB_SYSTEM(
create_db_system_details => db_system_details,
-- 使用するクレデンシャル
credential_name => 'MY_SDK_CRED',
-- リージョン
region => 'ap-tokyo-1');
response_body := response.response_body;
-- レスポンスヘッダの表示
dbms_output.put_line('Headers: ' || CHR(10) ||'------------');
json_obj := response.headers;
l_keys := json_obj.get_keys;
for i IN 1..l_keys.count loop
dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string);
end loop;
-- レスポンスのステータスコードの表示
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || response.status_code);
dbms_output.put_line(CHR(10));
-- 実行結果の表示(作成されるMySQL DBシステムのOCIDと表示名)
dbms_output.put_line('Now Creating MySQL DB System');
dbms_output.put_line('OCID :'||response_body.id);
dbms_output.put_line('Display Name :'||response_body.display_name);
END;
/
実行結果です。
Headers:
------------
Connection:"close"
Date:"Thu, 29 Oct 2020 07:01:40 GMT"
opc-request-id:"OS6LIUJ12B/4CDC725A0B9944E5A65D8A00FF5C8B57/4939D58AC27899C0E84E
2CA33F9CF1C5"
Content-Type:"application/json"
X-Content-Type-Options:"nosniff"
Content-Length:"1817"
Status Code:
------------
200
Now Creating MySQL DB System
OCID:ocid1.mysqldbsystem.oc1.ap-tokyo-1.aaaaaaaag36nvw6tzavpplzar5xkjus4ls7tvixmno6lc7vdhrfddt26j3lq
Display Name :MySQL1
PL/SQL procedure successfully completed.
Elapsed: 00:00:02.512
PL/SQLの実行が無事完了しました。
そしてコンソールを見てみると…。
なんと!
My SQL DBシステムが作成中になっています!
先ほどのPL/SQLプログラムの
db_system_details.description := 'Created by Autonomous Database using PL/SQL SDK';
の部分で指定した説明(description)もきちんと反映されていますね。
めでたし、めでたし。
こちらにPL/SQL SDKに対応しているOCIのサービスリストがありますので、皆さんもいろいろ試してみてはいかがでしょうか。
Oracle Cloud Infrastructure Documentation PL/SQL SDK
Author And Source
この問題について([OCI] PL/SQL SDKを使ってAutonomous DatabaseからPL/SQLでMySQL DBシステムを作成してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/500InternalServerError/items/a6bf3fbc9dbcdbb1c5a1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .