データベースについて調べてみた

データベースについて調べたことのメモ。Oracle要素多めになる予定。

OCIのOracle Autonomous Databaseを構築してみた

前回までは、Oracle Cloud Infrastructure(OCI)のOracle Base Database Serviceを自宅からインターネット経由で接続するまでの構築手順を調べたが、今回はOracle Autonomous Databaseの構築手順を調べてみた。

 

0.はじめに

Oracle Autonomous Databaseは、OCIで提供されるフルマネージドなデータベースサービスで、AIや機械学習を利用した完全自動運用が行われているとのこと。
Oracle Autonomous Databaseの概要は、こちらを参照のこと。

 

フルマネージドなDBサービスなので、前回のOracle Base Database Serviceと違い、OS(サーバ)を意識することなく、Oracleインスタンスに直接接続して操作する様な使い方ができるということで、自宅からAutonomous Databaseを使用するまでの手順を、以下のステップで纏めた。

 

  1. Autonomous Databaseの構成
  2. 構成したAutonomous Databaseへの接続

 

なお、コンパートメントや仮想ネットワークについては、前回Oracle Base Database Serviceを構築した際に用意したものを利用するため、今回は作成しない。

 

1.Autonomous Databaseの構成

OCIコンソールの左上のナビゲーションメニュー(漢数字の三みたいなボタン)をクリックするとメニューが表示されるので、そこで「Oracle Database」をクリックする。

 

Oracle Databaseのメニューが表示されるので、「Autonomous Transaction Processing」をクリックする。

 

Autonomous Databaseの画面が表示されるので、「Autonomous Databaseの作成」をクリックする。

 

Autonomous Databaseの作成画面が表示される。入力事項が1画面では収まりきらないため、分割して手順を記載していく。

まず、Autonomous Databaseを作成する「コンパートメント」を入力し、OCIコンソール等での「表示名」と、作成する「データベース名」を入力する。

「ワークロード・タイプの選択」は今回「トランザクション処理」を選択した。

 

「デプロイメント・タイプの選択」はデフォルトの「サーバーレス」を選択した。

「データベースを構成します」の部分で、構成するOracle Databaseのバージョンや、有効にするOCPU数やストレージサイズを設定する。

 

管理者ユーザのパスワードを入力する。管理者ユーザー名は「ADMIN」で固定となる。

 

「ネットワーク・アクセスの選択」について、今回は自宅からインターネット経由で簡易にアクセスしたいため、「すべての場所からのセキュア・アクセス」を選択した。

また、ライセンスについてはBYOL(ライセンス持ち込み)するかを選択する必要があり、今回はBYOLせずAutonomous Databaseの利用料金にライセンス費を含めるため、「ライセンス込み」を選択した。

 

構築したAutonomous Databaseに関する運用上の通知などをメールで受領することができるため、その宛先アドレスを「連絡先の電子メール」に設定する。今回はお試し使用で通知の受領は不要なため、空欄として進めた。

ここまでの各種設定が終わったら、「拡張オプションの表示」をクリックする。拡張オプションとして5つの項目について設定ができる。

 

1つめはデータベースの暗号化に使用する暗号化キーをOracle管理のものを使用するか、自分達で管理したものを使用するかを選択する。今回は特別な要件もないため、デフォルトの「Oracle管理キーを使用した暗号化」を選択した。

 

2つ目はデータベースへのパッチ適用スケジュールを選択するが、今回使用したリージョンでは「定期」以外選択できなかった。

 

3つ目はデータベースのキャラクタセットを選択する。今回はデフォルトのままとした。

 

4つ目は構成するデータベースで使用できるツールを選択する。

選択できるツールとして7つ(Oracle APEX、データベース・アクション、Graph Studio、Oracle Machine Learning user interface、Data transforms、Webアクセス(ORDS)、MongoDB API)ある。

