9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[OCI] PL/SQL SDKを使ってAutonomous DatabaseからPL/SQLでMySQL DBシステムを作成してみた

Last updated at Posted at 2020-10-29

はじめに

記事のタイトルを見て、「ちょっと何言ってるかわかんない©️サンドウィッチマン」と思われた方もいらっしゃるかと思いますが、実際にタイトル通りの内容ですのでご容赦ください。

こちらの記事で、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の実行が無事完了しました。

そしてコンソールを見てみると…。
スクリーンショット 2020-10-29 16.22.02.png
なんと!
スクリーンショット 2020-10-29 16.22.12.png
My SQL DBシステムが作成中になっています!
スクリーンショット 2020-10-29 16.23.36.png
先ほどの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

9
4
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
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?