MongoDB API以外はデフォルトで有効となっているが、MongoDB APIのみ、ネットワークのアクセスタイプに「すべての場所からのセキュア・アクセス」を選択していると、有効にすることができない。言い換えると、MongoDB APIを使用したい場合は、ネットワークのアクセスタイプに「プライベート・エンドポイント・アクセスのみ」や、「許可されたIPおよびVCN限定のセキュア・アクセス」を選択する必要がある。

各ツールの有効/無効を変えたい場合は、「ツール構成の編集」をクリックする。

 

ツール構成のダイアログが表示されるので、各ツールの有効/無効を設定したら、「適用」をクリックする。

 

5つ目は構成するデータベースに付与するタグを設定できる。

全ての拡張オプションの確認・設定が完了したら、「Autonomous Databaseの作成」をクリックする。

 

Autonomous Databaseの構成が始まると、下記のようなプロビジョニング中の画面が表示される。

 

プロビジョニングが完了し、データベースが使用可能な状態になると、以下のような画面が表示される。今回構成した際は5分弱で使用可能になったので、Oracle Base Database Serviceより早く構成が完了した。

 

 

2.構成したAutonomous Databaseへの接続

今回はOracle SQL Developerを用いて、構成したAutonomous Databaseへ接続する手順を試したので、その手順を纏めた。

 

構成したデータベースに接続するために、クライアント資格証明(ウォレット)をダウンロードする必要があるため、構成したデータベースのページの上部にある「データベース接続」をクリックする。

 

データベース接続のダイアログが表示されるので、「クライアント資格証明(ウォレット)のダウンロード」内の「ウォレット・タイプ」を「Instance wallet」に設定して「ウォレットのダウンロード」をクリックする。

※「ウォレット・タイプ」として「Regional wallet」も選択できるが、これは現在使用しているリージョンに存在する全てのAutonomous Databaseの資格証明が含まれたものとなる。

 

ウォレットのダウンロードのダイアログが表示され、ウォレットに設定するパスワードの設定を要求されるので、入力した後に「ダウンロード」をクリックすると、ウォレット(zipファイル)がダウンロードできる。

 

ちなみに、Autonomous Databaseには以下のように、事前に定義済みの接続サービスが用意されていて、クライアントから接続する際は、いずれかのサービスを用いてインスタンスに接続する。各接続サービスの詳細はこちらを参照のこと。

 

ウォレットがダウンロードできたら、SQL Developerを起動し、「接続を手動で作成します」をクリックする。

SQL Developerの入手先はこちら

 

データベース接続の作成/選択画面が表示されるため、必要情報を入力し、「テスト」をクリックする。必要情報のポイントは以下の通り。

  • 「ユーザー名」は「admin」で、「パスワード」はAutonomous Database構成時にadminユーザに設定したパスワードを入力する
  • 「接続タイプ」は「クラウド・ウォレット」を選択し、「構成ファイル」にダウンロードしたウォレットファイルを指定する
  • 「サービス」はウォレットダウンロード手順の際に紹介した接続サービスから選択する。今回は<作成したデータベース名>_highを選択した。

 

接続テストに成功すると、下記の赤枠で囲った部分に「ステータス:成功」と表示されるので、表示されたことを確認してから、「接続」をクリックする。

 

接続が完了すると、左側には接続したデータベースに関するメニューが表示され、右側はクエリを入力できるエディタが表示され、SQLが実行できる状態になる。

 

 

3.おわりに

フルマネージドなDBサービスなだけあって、Oracle Base Database Serviceより更に簡単に構築/接続ができた。Oracle Database環境をサクッと用意して使いたいときには、かなり重宝するかと思う。

ただ、フルマネージドなことでOS(サーバ)が意識できないので、AWRレポートファイルってどうやって手元に持ってくるんだろうかとか、定期的にSQLを発行するシェルスクリプトを配置して使いたかったのだけど…とか、Autonomous Databaseではどうするか考えないといけないことも幾つかあると思うので、気が向いたら今後紹介していきたいと思う。